AW: Patch to DorothyLocker

"Bauer, Georg" <[email protected]> Thu, 23 Sep 2004 14:35:15 +0200
Newsgroups gmane.comp.pythin.pyds.devel
Message-ID <C43D74B62BA19A45ADD74C1AB7AEE542799876@NT-GWS2>
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_000_01C4A169.C6FA58B0
Content-Type: text/plain;
	charset="iso-8859-1"

Hi!

> Georg, could you please check in the patch Garth attached to his last
email?

Hmm. When trying the patch, I got the attached tracebacks (lots of them).
Doesn't really look that good. I commited it nonetheless, so you can play
with it. But it's definitely not there, yet.

Even more problematic: stopping it with pyds-stop and kill doesn't work any
more - looks like there is some endless loop or something like that inside.
I had to kill -9 the processes. Yuck. :-/

The problem with terminating doesn't occur when I start without -v, so it
should be in the DorothyLocker stuff, not in the changes to Tool.py.

bye, Georg


------_=_NextPart_000_01C4A169.C6FA58B0
Content-Type: application/octet-stream;
	name="logfile"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="logfile"

Loading desktop server ...
Installing signal handlers
Installing tool /opt/pyds/share/pyds/tools/GreetingTool.py
Installing tool /opt/pyds/share/pyds/tools/NewTool.py
Instantiating tools

-------------------------------------------------
Enabled verbose lock debugging via DorothyLocker.
-------------------------------------------------

Initializing tool databases
 ... for weblog
 ... for pictures
 ... for stories
 ... for wiki
 ... for aggregator
 ... for shortcuts
 ... for nuggets
 ... for macros
 ... for events
 ... for preferences
 ... for user
 ... for zine
 ... for externals
 ... for themes
 ... for access
 ... for documentation
 ... for status
 ... for mirror
 ... for mesh
 ... for upstream
 ... for downstream
 ... for blogmark
 ... for calendar
 ... for shutdown
 ... for navigation
 ... for passwords
 ... for render
 ... for topicexchange
 ... for trackback
 ... for enclosures
 ... for ping
 ... for archive
 ... for timer
 ... for blogger
 ... for metaWeblog
 ... for greeting
Initializing tool options
 ... for weblog
 ... for pictures
 ... for stories
 ... for wiki
 ... for aggregator
 ... for shortcuts
 ... for nuggets
 ... for macros
 ... for events
 ... for preferences
 ... for user
 ... for zine
 ... for externals
 ... for themes
 ... for access
 ... for documentation
 ... for status
 ... for mirror
 ... for mesh
 ... for upstream
Initializing upstream driver XML Storage System (default driver)
 ... for downstream
 ... for blogmark
 ... for calendar
 ... for shutdown
 ... for navigation
 ... for passwords
 ... for render
 ... for topicexchange
 ... for trackback
 ... for enclosures
 ... for ping
 ... for archive
 ... for timer
 ... for blogger
 ... for metaWeblog
 ... for greeting
Initializing active tool hooks
 ... for weblog
 ... for pictures
 ... for stories
 ... for wiki
 ... for nuggets
 ... for macros
 ... for zine
 ... for externals
 ... for mirror
 ... for upstream
 ... for blogmark
 ... for calendar
 ... for topicexchange
 ... for trackback
 ... for enclosures
 ... for archive
Initializing subtools
Now starting all threads
 ... for weblog
 ... for pictures
 ... for wiki
 ... for aggregator
 ... for externals
 ... for mirror
 ... for upstream
 ... for downstream
 ... for blogmark
 ... for render
 ... for topicexchange
 ... for trackback
 ... for enclosures
 ... for archive
 ... for timer
info: Medusa (V1.11) started at Thu Sep 23 14:36:35 2004
	Hostname: localhost
	Port:4334

