Bug#596291: offlineimap getting stuck when run with multiple threads/connections
This one time, at band camp, Stephen Gran said:
> I have so far been unable to reproduce this when running offlineimap
> under strace, which suggests a timing dependant bug (kind of as
> suspected, but still not all that helpful, I realize). The earlier
> strace (and the strace I see when attaching after it hangs) does suggest
> that a lock is not being releaesed somewhere, but I can't immediately
> see anything obviously wrong with the logic in the code.
Trying to run with -d thread under python2.6 gets me a recursion
exceeded exception, but I did manage to capture a lockup under 2.5:
Folder sync Lobefin[packaging.clamav]: <threading._BoundedSemaphore object at 0x7f0c925d3210>.acquire: success, value=0
Folder sync Lobefin[packaging.clamav]: <InstanceLimitedThread(Copy message 2200 from packaging.clamav, initial daemon)>.start(): starting thread
Copy message 2200 from packaging.clamav: <InstanceLimitedThread(Copy message 2200 from packaging.clamav, started daemon)>.__bootstrap(): thread started
Copy message 2200 from packaging.clamav:
Copy message 2200 IMAP[packaging.clamav] -> Maildir[packaging.clamav], LocalStatus[packaging.clamav]
Copy message 2200 from packaging.clamav: <threading._BoundedSemaphore object at 0x7f0c91080e10>.acquire: success, value=0
Folder sync Lobefin[packaging.clamav]: <threading._BoundedSemaphore object at 0x7f0c91080e10>.acquire(1): blocked waiting, value=0
Copy message 2200 from packaging.clamav: <threading._BoundedSemaphore object at 0x7f0c91080e10>.release: success, value=1
Copy message 2200 from packaging.clamav: <Condition(<thread.lock object at 0x7f0c9d86f288>, 1)>.notify(): notifying 1 waiter
Folder sync Lobefin[packaging.clamav]: <Condition(<thread.lock object at 0x7f0c9d86f288>, 0)>.wait(): got it
Folder sync Lobefin[packaging.clamav]: <threading._BoundedSemaphore object at 0x7f0c91080e10>.acquire: success, value=0
Folder sync Lobefin[packaging.clamav]: <threading._BoundedSemaphore object at 0x7f0c91080e10>.release: success, value=1
Folder sync Lobefin[packaging.clamav]: <Condition(<thread.lock object at 0x7f0c9d86f288>, 0)>.notify(): no waiters
Folder sync Lobefin[packaging.clamav]: <threading._BoundedSemaphore object at 0x7f0c925d3210>.acquire(1): blocked waiting, value=0
Copy message 2200 from packaging.clamav: <threading._BoundedSemaphore object at 0x7f0c925d3210>.release: success, value=1
Copy message 2200 from packaging.clamav: <Condition(<thread.lock object at 0x7f0c9d86f1e0>, 1)>.notify(): notifying 1 waiter
Copy message 2200 from packaging.clamav: <InstanceLimitedThread(Copy message 2200 from packaging.clamav, started daemon)>.__bootstrap(): normal return
Folder sync Lobefin[packaging.clamav]: <Condition(<thread.lock object at 0x7f0c9d86f1e0>, 0)>.wait(): got it
Copy message 2200 from packaging.clamav: <Condition(<thread.lock object at 0x7a81b40>, 0)>.notify(): no waiters
Folder sync Lobefin[packaging.clamav]: <threading._BoundedSemaphore object at 0x7f0c925d3210>.acquire: success, value=0
Folder sync Lobefin[packaging.clamav]: <InstanceLimitedThread(Copy message 2201 from packaging.clamav, initial daemon)>.start(): starting thread
Copy message 2201 from packaging.clamav: <InstanceLimitedThread(Copy message 2201 from packaging.clamav, started daemon)>.__bootstrap(): thread started
Copy message 2201 from packaging.clamav:
Copy message 2201 IMAP[packaging.clamav] -> Maildir[packaging.clamav], LocalStatus[packaging.clamav]
Copy message 2201 from packaging.clamav: <threading._BoundedSemaphore object at 0x7f0c91080e10>.acquire: success, value=0
Folder sync Lobefin[packaging.clamav]: <threading._BoundedSemaphore object at 0x7f0c91080e10>.acquire(1): blocked waiting, value=0
Copy message 2201 from packaging.clamav: <threading._BoundedSemaphore object at 0x7f0c91080e10>.release: success, value=1
Copy message 2201 from packaging.clamav: <Condition(<thread.lock object at 0x7f0c9d86f288>, 1)>.notify(): notifying 1 waiter
Folder sync Lobefin[packaging.clamav]: <Condition(<thread.lock object at 0x7f0c9d86f288>, 0)>.wait(): got it
Folder sync Lobefin[packaging.clamav]: <threading._BoundedSemaphore object at 0x7f0c91080e10>.acquire: success, value=0
Folder sync Lobefin[packaging.clamav]: <threading._BoundedSemaphore object at 0x7f0c91080e10>.release: success, value=1
Folder sync Lobefin[packaging.clamav]: <Condition(<thread.lock object at 0x7f0c9d86f288>, 0)>.notify(): no waiters
Folder sync Lobefin[packaging.clamav]: <threading._BoundedSemaphore object at 0x7f0c925d3210>.acquire(1): blocked waiting, value=0
Copy message 2201 from packaging.clamav: <threading._BoundedSemaphore object at 0x7f0c925d3210>.release: success, value=1
Copy message 2201 from packaging.clamav: <Condition(<thread.lock object at 0x7f0c9d86f1e0>, 1)>.notify(): notifying 1 waiter
Copy message 2201 from packaging.clamav: <InstanceLimitedThread(Copy message 2201 from packaging.clamav, started daemon)>.__bootstrap(): normal return
Folder sync Lobefin[packaging.clamav]: <Condition(<thread.lock object at 0x7f0c9d86f1e0>, 0)>.wait(): got it
Copy message 2201 from packaging.clamav: <Condition(<thread.lock object at 0x7a81b58>, 0)>.notify(): no waiters
Folder sync Lobefin[packaging.clamav]: <threading._BoundedSemaphore object at 0x7f0c925d3210>.acquire: success, value=0
Folder sync Lobefin[packaging.clamav]: <InstanceLimitedThread(Copy message 2202 from packaging.clamav, initial daemon)>.start(): starting thread
Copy message 2202 from packaging.clamav: <InstanceLimitedThread(Copy message 2202 from packaging.clamav, started daemon)>.__bootstrap(): thread started
Copy message 2202 from packaging.clamav:
Copy message 2202 IMAP[packaging.clamav] -> Maildir[packaging.clamav], LocalStatus[packaging.clamav]
Copy message 2202 from packaging.clamav: <threading._BoundedSemaphore object at 0x7f0c91080e10>.acquire: success, value=0
Folder sync Lobefin[packaging.clamav]: <threading._BoundedSemaphore object at 0x7f0c91080e10>.acquire(1): blocked waiting, value=0
And there it hangs.
--
-----------------------------------------------------------------
| ,''`. Stephen Gran |
| : :' : sgran@debian.org |
| `. `' Debian user, admin, and developer |
| `- http://www.debian.org |
-----------------------------------------------------------------
Reply to: