> Hello All:
>
> We experience a consistent crash in a scenario which involves xerces-c and
> xqilla code:
>
> XercesNodeImpl::typeUriAndName(const xercesc_3_1::DOMNode*,const unsigned
> short*&,const unsigned short*&)() at 0x9000000f8663f2c
> Numeric.xercesc_3_1::ValueStackOf<unsigned
> int>::pop().XercesNodeImpl::getTypeUriAndName(const unsigned short*&,const
> unsigned short*&) const() at 0x9000000f8546d30
> XercesNodeImpl::getMemberTypeUriAndName(const unsigned short*&,const unsigned
> short*&) const() at 0x9000000f851c394
> XercesNodeImpl::dmTypedValue(DynamicContext*) const() at 0x9000000f85b199c
> AtomizeResult::next(DynamicContext*)() at 0x9000000f87046d0
> StaticType.GeneralComp::staticResolution(StaticContext*).GeneralCompResult::nextOrTail(Result&,DynamicContext*)()
> at 0x9000000f855db20
> XQContextImpl.AnyAtomicType::castable(AnyAtomicType::AtomicObjectType,const
> unsigned short*,const unsigned short*,const DynamicContext*)
> const.ResultImpl::next(DynamicContext*)() at 0x9000000f842d144
> EffectiveBooleanValueResult::nextOrTail(Result&,DynamicContext*)() at
> 0x9000000f86edec0
> XQContextImpl.AnyAtomicType::castable(AnyAtomicType::AtomicObjectType,const
> unsigned short*,const unsigned short*,const DynamicContext*)
> const.ResultImpl::next(DynamicContext*)() at 0x9000000f842d144
> StaticType.ComparisonOperator::staticResolution(StaticContext*).NonNumericPredicateFilterResult::next(DynamicContext*)()
> at 0x9000000f8560f64
> StaticType.ResultImpl::toSequence(DynamicContext*)() at 0x9000000f8548eb0
> TestSuiteResultListener.std::_Tree<std::_Tset_traits<RefCountPointer<const
> AnyAtomicType>,dvCompare,std::allocator<RefCountPointer<const AnyAtomicType>
> >,0>
> >::erase(std::_Tree<std::_Tset_traits<RefCountPointer<AnyAtomicType>,dvCompare,std::allocator<RefCountPointer<AnyAtomicType>
> >,0> >::iterator).DocumentOrderResult::getResult(Sequence&,DynamicContext*)
> const() at 0x9000000f858e958
> ResultBufferImpl.XQFunction::parseParamDecl(const
> char*,XPath2MemoryManager*).LazySequenceResult::next(DynamicContext*)() at
> 0x9000000f84f5c3c
> StaticType.ResultImpl::nextOrTail(Result&,DynamicContext*)() at
> 0x9000000f8548b5c
> XQContextImpl.AnyAtomicType::castable(AnyAtomicType::AtomicObjectType,const
> unsigned short*,const unsigned short*,const DynamicContext*)
> const.ResultImpl::next(DynamicContext*)() at 0x9000000f842d144
> StaticType.ResultImpl::toSequence(DynamicContext*)() at 0x9000000f8548eb0
> XPath2SnapshotResultImpl::XPath2SnapshotResultImpl(const
> XQQuery*,xercesc_3_1::DOMNode*,DynamicContext*,xercesc_3_1::MemoryManager*,XQillaExpressionImpl*)()
> at 0x9000000f8669ab4
> XQillaExpressionImpl::evaluate(const
> xercesc_3_1::DOMNode*,xercesc_3_1::DOMXPathResult::ResultType,xercesc_3_1::DOMXPathResult*)
> const() at 0x9000000f863797c
>
> The following lines in XercesNodeXml.xpp result in a crash:
>
> const DOMTypeInfo* pTypeInfo=((DOMAttr*)node)->getSchemaTypeInfo();
> const XMLCh* szUri=pTypeInfo->getTypeNamespace();
>
> DOMAttrImpl::getSchemaTypeInfo() returns an invalid pointer to a global
> static object:
>
> Xerces-c-3.1.0/src/xercesc/dom/impl/DOMAttrImpl.cpp
>
> const DOMTypeInfo *DOMAttrImpl::getSchemaTypeInfo() const
> {
> if(!fSchemaType)
> return &(DOMTypeInfoImpl::g_DtdNotValidatedAttribute); *
>
> return fSchemaType;
> }
>
> The problem is reproducible with xqilla-2.3.0/xerces-c-3.1.1 and
> xqilla-2.2.3/xerces-c-3.1.0.
>
> The problem is specific to xlC 9.0 compiler on AIX61/AIX53 ( 32 and 64-bit
> applicationsand is not reproducible on AIX71 (xlC 12.1),Solaris10 SPARC
> (SunStudio compiler), Solaris 11 on Intel (g++ compiler) or Windows (Visual
> Studio compiler).
>
> Xqilla build args:
> $ ./configure --with-xerces=/home/sambuild/XERCES_C_3.1.0_64 CXXFLAGS=-q64 LDF
> LAGS=-q64 --prefix=/home/sambuild/xqilla-2.2.3_64
>
>
> Xerces-c buildargs:
>
> $ ./configure CXX=xlC_r CC=xlc_r CXXFLAGS=-q64 CFLAGS=-q64
> --prefix=/home/samb
> uild/XERCES_C_3.1.0_64
>
> Please advise.
>
> Thank you,
> Alona