[Mono-bugs] [Bug 675144] New: Apparent threading issue with KnownTypeCollection

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Fri Feb 25 12:55:07 EST 2011


https://bugzilla.novell.com/show_bug.cgi?id=675144

https://bugzilla.novell.com/show_bug.cgi?id=675144#c0


           Summary: Apparent threading issue with KnownTypeCollection
    Classification: Mono
           Product: Mono: Class Libraries
           Version: SVN
          Platform: x86
        OS/Version: UNIX Other
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: WCF
        AssignedTo: atsushi at ximian.com
        ReportedBy: david.straw at hp.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.10)
Gecko/20101005 Fedora/3.6.10-1.fc14 Firefox/3.6.10

Some of the time when I run my application in Moonlight I get an exception
thrown in KnownTypeCollection due to a collection being modified while
enumerating it. This results in some of my known types not getting registered,
so later calls to deserialize SOAP types fail.

It is not 100% reproducible and I haven't yet been able to reproduce it in a
simple test case, but I will keep trying.

Stack trace follows:

[0xa49ffb70:] EXCEPTION handling: System.InvalidOperationException: Collection
was modified; enumeration operation may not execute.
Exception in async operation: System.InvalidOperationException: Collection was
modified; enumeration operation may not execute.
  at
System.Collections.Generic.List`1+Enumerator[System.Runtime.Serialization.SerializationMap].VerifyState
() [0x00000] in <filename unknown>:0 
  at
System.Collections.Generic.List`1+Enumerator[System.Runtime.Serialization.SerializationMap].MoveNext
() [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.First[SerializationMap] (IEnumerable`1 source,
System.Func`2 predicate, Fallback fallback) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.FirstOrDefault[SerializationMap] (IEnumerable`1
source, System.Func`2 predicate) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.KnownTypeCollection.FindUserMap
(System.Xml.XmlQualifiedName qname) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.XmlFormatterDeserializer.DeserializeByMap
(System.Xml.XmlQualifiedName name, System.Type type, System.Xml.XmlReader
reader) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.XmlFormatterDeserializer.Deserialize
(System.Type type, System.Xml.XmlReader reader) [0x00000] in <filename
unknown>:0 
  at System.Runtime.Serialization.XmlFormatterDeserializer.Deserialize
(System.Xml.XmlReader reader, System.Type declaredType,
System.Runtime.Serialization.KnownTypeCollection knownTypes,
IDataContractSurrogate surrogate,
System.Runtime.Serialization.DataContractResolver resolver,
System.Runtime.Serialization.DataContractResolver defaultResolver,
System.String name, System.String ns, Boolean verifyObjectName) [0x00000] in
<filename unknown>:0 
  at System.Runtime.Serialization.DataContractSerializer.ReadObject
(System.Xml.XmlDictionaryReader reader, Boolean verifyObjectName) [0x00000] in
<filename unknown>:0 
  at System.Runtime.Serialization.XmlObjectSerializer.ReadObject
(System.Xml.XmlDictionaryReader reader) [0x00000] in <filename unknown>:0 
  at
System.ServiceModel.Dispatcher.DataContractMessagesFormatter.MessageToParts
(System.ServiceModel.Description.MessageDescription md,
System.ServiceModel.Channels.Message message) [0x00000] in <filename unknown>:0 
  at System.ServiceModel.Dispatcher.BaseMessagesFormatter.DeserializeReply
(System.ServiceModel.Channels.Message message, System.Object[] parameters)
[0x00000] in <filename unknown>:0 
  at System.ServiceModel.Dispatcher.OperationFormatter.DeserializeReply
(System.ServiceModel.Channels.Message message, System.Object[] parameters)
[0x00000] in <filename unknown>:0 
  at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request
(System.ServiceModel.Description.OperationDescription od, System.Object[]
parameters) [0x00000] in <filename unknown>:0 
  at System.ServiceModel.MonoInternal.ClientRuntimeChannel.DoProcess
(System.Reflection.MethodBase method, System.String operationName,
System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Process
(System.Reflection.MethodBase method, System.String operationName,
System.Object[] parameters) [0x00000] in <filename unknown>:0 


Reproducible: Sometimes

Steps to Reproduce:
Hard to reproduce reliably, but my web service has around 40-50 DataContract
types and around 40 OperationContract methods, several of which get called in
parallel during initialization (which is when the exception occurs).
Actual Results:  
The exception described above gets thrown and some of the web service calls
always fail thereafter due to not being able to find a known type.

Expected Results:  
The known type container should reliably handle many web service calls in
parallel without throwing an exception.

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list