> 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

Reply via email to