Comments (35)
Just wanted to add that I can see the same whilst using 6.5.5 on an updated Arch Linux. Are there any thoughts as of why is this happening?
from offlineimap.
You should try to set socktimeout in general section of your offlineimaprc. It sets timeout on select call, so the process will terminate when no data is recieved within the timeout. Solved the problem for me.
from offlineimap.
I use socktimeout = 10
from offlineimap.
from offlineimap.
I said earlier:
If i wait another couple of seconds after CTRL-C, the lockfiles disappear and I can re-run notmuch.
I should clarify that sometimes if i resume from suspend, offlineimap will hang forever. Of course I can kill it manually with SIGKILL or SIGQUIT.
from offlineimap.
Which version of OfflineIMAP you're using? Which OS?
from offlineimap.
offlineimap 6.5.4 on an updated Arch Linux, which means basically latest vanilla versions of everything
from offlineimap.
What typically happens after resume and upon sending offlineimap the SIGUSR2:
Terminating after this sync...
[seems to hang forever, i press ^C]
Terminating NOW (this may take a few seconds)...
[hung again....]
from offlineimap.
Same here. Offlineimap 6.5.3 on OpenSUSE. I use timeout to fix that and kill offlineimap if timeout returns non zero. Never had issues with broken repo because of that (happily).
from offlineimap.
How do you use timeout(1) for that? Are you running offlineimap -o (run-once mode)?
from offlineimap.
No, just calling offlineimap by cron.
On Tue, Feb 11, 2014 at 03:55:07AM -0800, Daniel wrote:
How do you use timeout(1) for that? Are you running offlineimap -o (run-once mode)?
Reply to this email directly or view it on GitHub:
#56 (comment)
Best regards,
Max
from offlineimap.
I'm seeing this issue too (6.5.5 on Arch Linux).
from offlineimap.
Same here, 6.5.5 on Arch Linux. Not using cron, just running offlineimap -o.
from offlineimap.
I am seeing a similar problem on a Macbook Air running Mac OS X 10.9.2 (Mavericks). No cron, just using offlineimap
.
from offlineimap.
Same here. Offlineimap 6.5.4, Python: 2.7.5, Debian Wheezy (Ubuntu)
from offlineimap.
Thanks @mlen -- setting socktimeout in the [general] section seems to work.
from offlineimap.
This workaround helps, but I'm still getting occasional hangs even with the socktimeout
option set.
from offlineimap.
@mlen's suggestion worked for me, thanks.
from offlineimap.
what value of socktimeout did you use?
from offlineimap.
@murphyslaw480 thanks 👍
from offlineimap.
Requires to be documented in known issues
.
from offlineimap.
Done in cd962d4.
from offlineimap.
As I mentioned, setting socktimeout
doesn't actually fix the problem - it makes it less frequent, but it still happens to me all the time even with this set. I don't think this is a sufficient fix.
from offlineimap.
Ok. I know current behaviour sucks. Sadly, it's hard to handle this properly so don't expect this to be fixed soon.
from offlineimap.
There are two things I would suggest here:
- If the first C-c attempts a graceful exit, the second C-c should hard exit.
- I'm pretty sure the remaining hanging is from the timeout not being applied to all blocking calls. This is something an audit should be able to catch.
from offlineimap.
Hi Edward,
- Yes, I've already suggested to handle the second Ctrl-c as hard exit.
- On resume the timeout might require to wait until the local time is adjusted. Or wait until the timeout is hit. BTW, the broken socket should be better handled.
I'm planning a deep refactoring and such issues should be made easier to fix. You might be interested in following the coming changes.
from offlineimap.
Still happening on 6.6.1
from offlineimap.
Fix to force OfflineIMAP to stop with consecutives ctrl+c
was merged some days ago. Will be in the next release (6.7.0-rc2).
AFAIK, nobody worked on proper resume at wakeup.
from offlineimap.
I'm also interested in someone fixing this. I have the same issue. 😅
(I have offlineimap running as a systemd user service under Arch Linux)
from offlineimap.
- Naive but still effective approach would be to introduce print statements to find a blocker.
- A more advanced way can be to try
strace
while this can be tricky to map the output to lines of code. - Python includes debugging tools that could be usefull. Most appealing for the purpose might worth a try.
- Team working can greatly help. Do share your analysis, success and failures.
Bear in mind there might be more than one blocker.
from offlineimap.
Assuming this will be difficult to debug, can we at least implement a SIG{INT,TERM} handler which deletes the lockfile? I currently have to delete .offlineimap/*.lock
files every time I resume from suspend because when offlineimap freezes it leaves the lockfiles hanging around.
from offlineimap.
Assuming this will be difficult to debug, can we at least implement a SIG{INT,TERM} handler which deletes the lockfile? I currently have to delete .offlineimap/*.lock files every time I resume from suspend because when offlineimap freezes it leaves the lockfiles hanging around.
Please, try v6.7.0 or later.
from offlineimap.
Ah, since I run offlineimap as a notmuch hook, when I hit CTRL-C offlineimap was getting reparented to init, returning me to the shell but without actually killing the sync threads. If i wait another couple of seconds after CTRL-C, the lockfiles disappear and I can re-run notmuch.
By the way, I am running v6.7.0, but I was wrongly blaming offlineimap for something that seems to be an issue with notmuch or my configuration.
from offlineimap.
@pwnage101 You might like to try SIGQUIT. Unix signals handling is explained in the manual.
from offlineimap.
While the popular reaction to this problem seems to be to restart offlineimap
, I might point out that restarting offlineimap might not be ideal. For instance, if you have your passwords being retrieved by a subprocess using gpg-agent
, each time the connectivity issue occurs, gpg-agent
will ask for your password which can appear weird at first while you're not aware this is related to offlineimap restarting in the background and also annoying if it happens alot. Therefor, I'm really looking forward to a solution.
from offlineimap.
Related Issues (20)
- Complain if offlineimap runs under python3 HOT 8
- AttributeError: module 'platform' has no attribute 'linux_distribution' HOT 1
- Why store the pid + hostname in the filename? HOT 3
- TLS/SSL connection has been closed (EOF) (_ssl.c:997) HOT 1
- STARTTLS feature not easy to figure out HOT 1
- `sslcacertfile = OS-DEFAULT` should probably be the default HOT 1
- IMAP4 protocol error - cannot use a bytes pattern on a string-like object HOT 5
- MemoryError when using Maildir with large emails (>10MB)
- Server responded: APPEND command error: BAD [b'[TOOBIG] Message too large. https://support.google.com/mail/answer/6584#limit']
- maildir-windows-compatible = yes option, not working as expected
- command: FETCH => socket error: <class 'OSError'> - Too many read 0 HOT 1
- Sync recent mails HOT 1
- SQLite Threadsafety exception
- Feature request: Allow custom format for maildir filename HOT 5
- Offline imap attempts to delete messages on synchronization
- errors for python during launch offlineimap firts time HOT 1
- APPEND command error: BAD ['invalid rfc5322 message: `Sender` should not be present if equal to `From`'] HOT 5
- Some Gmail accounts stuck on "processing" step
- stopped working recently HOT 1
- No module named commands error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from offlineimap.