Jump to content

Plastic SCM plugin for VS2010 and Binary Stream '0' error


miller

Recommended Posts

After some time using Plastic SCM Plugin for Visual Studio 2010 and Win 7-SP1 (x86 + x64) you can in very rare situation stumble on an error Binary Stream '0' does not contain a valid BinaryHeader

See screen dump below.

A stack trace can look like this:

2011-04-04 12:39:09,132 10916 (null) (null) (null)  ERROR Codice.CM.Server.ExceptionTracerSink - Dumping in-transit exception:The call context is not available. Aborting call.
  at Codice.CM.Server.TransactionInterceptor.a(ICmService A_0)
  at Codice.CM.Server.TransactionInterceptor.GetTriggerList(EnumTriggerType types, EnumTriggerEventType subtype)
  at Codice.CM.Server.TriggerInterceptor.GetTriggerList(EnumTriggerType types, EnumTriggerEventType subtype)
  at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
  at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

This is not happening in the Plastic SCM client GUI, and only from the VS2010 Plastic plugin.

I use Plastic SCM 3.0.187.22

So what is going on and how to move forward?

Thanks,

A Plastic SCM user

post-86-13148081617_thumb.png

Link to comment
Share on other sites

This is a known incompatibility in Plastic SCM 3.0.

Some other Visual Studio packages that use .NET remoting could interact with Plastic SCM making it fail.

We found an incompatibility with TestDriven.NET. If you have installed TestDriven.NET and Plastic SCM, after a test run you will get the error " Binary Stream '0' does not contain a valid BinaryHeader..."

There are two workarounds:

1) If you're using TestDriven.NET, deactivate the option "Cache test process between test runs". If you uncheck this option, TestDriven.NET does not use remoting and will not interfere Plastic SCM.

2) Otherwise, increase the Plastic SCM remoting channel priority. This option makes Plastic work fine, but might cause problems to other packages that use .NET remoting.

To increase the channel prioroty change the following line in the remoting.conf client configuration file. You can find it in the folder c:\<plastic_installdir\client\remoting.conf:

<configuration>
   <system.runtime.remoting>
       <application>
           <channels>
               <channel type="Codice.Channels.PlasticTcpChannel, plastictcpchannel" name="normal" priority="3">
                   <clientProviders>
                       <provider type="Codice.Channels.ClientSinkProvider, plastictcpchannel" />
                       <formatter ref="binary" />
                   </clientProviders>
               </channel>
           </channels>
       </application>
   </system.runtime.remoting>
</configuration>

Let you know that this issue only affects to Plastic SCM 3.0 and lower. It will be fixed for Plastic SCM 4.0.

Best regards,

Daniel

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...