Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
2.3.0
-
None
-
Sun Solaris 8
Description
We are parsing the same xml in multiple threads, which contains a schema. Very frequently, at least once for every tinderbox build, we get the following core dump:
=>[1] xercesc_2_3::ValueHashTableOf<unsigned short>::findBucketElem(this = (nil), key = 0x8ec3a4, hashVal = 4265683276U), line 252 in "ValueHashTableOf.c"
[2] xercesc_2_3::ValueHashTableOf<unsigned short>::get(this = (nil), key = 0x8ec3a4), line 199 in "ValueHashTableOf.c"
dbx: warning: unexpected RTTI for type xercesc_2_3::XSDLocator
[3] xercesc_2_3::GeneralAttributeCheck::getFacetId(this = 0xfc500c24, facetName = 0x8ec3a4), line 298 in "GeneralAttributeCheck.hpp"
[4] xercesc_2_3::TraverseSchema::traverseByRestriction(this = 0xfc500b58, rootElem = 0x8ec008, contentElem = 0x8ec118, typeName = 0x453198, qualifiedName = 0x47b758, finalSet = 0), line 2981 in "TraverseSchema.cpp"
[5] xercesc_2_3::TraverseSchema::traverseSimpleTypeDecl(this = 0xfc500b58, childElem = 0x8ec008, topLevel = false, baseRefContext = 0), line 1082 in "TraverseSchema.cpp"
[6] xercesc_2_3::TraverseSchema::traverseAttributeDecl(this = 0xfc500b58, elem = 0x8ebdd8, typeInfo = 0x33eee0, topLevel = false), line 2053 in "TraverseSchema.cpp"
[7] xercesc_2_3::TraverseSchema::processAttributes(this = 0xfc500b58, elem = 0x8eac50, attElem = 0x8ebdd8, baseRawName = (nil), baseLocalPart = (nil), baseURI = (nil), typeInfo = 0x33eee0, isBaseAnyType = false), line 6108 in "TraverseSchema.cpp"
[8] xercesc_2_3::TraverseSchema::processComplexContent(this = 0xfc500b58, ctElem = 0x8eac50, typeName = 0x8ead70, childElem = 0x8eae40, typeInfo = 0x33eee0, baseRawName = (nil), baseLocalPart = (nil), baseURI = (nil), isMixed = false, isBaseAnyType = false), line 5906 in "TraverseSchema.cpp"
[9] xercesc_2_3::TraverseSchema::traverseComplexTypeDecl(this = 0xfc500b58, elem = 0x8eac50, topLevel = true, recursingTypeName = (nil)), line 1269 in "TraverseSchema.cpp"
[10] xercesc_2_3::TraverseSchema::processChildren(this = 0xfc500b58, root = 0x8ea5a8), line 4283 in "TraverseSchema.cpp"
[11] xercesc_2_3::TraverseSchema::doTraverseSchema(this = 0xfc500b58, schemaRoot = 0x8ea5a8), line 276 in "TraverseSchema.cpp"
[12] xercesc_2_3::TraverseSchema::TraverseSchema(this = 0xfc500b58, schemaRoot = 0x8ea5a8, uriStringPool = 0x43d0f0, schemaGrammar = 0x8cfe10, grammarResolver = 0x8844b8, xmlScanner = 0x21a458, schemaURL = 0x2126c0, entityHandler = (nil), errorReporter = 0x3ff874, manager = 0xd50b8), line 253 in "TraverseSchema.cpp"
[13] xercesc_2_3::IGXMLScanner::resolveSchemaGrammar(this = 0x21a458, loc = 0x812458, uri = 0x213ad8), line 1421 in "IGXMLScanner2.cpp"
[14] xercesc_2_3::IGXMLScanner::parseSchemaLocation(this = 0x21a458, schemaLocationStr = 0x262a58), line 1285 in "IGXMLScanner2.cpp"
[15] xercesc_2_3::IGXMLScanner::scanRawAttrListforNameSpaces(this = 0x21a458, theRawAttrList = 0x7dbd30, attCount = 4), line 1247 in "IGXMLScanner2.cpp"
[16] xercesc_2_3::IGXMLScanner::scanStartTagNS(this = 0x21a458, gotData = true), line 2034 in "IGXMLScanner.cpp"
[17] xercesc_2_3::IGXMLScanner::scanContent(this = 0x21a458, extEntity = false), line 849 in "IGXMLScanner.cpp"
[18] xercesc_2_3::IGXMLScanner::scanDocument(this = 0x21a458, src = CLASS), line 209 in "IGXMLScanner.cpp"
[19] xercesc_2_3::XMLScanner::scanDocument(this = 0x21a458, systemId = 0x25b9b8), line 419 in "XMLScanner.cpp"
[20] xercesc_2_3::XMLScanner::scanDocument(this = 0x21a458, systemId = 0x817d58 "/view/auto_build_MessageMapper_Development-dcacpl1-2004-04-25.2135_view/dcaclearcase/vobs/eQuality/eBridge/../../eBridge/FormatDefinitions/swift/SwiftDataDictionary.xml"), line 427 in "XMLScanner.cpp"
[21] xercesc_2_3::SAX2XMLReaderImpl::parse(this = 0x3ff868, systemId = 0x817d58 "/view/auto_build_MessageMapper_Development-dcacpl1-2004-04-25.2135_view/dcaclearcase/vobs/eQuality/eBridge/../../eBridge/FormatDefinitions/swift/SwiftDataDictionary.xml"), line 637 in "SAX2XMLReaderImpl.cpp"
[22] ftisoft::vendor::swift::Field::GetDictionary(toFill = CLASS, def_dir = CLASS), line 156 in "DataDictionary.cpp"
...
I looked into it and found that the initialize of GeneralAttributeCheck::mapElements seems to fail. Although the mutex (sGeneralAttCheckMutex) contains a valid mutex, every single member field that should get a value (setUpValidators,mapAttributes) is null.
I was net yet able to find out how this is possible.