[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: