You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by "Shawn Price (JIRA)" <xe...@xml.apache.org> on 2006/03/06 08:40:31 UTC
[jira] Created: (XERCESC-1575) XMLMutex fails from XSLT extension
XMLMutex fails from XSLT extension
----------------------------------
Key: XERCESC-1575
URL: http://issues.apache.org/jira/browse/XERCESC-1575
Project: Xerces-C++
Type: Bug
Versions: 2.6.0
Environment: FreeBSD 6.0 (Release), libc++ 5, libpthread.so.2
Reporter: Shawn Price
Our application makes heavy use of XSL transformation supported by custom XSLT extension
functions to process documents. The extension function I'm current trying to debug returns
a -3 error ("Could not make mutex") back to XalanTransformer::transform(). In tracking down
the problem, I've traced it to a function call where we create an instance of a custom
NodeSetProxy implementation we create to return the XMLObjectPtr from the function.
The constructor for this class is as follows:
NodeSetProxy::NodeSetProxy(
MemoryManagerType& manager,
DOMDocument* document) :
XNodeSetBase(manager),
m_wrapper(
manager,
document,
true,
true),
m_proxy(manager, &m_wrapper)
{
//irrelavent initialization here
}
The problem is that the constructor for XercesDocumentWrapper (the call "m_wrapper(manager,
document, true, true)" above) ultimately results in an instantiation of XMLMutex, which, in
turn, calls XMLPlatformUtils::makeMutex() and subsequently fails with error "could not make
mutex" from the underlying platform POSIX threads library. The backtrace from gdb looks
like this:
#0 0x286d86ad in xercesc_2_6::XMLMutex::XMLMutex ()
from /casper/lib/libxerces-c.so.26
#1 0x2833fde6 in
xalanc_1_9::XercesLiaisonXalanDOMStringPool::XercesLiaisonXalanDOMStringPool () from
/casper/lib/libxalan-c.so
#2 0x2833fe51 in xalanc_1_9::XercesLiaisonXalanDOMStringPool::create ()
from /casper/lib/libxalan-c.so
#3 0x2833863b in xalanc_1_9::XercesDocumentWrapper::XercesDocumentWrapper ()
from /casper/lib/libxalan-c.so
#4 0x08060ac8 in NodeSetProxy::NodeSetProxy ()
#5 0x08052aa5 in DbdSqlQueryFunction::execute ()
#6 0x282ecb43 in xalanc_1_9::XPathEnvSupportDefault::extFunction ()
from /casper/lib/libxalan-c.so
#7 0x28465169 in xalanc_1_9::XSLTProcessorEnvSupportDefault::extFunction ()
from /casper/lib/libxalan-c.so
#8 0x28411a80 in xalanc_1_9::StylesheetExecutionContextDefault::extFunction ()
from /casper/lib/libxalan-c.so
#9 0x282e1a09 in xalanc_1_9::XPath::runExtFunction ()
from /casper/lib/libxalan-c.so
#10 0x282dd074 in xalanc_1_9::XPath::executeMore ()
from /casper/lib/libxalan-c.so
#11 0x283ad595 in xalanc_1_9::ElemVariable::startElement ()
from /casper/lib/libxalan-c.so
#12 0x283a97f6 in xalanc_1_9::ElemTemplateElement::execute ()
---Type <return> to continue, or q <return> to quit---
from /casper/lib/libxalan-c.so
#13 0x2843ce16 in xalanc_1_9::StylesheetRoot::process ()
from /casper/lib/libxalan-c.so
#14 0x28454293 in xalanc_1_9::XSLTEngineImpl::process ()
from /casper/lib/libxalan-c.so
#15 0x2848f99c in xalanc_1_9::XalanTransformer::doTransform ()
from /casper/lib/libxalan-c.so
#16 0x0806013e in xalanc_1_9::XalanTransformer::transform ()
#17 0x0805fd99 in CasperXmlProcessor::processRequest ()
#18 0x0805e82c in DatabaseDaemon::process ()
#19 0x0805fc5d in main ()
I have yet to go through the Xerces-C++ code base, but the error seems to be propagating
from a failed call to pthread_mutex_init. One way or another, there is a logic bug, and I
don't think it's in our code. We're using Xerces-C 2.6, Xalan-C 1.9, libpthread.so.2, and libstdc++.so.5.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org