[ZODB-Dev] Zope or Zeo hanging up sockets

Chris McDonough chrism@zope.com
Thu, 29 Nov 2001 01:50:13 -0500


If you can do it, it might be a better idea to switch to minidom. 
Minidom is pretty fast.  From what I understand it's a lot faster than 
Parsed XML...

Matt wrote:
> It appears to be 4DOM locking all the other threads.  Very reproducable.
> Notably, the function : Sax2.FromXml that comes from xml.dom.ext.reader.
> Give it a large xml string to make a DOM tree out of and all other Zope
> threads will hang for a nice long time.  I'll have a closer look to find
> where the offending thread bits are, but I'll also switch to ParsedXML to
> see if that fixes the problem.
> 
> 
> 
> 
> 
> ----- Original Message -----
> From: "Toby Dickenson" <tdickenson@devmail.geminidataloggers.co.uk>
> To: "Matt" <matt@virtualspectator.com>
> Cc: "Chris McDonough" <chrism@zope.com>; <zodb-dev@zope.org>
> Sent: Wednesday, November 28, 2001 10:47 PM
> Subject: Re: [ZODB-Dev] Zope or Zeo hanging up sockets
> 
> 
> 
>>On Wed, 28 Nov 2001 16:44:21 +1300, "Matt" <matt@virtualspectator.com>
>>wrote:
>>
>>
>>>First of all, and don't laugh, the following are the external methods
>>>involved :
>>>
>>There may be an obvious soution... Does that external method use any
>>extension modules that might not be giving up the python global lock,
>>or any python modules that are using thread synchronisation?
>>
>>(my appologies if that question is *too* obvious)
>>
>>
>>>dom document of the 4Suite kind
>>>
>>I remember one of Python's xml libraries relies on the python garbage
>>colelctor to break circular references. Is that 4Suite, or another
>>one? The blockage may be due to the garbage collector, although 40s is
>>much slower that I have ever seen it before.
>>
>>
>>
>>>>>A sockstat shows that
>>>>>
>>>>connections
>>>>
>>>>>are piling up to Zope.  I watched the logs for a while and found
>>>>>
>>>>that when a
>>>>
>>>>>certain external method was called that takes up to 10 seconds to
>>>>>
>>>>run and
>>>>
>>>>>return, that all the other requests pile up behind it.  When it
>>>>>
>>>>finally goes
>>>>
>>>>>through then a burst of some, but not all, of other pending requests
>>>>>
>>>>goes
>>>>
>>>>>through
>>>>>
>>You could modify your external method to write a log file with
>>timestamps on entry, exit, and at any landmarks within the external
>>method. That may help isolate exactly what is blocking.
>>
>>
>>
>>Toby Dickenson
>>tdickenson@geminidataloggers.com
>>
>>_______________________________________________
>>For more information about ZODB, see the ZODB Wiki:
>>http://www.zope.org/Wikis/ZODB/
>>
>>ZODB-Dev mailing list  -  ZODB-Dev@zope.org
>>http://lists.zope.org/mailman/listinfo/zodb-dev
>>
> 


-- 
Chris McDonough                    Zope Corporation
http://www.zope.org             http://www.zope.com
"Killing hundreds of birds with thousands of stones"