info: Monitor Server (V1.5) started on port 4444
Thu Sep 23 14:36:36 2004: LockWhiner 143718556 started for events.lock; =
thread 143644932 (aggregator) waiting
Thu Sep 23 14:36:36 2004: LockWhiner 144035212 started for events.lock; =
thread 143638428 (pictures) waiting
Thu Sep 23 14:36:36 2004: LockWhiner 143585212 started for events.lock; =
thread 143454572 (weblog) waiting
Thu Sep 23 14:36:36 2004: LockWhiner 143165956 started for events.lock; =
thread 143759484 (timer) waiting
Thu Sep 23 14:36:36 2004: LockWhiner 143375772 started for events.lock; =
thread 143028492 (mirror) waiting
Thu Sep 23 14:36:36 2004: LockWhiner 143602828 started for events.lock; =
thread 143432100 (externals) waiting
Thu Sep 23 14:36:36 2004: LockWhiner 143566556 started for events.lock; =
thread 143317420 (upstream) waiting
Thu Sep 23 14:36:36 2004: LockWhiner 143574236 started for events.lock; =
thread 143670020 (blogmark) waiting
Thu Sep 23 14:36:36 2004: LockWhiner 143146004 started for events.lock; =
thread 143402844 (trackback) waiting
Thu Sep 23 14:36:36 2004: LockWhiner 143595740 started for events.lock; =
thread 143743316 (render) waiting
Thu Sep 23 14:36:36 2004: LockWhiner 143178372 started for events.lock; =
thread 143652276 (archive) waiting
Thu Sep 23 14:36:36 2004: LockWhiner 143603588 started for events.lock; =
thread 143522652 (topicexchange) waiting
Thu Sep 23 14:36:36 2004: LockWhiner 143294300 started for events.lock; =
thread 143154004 (enclosures) waiting
Thu Sep 23 14:36:36 2004: LockWhiner 143648180 started for events.lock; =
thread 143554844 (downstream) waiting
info: Medusa (V1.11) started at Thu Sep 23 14:36:36 2004
	Hostname: xgwsbae2
	Port:4334

ServException in thread aggregator:
Traceback (most recent call last):
  File "/opt/pyds/lib/python2.2/threading.py", line 408, in __bootstrap
    self.run()
  File "/opt/pyds/lib/python2.2/threading.py", line 396, in run
    apply(self.__target, self.__args, self.__kwargs)
  File "/opt/pyds/lib/python2.2/site-packages/PyDS/Tool.py", line 1308, =
in thunk
    tool.logVerbose(_('Background process started'))
  File "/opt/pyds/lib/python2.2/site-packages/PyDS/Tool.py", line 1626, =
in logVerbose
    getTool('events')._logVerbose(self.name, msg)
  File "/opt/pyds/lib/python2.2/site-packages/PyDS/EventsTool.py", line =
92, in _logVerbose
    self._log(tool, message)
  File "/opt/pyds/lib/python2.2/site-packages/PyDS/EventsTool.py", line =
86, in _log
    finally: self._release()
  File "/opt/pyds/lib/python2.2/site-packages/PyDS/Tool.py", line 1398, =
in _release
    return self.lock.release()
  File "/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py", =
line 249, in release
    raise ReleaseOfUnAcquiredLock, ("release of un-acquired lock", =
mycontext[-1], myt)
ReleaseOfUnAcquiredLock: ('release of un-acquired lock', <frame object =
at 0x88ca114>, 1095942996.9246681)

er is now up and responding
_acquire:=20
Exception exceptions.AssertionError:=20
('/opt/pyds/lib/python2.2/site-packages/PyDS/Tool.py', 1379, =
'_acquire', 'return self.lock.acquire(blocking)')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 222, =
'acquire', 'assert result # ... but you can never be too careful.')
Thu Sep 23 14:36:36 2004: LockWhiner 1084337924 started for =
events.lock; thread 135948468 (MainThread) waiting
release of un-acquired lock caught; lock was acquired in frame id =
143434004 at time Thu Sep 23 14:36:36 2004
Trace of the initial lock acquisition:

