Bugzilla – Bug 422785
Mono will crash when calling System.ServiceModel.Open ()
Last modified: 2011-06-24 18:01:06 UTC
Mono (trunk from today) will crash when System.ServiceModel.Open () is called. (This is in a real-world application; it doesn't happen in any WCF application.) OS: Ubuntu 8.04 I can't provide the code that causes the problem here, yet, but it will be released as open source later this year. However if you need that information and you are working for Novell, please feel free to contact me by mail. This bug also (in a slightly different way) occurs with Mono 2.0 and olive. An excerpt from the crash: Stack overflow in unmanaged: IP: 0x818045f, fault addr: 0xbf2dcebc Stack overflow: IP: 0x818045f, fault addr: 0xbf2d4d14 At Unmanaged Stacktrace: at (wrapper managed-to-native) System.MonoCustomAttrs.GetCustomAttributesInternal (System.Reflection.ICustomAttributeProvider,System.Type,bool) <0x00004> at (wrapper managed-to-native) System.MonoCustomAttrs.GetCustomAttributesInternal (System.Reflection.ICustomAttributeProvider,System.Type,bool) <0xffffffff> at System.MonoCustomAttrs.GetCustomAttributesBase (System.Reflection.ICustomAttributeProvider,System.Type) <0x00014> at System.MonoCustomAttrs.GetCustomAttributes (System.Reflection.ICustomAttributeProvider,System.Type,bool) <0x00037> at System.MonoType.GetCustomAttributes (System.Type,bool) <0x00018> at System.Runtime.Serialization.KnownTypeCollection.GetContractQName (System.Type) <0x00018> at System.Runtime.Serialization.KnownTypeCollection.GetQName (System.Type) <0x00063> at System.Runtime.Serialization.SerializationMap.CreateDataMemberInfo (System.Runtime.Serialization.DataMemberAttribute,System.Reflection.MemberInfo,System.Type) <0x00051> at System.Runtime.Serialization.SharedContractMap.GetMembers (System.Type,System.Xml.XmlQualifiedName,bool) <0x000c6> at System.Runtime.Serialization.SharedContractMap..ctor (System.Type,System.Xml.XmlQualifiedName,System.Runtime.Serialization.KnownTypeCollection) <0x0005c> at System.Runtime.Serialization.KnownTypeCollection.RegisterContract (System.Type) <0x00158> at System.Runtime.Serialization.KnownTypeCollection.TryRegister (System.Type) <0x00057> at System.Runtime.Serialization.KnownTypeCollection.InsertItem (int,System.Type) <0x0000d> at System.Collections.ObjectModel.Collection`1<object>.Add (object) <0x00031> at System.Runtime.Serialization.SerializationMap.CreateDataMemberInfo (System.Runtime.Serialization.DataMemberAttribute,System.Reflection.MemberInfo,System.Type) <0x0001c> at System.Runtime.Serialization.SharedContractMap.GetMembers (System.Type,System.Xml.XmlQualifiedName,bool) <0x000c6> at System.Runtime.Serialization.SharedContractMap..ctor (System.Type,System.Xml.XmlQualifiedName,System.Runtime.Serialization.KnownTypeCollection) <0x0005c> at System.Runtime.Serialization.KnownTypeCollection.RegisterContract (System.Type) <0x00158> at System.Runtime.Serialization.KnownTypeCollection.TryRegister (System.Type) <0x00057> at System.Runtime.Serialization.KnownTypeCollection.TryRegister (System.Type) <0x00094> at System.Runtime.Serialization.KnownTypeCollection.InsertItem (int,System.Type) <0x0000d> at System.Collections.ObjectModel.Collection`1<object>.Add (object) <0x00031> at System.Runtime.Serialization.SerializationMap.CreateDataMemberInfo (System.Runtime.Serialization.DataMemberAttribute,System.Reflection.MemberInfo,System.Type) <0x0001c> at System.Runtime.Serialization.SharedContractMap.GetMembers (System.Type,System.Xml.XmlQualifiedName,bool) <0x000c6> at System.Runtime.Serialization.SharedContractMap..ctor (System.Type,System.Xml.XmlQualifiedName,System.Runtime.Serialization.KnownTypeCollection) <0x0005c> at System.Runtime.Serialization.KnownTypeCollection.RegisterContract (System.Type) <0x00158> at System.Runtime.Serialization.KnownTypeCollection.TryRegister (System.Type) <0x00057> at System.Runtime.Serialization.KnownTypeCollection.InsertItem (int,System.Type) <0x0000d> at System.Collections.ObjectModel.Collection`1<object>.Add (object) <0x00031> at System.Runtime.Serialization.SerializationMap.CreateDataMemberInfo (System.Runtime.Serialization.DataMemberAttribute,System.Reflection.MemberInfo,System.Type) <0x0001c> at System.Runtime.Serialization.SharedContractMap.GetMembers (System.Type,System.Xml.XmlQualifiedName,bool) <0x000c6> at System.Runtime.Serialization.SharedContractMap..ctor (System.Type,System.Xml.XmlQualifiedName,System.Runtime.Serialization.KnownTypeCollection) <0x0005c> at System.Runtime.Serialization.KnownTypeCollection.RegisterContract (System.Type) <0x00158> at System.Runtime.Serialization.KnownTypeCollection.TryRegister (System.Type) <0x00057> at System.Runtime.Serialization.KnownTypeCollection.InsertItem (int,System.Type) <0x0000d> at System.Collections.ObjectModel.Collection`1<object>.Add (object) <0x00031> at System.Runtime.Serialization.SerializationMap.CreateDataMemberInfo (System.Runtime.Serialization.DataMemberAttribute,System.Reflection.MemberInfo,System.Type) <0x0001c> at System.Runtime.Serialization.SharedContractMap.GetMembers (System.Type,System.Xml.XmlQualifiedName,bool) <0x000c6> at System.Runtime.Serialization.SharedContractMap..ctor (System.Type,System.Xml.XmlQualifiedName,System.Runtime.Serialization.KnownTypeCollection) <0x0005c> at System.Runtime.Serialization.KnownTypeCollection.RegisterContract (System.Type) <0x00158> at System.Runtime.Serialization.KnownTypeCollection.TryRegister (System.Type) <0x00057> at System.Runtime.Serialization.KnownTypeCollection.TryRegister (System.Type) <0x00094> at System.Runtime.Serialization.KnownTypeCollection.InsertItem (int,System.Type) <0x0000d> at System.Collections.ObjectModel.Collection`1<object>.Add (object) <0x00031> at System.Runtime.Serialization.SerializationMap.CreateDataMemberInfo (System.Runtime.Serialization.DataMemberAttribute,System.Reflection.MemberInfo,System.Type) <0x0001c> at System.Runtime.Serialization.SharedContractMap.GetMembers (System.Type,System.Xml.XmlQualifiedName,bool) <0x000c6> at System.Runtime.Serialization.SharedContractMap..ctor (System.Type,System.Xml.XmlQualifiedName,System.Runtime.Serialization.KnownTypeCollection) <0x0005c> at System.Runtime.Serialization.KnownTypeCollection.RegisterContract (System.Type) <0x00158> at System.Runtime.Serialization.KnownTypeCollection.TryRegister (System.Type) <0x00057> at System.Runtime.Serialization.KnownTypeCollection.InsertItem (int,System.Type) <0x0000d> at System.Collections.ObjectModel.Collection`1<object>.Add (object) <0x00031> at System.Runtime.Serialization.SerializationMap.CreateDataMemberInfo (System.Runtime.Serialization.DataMemberAttribute,System.Reflection.MemberInfo,System.Type) <0x0001c> at System.Runtime.Serialization.SharedContractMap.GetMembers (System.Type,System.Xml.XmlQualifiedName,bool) <0x000c6> .... 20 Megabytes follow ... at System.Collections.ObjectModel.Collection`1<object>.Add (object) <0x00031> at System.Runtime.Serialization.SerializationMap.CreateDataMemberInfo (System.Runtime.Serialization.DataMemberAttribute,System.Reflection.MemberInfo,System.Type) <0x0001c> at System.Runtime.Serialization.SharedContractMap.GetMembers (System.Type,System.Xml.XmlQualifiedName,bool) <0x000c6> at System.Runtime.Serialization.SharedContractMap..ctor (System.Type,System.Xml.XmlQualifiedName,System.Runtime.Serialization.KnownTypeCollection) <0x0005c> at System.Runtime.Serialization.KnownTypeCollection.RegisterContract (System.Type) <0x00158> at System.Runtime.Serialization.KnownTypeCollection.TryRegister (System.Type) <0x00057> at System.Runtime.Serialization.KnownTypeCollection.TryRegister (System.Type) <0x00094> at System.Runtime.Serialization.KnownTypeCollection.InsertItem (int,System.Type) <0x0000d> at System.Collections.ObjectModel.Collection`1<object>.Add (object) <0x00031> at System.Runtime.Serialization.SerializationMap.CreateDataMemberInfo (System.Runtime.Serialization.DataMemberAttribute,System.Reflection.MemberInfo,System.Type) <0x0001c> at System.Runtime.Serialization.SharedContractMap.GetMembers (System.Type,System.Xml.XmlQualifiedName,bool) <0x000c6> at System.Runtime.Serialization.SharedContractMap..ctor (System.Type,System.Xml.XmlQualifiedName,System.Runtime.Serialization.KnownTypeCollection) <0x0005c> at System.Runtime.Serialization.KnownTypeCollection.RegisterContract (System.Type) <0x00158> at System.Runtime.Serialization.KnownTypeCollection.TryRegister (System.Type) <0x00057> at System.Runtime.Serialization.KnownTypeCollection.InsertItem (int,System.Type) <0x0000d> at System.Collections.ObjectModel.Collection`1<object>.Add (object) <0x00031> at System.Runtime.Serialization.SerializationMap.CreateDataMemberInfo (System.Runtime.Serialization.DataMemberAttribute,System.Reflection.MemberInfo,System.Type) <0x0001c> at System.Runtime.Serialization.SharedContractMap.GetMembers (System.Type,System.Xml.XmlQualifiedName,bool) <0x000c6> at System.Runtime.Serialization.SharedContractMap..ctor (System.Type,System.Xml.XmlQualifiedName,System.Runtime.Serialization.KnownTypeCollection) <0x0005c> at System.Runtime.Serialization.KnownTypeCollection.RegisterContract (System.Type) <0x00158> at System.Runtime.Serialization.KnownTypeCollection.TryRegister (System.Type) <0x00057> at System.Runtime.Serialization.KnownTypeCollection.InsertItem (int,System.Type) <0x0000d> at System.Collections.ObjectModel.Collection`1<object>.Add (object) <0x00031> at System.Runtime.Serialization.SerializationMap.CreateDataMemberInfo (System.Runtime.Serialization.DataMemberAttribute,System.Reflection.MemberInfo,System.Type) <0x0001c> at System.Runtime.Serialization.SharedContractMap.GetMembers (System.Type,System.Xml.XmlQualifiedName,bool) <0x000c6> at System.Runtime.Serialization.SharedContractMap..ctor (System.Type,System.Xml.XmlQualifiedName,System.Runtime.Serialization.KnownTypeCollection) <0x0005c> at System.Runtime.Serialization.KnownTypeCollection.RegisterContract (System.Type) <0x00158> at System.Runtime.Serialization.KnownTypeCollection.TryRegister (System.Type) <0x00057> at System.Runtime.Serialization.KnownTypeCollection.InsertItem (int,System.Type) <0x0000d> at System.Collections.ObjectModel.Collection`1<object>.Add (object) <0x00031> at System.Runtime.Serialization.XsdDataContractExporter.Export (System.Type) <0x0001d> at System.ServiceModel.Description.WsdlExporter.GetSchemaElementForPart (System.ServiceModel.Description.MessagePartDescription,System.Xml.Schema.XmlSchema) <0x0006a> at System.ServiceModel.Description.WsdlExporter.ExportParameters (System.ServiceModel.Description.MessageBodyDescription,string,string) <0x0028f> at System.ServiceModel.Description.WsdlExporter.ExportMessageBodyDescription (System.ServiceModel.Description.MessageBodyDescription,string,string) <0x00079> at System.ServiceModel.Description.WsdlExporter.ExportContractInternal (System.ServiceModel.Description.ContractDescription) <0x00518> at System.ServiceModel.Description.WsdlExporter.ExportEndpoint (System.ServiceModel.Description.ServiceEndpoint) <0x00045> at System.ServiceModel.Description.ServiceMetadataExtension.get_Metadata () <0x0009f> at System.ServiceModel.Description.HttpGetWsdl.GetMetadata (System.ServiceModel.ServiceHostBase) <0x0004a> at System.ServiceModel.Description.HttpGetWsdl..ctor (System.ServiceModel.Description.ServiceMetadataExtension,System.Uri) <0x0005c> at System.ServiceModel.Description.ServiceMetadataExtension.EnsureServiceMetadataHttpChanelDispatcher (System.ServiceModel.Description.ServiceDescription,System.ServiceModel.ServiceHostBase,System.ServiceModel.Description.ServiceMetadataExtension,System.Uri) <0x00191> at System.ServiceModel.Description.ServiceDebugBehavior.System.ServiceModel.Description.IServiceBehavior.ApplyDispatchBehavior (System.ServiceModel.Description.ServiceDescription,System.ServiceModel.ServiceHostBase) <0x001b5> at System.ServiceModel.ServiceHostBase.InitializeRuntime () <0x00197> at System.ServiceModel.ServiceHostBase.OnOpen (System.TimeSpan) <0x00010> at System.ServiceModel.Channels.CommunicationObject.Open (System.TimeSpan) <0x00029> at System.ServiceModel.Channels.CommunicationObject.Open () <0x0002f> at PRODUCT.Server.Driver.Main (string[]) <0x000f6> at (wrapper runtime-invoke) PRODUCT.Server.Driver.runtime_invoke_void_string[] (object,intptr,intptr,intptr) <0xffffffff> Native stacktrace: mono [0x80700e4] [0xb7ee4440] /lib/tls/i686/cmov/libc.so.6(abort+0x101) [0xb7caaa01] mono [0x8188cee] [0xb7ee4440] mono [0x818049a] mono [0x818049a] mono [0x818049a] mono [0x818049a] mono [0x818049a] mono [0x818049a] mono [0x818049a] mono [0x8180538] mono [0x8179d76] mono [0x8178324] mono(mono_string_new_size+0x3f) [0x81174af] mono(mono_string_new_utf16+0x1e) [0x811752e] mono(mono_string_new_len+0x56) [0x8117e16] mono [0x80e78ce] mono [0x80e7f85] mono(mono_reflection_get_custom_attrs_by_type+0xdd) [0x80e817d] mono [0x80b592a] [0xb7017b5a] [0xb7017aa5] [0xb7017418] [0xb70173b1] [0xb6b90051] [0xb6ba747c] [0xb6b909f2] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba7165] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba7165] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba7165] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba7165] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba7165] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba7165] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba7165] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba7165] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba7165] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba7165] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd] [0xb6b906a7] [0xb6b90425] [0xb6b8ffd1] [0xb6ba7128] [0xb6ba709e] [0xb701bba2] [0xb6b909bd]
This looks like a pretty standard stack overflow which is the runtime can't always handle. The real problem is in the managed methods in the stacktrace above.
-> class libs.