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 bu...@apache.org on 2002/06/19 10:58:55 UTC

DO NOT REPLY [Bug 9986] New: - Xerces hangs in ThrowXML

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9986>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9986

Xerces hangs in ThrowXML

           Summary: Xerces hangs in ThrowXML
           Product: Xerces-C++
           Version: 1.7.0
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Utilities
        AssignedTo: xerces-c-dev@xml.apache.org
        ReportedBy: mwidenfalk@mds.nordion.com


I have several threads (CWinThread) that use Xerces. Sooner or later one 
specific thread gets stuck in ThrowXML. The exact point varies depending on what 
I send in systemID. This is one example:
void XMLURL::setURL(const XMLCh* const    baseURL
                  , const XMLCh* const    relativeURL)
{
    cleanup();

    // Parse our URL string
    parse(relativeURL);

	//
	//  If its relative and the base is non-null and non-empty, then
	//  parse the base URL string and conglomerate them.
	//
	if (isRelative() && baseURL)
	{
		if (*baseURL)
		{
			XMLURL basePart(baseURL);
			if (!conglomerateWithBase(basePart, false))
			{
				cleanup();
---->				ThrowXML(MalformedURLException, 
XMLExcepts::URL_RelativeBaseURL);
			}
		}
	}
}
[ baseURL = "Client" relativeURL = "Information-1-0.dtd" ]

The calltree proceeds with:
MSVCRTD!__CxxThrowException@8
KERNEL32!77e989d1()
so there are no more clues there I guess. The CPU is at 0% and it appears as 
though everything is stuck in some mutex.

I've made a (large) test program that spawns 50 threads and parses 50 DTD'd XML 
documents in each and it also occasionally gets stucks.

Brief facts of the case are:
* Single thread single point of initialization.
* Uses SAX.
* New parser, etc. for each document read.
* Uses MemBufInputSource.
* Uses MS VS6 sp5.

Sorry if this provides little clue as to what goes on. Please contact me for 
more specfic information, if needed.

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-c-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-c-dev-help@xml.apache.org