Thu Sep 23 14:36:46 2004: LockWhiner 143718556 has been waiting for =
10.07s
_LockWhiner.run: Bugger.
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  whineThread =3D <Thread(aggregator, stopped)>
  _Thread__block =3D <Condition(<thread.lock object at 0x828f5d8>, 0)>
  _Thread__name =3D 'Thread-1'
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x887f54c>, <frame object at =
0x88e5e1c>, <frame object at 0x88e5f94>, <frame object at 0x88e6144>, =
<frame object at 0x88c6cdc>, <frame object at 0x88ca114>)
  _Thread__started =3D 1
  whineTime =3D 1095942996.469058
  _Thread__target =3D None
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _Thread__initialized =3D 1
Thu Sep 23 14:36:46 2004: LockWhiner 144035212 has been waiting for =
10.08s
_LockWhiner.run: Bugger.
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  whineThread =3D <Thread(pictures, started)>
  _Thread__block =3D <Condition(<thread.lock object at 0x888c860>, 0)>
  _Thread__name =3D 'Thread-2'
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x88b9f14>, <frame object at =
0x88cedfc>, <frame object at 0x88fcbcc>, <frame object at 0x88ce7c4>, =
<frame object at 0x88ce95c>, <frame object at 0x88cc67c>)
  _Thread__started =3D 1
  whineTime =3D 1095942996.490041
  _Thread__target =3D None
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _Thread__initialized =3D 1
Thu Sep 23 14:36:46 2004: LockWhiner 143585212 has been waiting for =
10.06s
_LockWhiner.run: Bugger.
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  whineThread =3D <Thread(weblog, started)>
  _Thread__block =3D <Condition(<thread.lock object at 0x8794080>, 0)>
  _Thread__name =3D 'Thread-3'
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x88e08bc>, <frame object at =
0x88dcf2c>, <frame object at 0x88fbfec>, <frame object at 0x88cb9c4>, =
<frame object at 0x88c3a6c>, <frame object at 0x88cec64>)
  _Thread__started =3D 1
  whineTime =3D 1095942996.5408399
  _Thread__target =3D None
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _Thread__initialized =3D 1
Thu Sep 23 14:36:46 2004: LockWhiner 143165956 has been waiting for =
10.02s
_LockWhiner.run: Bugger.
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  whineThread =3D <Thread(timer, started)>
  _Thread__block =3D <Condition(<thread.lock object at 0x835eec8>, 0)>
  _Thread__name =3D 'Thread-5'
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x88a2d14>, <frame object at =
0x88953a4>, <frame object at 0x890036c>, <frame object at 0x88de49c>, =
<frame object at 0x88a0aa4>, <frame object at 0x8888d44>)
  _Thread__started =3D 1
  whineTime =3D 1095942996.596807
  _Thread__target =3D None
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _Thread__initialized =3D 1
Thu Sep 23 14:36:46 2004: LockWhiner 143375772 has been waiting for =
10.04s
_LockWhiner.run: Bugger.
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  whineThread =3D <Thread(mirror, started)>
  _Thread__block =3D <Condition(<thread.lock object at 0x867d928>, 0)>
  _Thread__name =3D 'Thread-4'
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x88f93a4>, <frame object at =
0x88bf03c>, <frame object at 0x88ed7d4>, <frame object at 0x88e8b74>, =
<frame object at 0x88efcfc>, <frame object at 0x88922f4>)
  _Thread__started =3D 1
  whineTime =3D 1095942996.5849659
  _Thread__target =3D None
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _Thread__initialized =3D 1
Thu Sep 23 14:36:46 2004: LockWhiner 143602828 has been waiting for =
10.03s
_LockWhiner.run: Bugger.
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  whineThread =3D <Thread(externals, started)>
  _Thread__block =3D <Condition(<thread.lock object at 0x820c160>, 0)>
  _Thread__name =3D 'Thread-6'
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x88e9f1c>, <frame object at =
0x88df76c>, <frame object at 0x88df8e4>, <frame object at 0x88e3b3c>, =
<frame object at 0x88ea0ac>, <frame object at 0x88efb64>)
  _Thread__started =3D 1
  whineTime =3D 1095942996.6105831
  _Thread__target =3D None
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _Thread__initialized =3D 1
Thu Sep 23 14:36:46 2004: LockWhiner 143566556 has been waiting for =
10.06s
_LockWhiner.run: Bugger.
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  whineThread =3D <Thread(upstream, started)>
  _Thread__block =3D <Condition(<thread.lock object at 0x88d7ac0>, 0)>
  _Thread__name =3D 'Thread-7'
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x88b77f4>, <frame object at =
0x88f3d44>, <frame object at 0x8903934>, <frame object at 0x89024dc>, =
<frame object at 0x88bf26c>, <frame object at 0x88ea224>)
  _Thread__started =3D 1
  whineTime =3D 1095942996.602026
  _Thread__target =3D None
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _Thread__initialized =3D 1
Thu Sep 23 14:36:46 2004: LockWhiner 143146004 has been waiting for =
10.02s
_LockWhiner.run: Bugger.
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  whineThread =3D <Thread(trackback, started)>
  _Thread__block =3D <Condition(<thread.lock object at 0x8454240>, 0)>
  _Thread__name =3D 'Thread-9'
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x8492764>, <frame object at =
0x83fa55c>, <frame object at 0x8903fd4>, <frame object at 0x83d99a4>, =
<frame object at 0x82af79c>, <frame object at 0x88dd63c>)
  _Thread__started =3D 1
  whineTime =3D 1095942996.6507211
  _Thread__target =3D None
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _Thread__initialized =3D 1
Thu Sep 23 14:36:46 2004: LockWhiner 143574236 has been waiting for =
10.02s
_LockWhiner.run: Bugger.
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  whineThread =3D <Thread(blogmark, started)>
  _Thread__block =3D <Condition(<thread.lock object at 0x8231818>, 0)>
  _Thread__name =3D 'Thread-8'
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x88ead84>, <frame object at =
0x88eaf24>, <frame object at 0x88e8d9c>, <frame object at 0x88d9e64>, =
<frame object at 0x88bf3fc>, <frame object at 0x89174ac>)
  _Thread__started =3D 1
  whineTime =3D 1095942996.6503279
  _Thread__target =3D None
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _Thread__initialized =3D 1
Thu Sep 23 14:36:46 2004: LockWhiner 143595740 has been waiting for =
10.00s
_LockWhiner.run: Bugger.
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  whineThread =3D <Thread(render, started)>
  _Thread__block =3D <Condition(<thread.lock object at 0x88f3fc0>, 0)>
  _Thread__name =3D 'Thread-11'
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x88ee39c>, <frame object at =
0x88f842c>, <frame object at 0x88d1414>, <frame object at 0x8904adc>, =
<frame object at 0x891d3c4>, <frame object at 0x88c697c>)
  _Thread__started =3D 1
  whineTime =3D 1095942996.6748199
  _Thread__target =3D None
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _Thread__initialized =3D 1
Thu Sep 23 14:36:46 2004: LockWhiner 143648180 has been waiting for =
10.01s
Thu Sep 23 14:36:46 2004: LockWhiner 143603588 has been waiting for =
10.01s
Thu Sep 23 14:36:46 2004: LockWhiner 143178372 has been waiting for =
10.02s
_LockWhiner.run: Bugger.
Thu Sep 23 14:36:46 2004: LockWhiner 143294300 has been waiting for =
10.01s
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
_LockWhiner.run: Bugger.
_LockWhiner.run: Bugger.
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
_LockWhiner.run: Bugger.
Exception exceptions.AttributeError: 'NoneType' object has no attribute =
'getName'
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  whineThread =3D <Thread(downstream, started)>
  _Thread__block =3D <Condition(<thread.lock object at 0x888f198>, 0)>
  _Thread__name =3D 'Thread-14'
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x88ff7f4>, <frame object at =
0x88f63d4>, <frame object at 0x88ee1b4>, <frame object at 0x88f171c>, =
<frame object at 0x88e4dc4>, <frame object at 0x8904944>)
  _Thread__started =3D 1
  whineTime =3D 1095942996.678319
  whineThread =3D <Thread(archive, started)>
  _Thread__target =3D None
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _Thread__initialized =3D 1
  _Thread__block =3D <Condition(<thread.lock object at 0x88f4080>, 0)>
  _Thread__name =3D 'Thread-10'
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x888cedc>, <frame object at =
0x88e0afc>, <frame object at 0x83f6c6c>, <frame object at 0x88cfdcc>, =
<frame object at 0x88a6864>, <frame object at 0x88a82d4>)
  _Thread__started =3D 1
  whineTime =3D 1095942996.673254
  _Thread__target =3D None
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  whineThread =3D <Thread(enclosures, started)>
  _Thread__block =3D <Condition(<thread.lock object at 0x8459e80>, 0)>
  _Thread__name =3D 'Thread-12'
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _Thread__initialized =3D 1
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x88db25c>, <frame object at =
0x8905c0c>, <frame object at 0x82b0004>, <frame object at 0x82b103c>, =
<frame object at 0x83e975c>, <frame object at 0x88feafc>)
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 309, =
'run', 'self._run()')
('/opt/pyds/lib/python2.2/site-packages/PyDS/DorothyLocker.py', 350, =
'_run', 'add("Lock most recently obtained at %s by thread id %d, name =
%s" % (timeRep, id(owner), owner.getName()))')
Dict:
  whineEvery =3D 10
  active =3D 1
  whineLoudlyEvery =3D 60
  _Thread__started =3D 1
  whineTime =3D 1095942996.6787789
  _Thread__target =3D None
  whineThread =3D <Thread(topicexchange, started)>
  _Thread__block =3D <Condition(<thread.lock object at 0x8607b28>, 0)>
  _Thread__name =3D 'Thread-13'
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
  _Thread__daemonic =3D 1
  whineContext =3D (<frame object at 0x82322dc>, <frame object at =
0x82afe3c>, <frame object at 0x8181714>, <frame object at 0x8243f0c>, =
<frame object at 0x88e8f4c>, <frame object at 0x8896254>)
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _Thread__initialized =3D 1
  _Thread__started =3D 1
  whineTime =3D 1095942996.6814611
  _Thread__target =3D None
  dorothy =3D <events.lock owned by None with count 0>
  _Thread__kwargs =3D {}
  _Verbose__verbose =3D 0
  _Thread__args =3D ()
  _Thread__stopped =3D 0
  _T
------_=_NextPart_000_01C4A169.C6FA58B0--