EDN Admin
Well-known member
Hi,
I am trying to debug an application which runs under COM+. The servers running this code occasionally become unresponsive and we have to take them out of the pool and reboot them. The CPU shows 100% on the COM+ process.
When I ran ad-plus and put the dump file through the debugger, I see that a few threads are stuck on System.Xml.NameTable.Add.
The callstack is as follows:
<pre>0156e604 73bfadf5 System.Xml.NameTable.Add(Char[], Int32, Int32)
0156e628 73bfb2f0 System.Xml.XmlTextReaderImpl.AddAttribute(Int32, Int32)
0156e64c 73bfb0a8 System.Xml.XmlTextReaderImpl.ParseAttributes()
0156e680 73bfab78 System.Xml.XmlTextReaderImpl.ParseElement()
0156e6bc 73bfb76a System.Xml.XmlTextReaderImpl.ParseElementContent()
0156e6cc 73bf944e System.Xml.XmlTextReaderImpl.Read()
0156e6ec 73bfc980 System.Xml.XmlTextReader.Read()
0156e6f4 73bfe35d System.Xml.XPath.XPathDocument.LoadFromReader(System.Xml.XmlReader, System.Xml.XmlSpace)
0156e73c 73bfe195 System.Xml.XPath.XPathDocument..ctor(System.Xml.XmlReader, System.Xml.XmlSpace)
0156e74c 73c11897 System.Xml.XPath.XPathDocument..ctor(System.Xml.XmlReader)
0156e750 1b5efdbd NaviMedix.Kernel.Xml.UtilityXmlReader.ToXPathDocument(System.Xml.XmlReader)
0156e764 1b5efd5f NaviMedix.Kernel.UtilityString.ToXPathDocument(System.String, System.Xml.XmlNamespaceManager)
0156e798 1b5ef160 NaviMedix.Kernel.UtilityString.ToXPathDocument(System.String)
0156e7b4 1b6730e9 NaviMedix.Kernel.Xml.UtilityXmlDocument.ToXPathDocument(System.Xml.XmlDocument)
0156e7cc 1b67303f NaviMedix.Kernel.Serialization.FormatterBinaryRaw.ToObjectXPathDocument(Byte[], System.Text.Encoding)
0156e7ec 013a61eb NaviMedix.Kernel.Serialization.FormatterBinaryRaw.ToObject(Byte[], System.Type, System.Text.Encoding)
0156e8bc 013a5b1d NaviMedix.Kernel.Serialization.FormatterBinaryRaw.Deserialize(System.IO.Stream)
0156e8e8 013a5a2a NaviMedix.Kernel.Serialization.UtilitySerializationRaw.Deserialize[[System.__Canon, mscorlib]](System.IO.Stream, System.Text.Encoding)
0156e91c 013a3f00 NaviMedix.Kernel.UtilityFile.GetFileContent[[System.__Canon, mscorlib]](System.String, Boolean, System.Text.Encoding)
0156e970 013a3dcc NaviMedix.Kernel.UtilityFile.Read[[System.__Canon, mscorlib]](System.String, Boolean, System.Text.Encoding)
0156e9b8 013a3bd0 NaviMedix.Kernel.UtilityFile.Read[[System.__Canon, mscorlib]](System.String, Boolean)
0156e9e8 1b672676 NaviMedix.Kernel.Xml.Type.XmlReferenceFileBase.Read[[System.__Canon, mscorlib]]()
0156ea10 0182a55f NaviMedix.NaviNet.TradingPartner.Horizon.ServiceActivator.HorizonNextGenServiceActivator.GetPlanCentralInfoResponseWithPermissions(System.String, System.String, OfficeClassificationValue)
0156eb30 018294ef NaviMedix.NaviNet.TradingPartner.Horizon.ServiceActivator.HorizonNextGenServiceActivator.ProcessGetPlanCentralInfoRequest(System.Xml.XmlDocument)
0156ebd4 018291ec NaviMedix.NaviNet.TradingPartner.Horizon.ServiceActivator.HorizonNextGenServiceActivator.processRequest(System.String)
0156ee48 747038de [GCFrame: 0156ee48]
0156efa4 747038de [ComMethodFrame: 0156efa4] [/code]
There are no deadlocks or critical sections, but the threads seem to be stuck in some kind of busy loop on this call.
I also noticed a bunch of exceptions thrown from our application code, not sure if this is related:
73233efc 676 48672 System.FormatException
Some of the methods in the stack are static, I wonder if this could also be a cause for this - since the call is eventually made to a constructor, before the call seems to be stuck.
Any pointer/help in debugging this issue will be appreciated. Can post any other details about the code.
Thanks
View the full article
I am trying to debug an application which runs under COM+. The servers running this code occasionally become unresponsive and we have to take them out of the pool and reboot them. The CPU shows 100% on the COM+ process.
When I ran ad-plus and put the dump file through the debugger, I see that a few threads are stuck on System.Xml.NameTable.Add.
The callstack is as follows:
<pre>0156e604 73bfadf5 System.Xml.NameTable.Add(Char[], Int32, Int32)
0156e628 73bfb2f0 System.Xml.XmlTextReaderImpl.AddAttribute(Int32, Int32)
0156e64c 73bfb0a8 System.Xml.XmlTextReaderImpl.ParseAttributes()
0156e680 73bfab78 System.Xml.XmlTextReaderImpl.ParseElement()
0156e6bc 73bfb76a System.Xml.XmlTextReaderImpl.ParseElementContent()
0156e6cc 73bf944e System.Xml.XmlTextReaderImpl.Read()
0156e6ec 73bfc980 System.Xml.XmlTextReader.Read()
0156e6f4 73bfe35d System.Xml.XPath.XPathDocument.LoadFromReader(System.Xml.XmlReader, System.Xml.XmlSpace)
0156e73c 73bfe195 System.Xml.XPath.XPathDocument..ctor(System.Xml.XmlReader, System.Xml.XmlSpace)
0156e74c 73c11897 System.Xml.XPath.XPathDocument..ctor(System.Xml.XmlReader)
0156e750 1b5efdbd NaviMedix.Kernel.Xml.UtilityXmlReader.ToXPathDocument(System.Xml.XmlReader)
0156e764 1b5efd5f NaviMedix.Kernel.UtilityString.ToXPathDocument(System.String, System.Xml.XmlNamespaceManager)
0156e798 1b5ef160 NaviMedix.Kernel.UtilityString.ToXPathDocument(System.String)
0156e7b4 1b6730e9 NaviMedix.Kernel.Xml.UtilityXmlDocument.ToXPathDocument(System.Xml.XmlDocument)
0156e7cc 1b67303f NaviMedix.Kernel.Serialization.FormatterBinaryRaw.ToObjectXPathDocument(Byte[], System.Text.Encoding)
0156e7ec 013a61eb NaviMedix.Kernel.Serialization.FormatterBinaryRaw.ToObject(Byte[], System.Type, System.Text.Encoding)
0156e8bc 013a5b1d NaviMedix.Kernel.Serialization.FormatterBinaryRaw.Deserialize(System.IO.Stream)
0156e8e8 013a5a2a NaviMedix.Kernel.Serialization.UtilitySerializationRaw.Deserialize[[System.__Canon, mscorlib]](System.IO.Stream, System.Text.Encoding)
0156e91c 013a3f00 NaviMedix.Kernel.UtilityFile.GetFileContent[[System.__Canon, mscorlib]](System.String, Boolean, System.Text.Encoding)
0156e970 013a3dcc NaviMedix.Kernel.UtilityFile.Read[[System.__Canon, mscorlib]](System.String, Boolean, System.Text.Encoding)
0156e9b8 013a3bd0 NaviMedix.Kernel.UtilityFile.Read[[System.__Canon, mscorlib]](System.String, Boolean)
0156e9e8 1b672676 NaviMedix.Kernel.Xml.Type.XmlReferenceFileBase.Read[[System.__Canon, mscorlib]]()
0156ea10 0182a55f NaviMedix.NaviNet.TradingPartner.Horizon.ServiceActivator.HorizonNextGenServiceActivator.GetPlanCentralInfoResponseWithPermissions(System.String, System.String, OfficeClassificationValue)
0156eb30 018294ef NaviMedix.NaviNet.TradingPartner.Horizon.ServiceActivator.HorizonNextGenServiceActivator.ProcessGetPlanCentralInfoRequest(System.Xml.XmlDocument)
0156ebd4 018291ec NaviMedix.NaviNet.TradingPartner.Horizon.ServiceActivator.HorizonNextGenServiceActivator.processRequest(System.String)
0156ee48 747038de [GCFrame: 0156ee48]
0156efa4 747038de [ComMethodFrame: 0156efa4] [/code]
There are no deadlocks or critical sections, but the threads seem to be stuck in some kind of busy loop on this call.
I also noticed a bunch of exceptions thrown from our application code, not sure if this is related:
73233efc 676 48672 System.FormatException
Some of the methods in the stack are static, I wonder if this could also be a cause for this - since the call is eventually made to a constructor, before the call seems to be stuck.
Any pointer/help in debugging this issue will be appreciated. Can post any other details about the code.
Thanks
View the full article