[Mono-bugs] [Bug 670974] New: Race condition in deserialization process
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Thu Feb 10 10:22:04 EST 2011
https://bugzilla.novell.com/show_bug.cgi?id=670974
https://bugzilla.novell.com/show_bug.cgi?id=670974#c0
Summary: Race condition in deserialization process
Classification: Mono
Product: Mono: Class Libraries
Version: 2.8.x
Platform: Other
OS/Version: All
Status: NEW
Severity: Normal
Priority: P5 - None
Component: WCF
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: pg at 7pg.de
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
Created an attachment (id=413329)
--> (http://bugzilla.novell.com/attachment.cgi?id=413329)
Sample program
Description of Problem:
I am using Mono WCF with NetTcpBinding.
When I call the service in a loop I get an error.
After a random amount of calls the service stops operating because of an
ArgumentException being thrown during deserialization.
Steps to reproduce the problem:
1. Create a basic service contract, service and client. (see attached file)
2. Call the service in a loop.
Actual Results:
Stacktrace from service:
System.ArgumentException: Arg_InsufficientSpace
Parameter name: chars
at System.Text.UTF8Encoding.InternalGetChars (System.Byte* bytes, Int32
byteCount, System.Char* chars, Int32 charCount, System.UInt32& leftOverBits,
System.UInt32& leftOverCount, System.Object provider,
System.Text.DecoderFallbackBuffer& fallbackBuffer, System.Byte[]& bufferArg,
Boolean flush) [0x003a7] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/corlib/System.Text/UTF8Encoding.cs:822
at System.Text.UTF8Encoding.InternalGetChars (System.Byte[] bytes, Int32
byteIndex, Int32 byteCount, System.Char[] chars, Int32 charIndex,
System.UInt32& leftOverBits, System.UInt32& leftOverCount, System.Object
provider, System.Text.DecoderFallbackBuffer& fallbackBuffer, System.Byte[]&
bufferArg, Boolean flush) [0x0010b] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/corlib/System.Text/UTF8Encoding.cs:678
at System.Text.UTF8Encoding.GetChars (System.Byte[] bytes, Int32 byteIndex,
Int32 byteCount, System.Char[] chars, Int32 charIndex) [0x00008] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/corlib/System.Text/UTF8Encoding.cs:832
at System.IO.BinaryReader.ReadCharBytes (System.Char[] buffer, Int32 index,
Int32 count, System.Int32& bytes_read) [0x00041] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/corlib/System.IO/BinaryReader.cs:244
at System.IO.BinaryReader.PeekChar () [0x0004a] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/corlib/System.IO/BinaryReader.cs:143
at System.Xml.XmlBinaryDictionaryReader+StreamSource.ReadByte () [0x00000] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/System.Runtime.Serialization/System.Xml/XmlBinaryDictionaryReader.cs:75
at System.Xml.XmlBinaryDictionaryReader.ReadByteOrError () [0x0001d] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/System.Runtime.Serialization/System.Xml/XmlBinaryDictionaryReader.cs:1031
at System.Xml.XmlBinaryDictionaryReader.ReadElementBinary (Int32 ident)
[0x00181] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/System.Runtime.Serialization/System.Xml/XmlBinaryDictionaryReader.cs:729
at System.Xml.XmlBinaryDictionaryReader.Read () [0x0026f] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/System.Runtime.Serialization/System.Xml/XmlBinaryDictionaryReader.cs:601
at System.Xml.XmlWriter.WriteNode (System.Xml.XmlReader reader, Boolean
defattr) [0x00218] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/System.XML/System.Xml/XmlWriter.cs:576
at System.ServiceModel.Channels.MessageHeader+RawMessageHeader..ctor
(System.Xml.XmlReader reader, System.String soap_ns) [0x000ed] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/System.ServiceModel/System.ServiceModel.Channels/MessageHeader.cs:245
at System.ServiceModel.Channels.XmlReaderMessage.ReadHeaders () [0x000dc] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/System.ServiceModel/System.ServiceModel.Channels/MessageImpl.cs:174
at System.ServiceModel.Channels.XmlReaderMessage.get_Headers () [0x0000b] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/System.ServiceModel/System.ServiceModel.Channels/MessageImpl.cs:76
at System.ServiceModel.Dispatcher.EndpointAddressMessageFilter.Match
(System.ServiceModel.Channels.Message message) [0x00000] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/EndpointAddressMessageFilter.cs:70
at System.ServiceModel.Dispatcher.ListenerLoopManager.FindEndpointDispatcher
(System.ServiceModel.Channels.Message message) [0x00021] in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChannelDispatcher.cs:636
at System.ServiceModel.Dispatcher.ListenerLoopManager.ProcessInput
(IInputChannel input, System.ServiceModel.Channels.Message message) [0x00002]
in
/usr/src/packages/BUILD/mono-2.8.2/mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChannelDispatcher.cs:618
How often does this happen?
Always.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the mono-bugs
mailing list