Package: offlineimap Version: 6.2.0.2-2 Severity: important PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 26138 joey 20 0 330m 291m 3124 S 99 29.2 2:54.35 offlineimap
This isn't good. Each time top updates, it grows by approximatly 4 mb, until all memory is used. Here's a transcript of this run: j...@gnu:~>offlineimap OfflineIMAP 6.2.0 Copyright (C) 2002 - 2009 John Goerzen <jgoer...@complete.org> This software comes with ABSOLUTELY NO WARRANTY; see the file COPYING for details. This is free software, and you are welcome to distribute it under the conditions laid out in COPYING. Account sync joey: ***** Processing account joey Account sync joey: Copying folder structure from IMAP to Maildir Account sync joey: Establishing connection to kitenet.net:993. Folder sync joey[.]: Syncing INBOX: IMAP -> Maildir Folder sync joey[.]: Deleting 1 messages (319244) in IMAP[INBOX], LocalStatus[.] Copy message 319243 from .: Copy message 319243 IMAP[INBOX] -> Maildir[.], LocalStatus[.] ^CMain program terminated with exception: Traceback (most recent call last): File "/usr/lib/pymodules/python2.6/offlineimap/init.py", line 228, in startup threadutil.exitnotifymonitorloop(threadutil.threadexited) File "/usr/lib/pymodules/python2.6/offlineimap/threadutil.py", line 119, in exitnotifymonitorloop time.sleep(1) KeyboardInterrupt I got a strace of its main thread, this should include it running for a while while memory was ballooning, and then being ctrl-c'd. Included below, it was spewing a lot of futex calls. Something to do with threading gone awry? (maxsyncaccounts and maxconnections are both 1) At the same time, tcpdump showed absolutely no network traffic. I suspect that my ppp dialup is losing some packets, or dropping, and so offlineimap's connection stalls, more or less indefinitely. When this happens, at least 3 times today offlineimap has going into this mode where it balloons in size. I've run offlineimap with the same configuration on less crummy networks, for years, without noticing it using much memory. I did use it on dialup for a long while some years back, and it also behaved ok. [ I'd try to reproduce this with -d thread, but that causes an immediate crash on startup: RuntimeError: maximum recursion depth exceeded while calling a Python object ] j...@gnu:~>strace -p 26138 Process 26138 attached - interrupt to quit select(0, NULL, NULL, NULL, {0, 999244}) = 0 (Timeout) futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 select(0, NULL, NULL, NULL, {1, 0}) = ? ERESTARTNOHAND (To be restarted) --- SIGWINCH (Window changed) @ 0 (0) --- select(0, NULL, NULL, NULL, {0, 407953}) = 0 (Timeout) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 select(0, NULL, NULL, NULL, {1, 0}) = ? ERESTARTNOHAND (To be restarted) --- SIGWINCH (Window changed) @ 0 (0) --- select(0, NULL, NULL, NULL, {0, 930133}) = 0 (Timeout) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 select(0, NULL, NULL, NULL, {1, 0}) = ? ERESTARTNOHAND (To be restarted) --- SIGWINCH (Window changed) @ 0 (0) --- select(0, NULL, NULL, NULL, {0, 915129}) = ? ERESTARTNOHAND (To be restarted) --- SIGINT (Interrupt) @ 0 (0) --- sigreturn() = ? (mask now []) futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 stat64("/usr/lib/pymodules/python2.6/offlineimap/init.py", {st_mode=S_IFREG|0644, st_size=8850, ...}) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 open("/usr/lib/pymodules/python2.6/offlineimap/init.py", O_RDONLY|O_LARGEFILE) = 5 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 fstat64(5, {st_mode=S_IFREG|0644, st_size=8850, ...}) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 fstat64(5, {st_mode=S_IFREG|0644, st_size=8850, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77f4000 read(5, "# OfflineIMAP initialization cod"..., 8192) = 8192 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 read(5, "gnal(signal.SIGUSR2,sig_handler)"..., 4096) = 658 read(5, "", 4096) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 close(5) = 0 munmap(0xb77f4000, 4096) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 stat64("/usr/lib/pymodules/python2.6/offlineimap/threadutil.py", {st_mode=S_IFREG|0644, st_size=10148, ...}) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 open("/usr/lib/pymodules/python2.6/offlineimap/threadutil.py", O_RDONLY|O_LARGEFILE) = 5 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 fstat64(5, {st_mode=S_IFREG|0644, st_size=10148, ...}) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 fstat64(5, {st_mode=S_IFREG|0644, st_size=10148, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77f4000 read(5, "# Copyright (C) 2002, 2003 John "..., 8192) = 8192 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 read(5, " ExitNotifyThread.run(self)\n "..., 4096) = 1956 read(5, "", 4096) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 close(5) = 0 munmap(0xb77f4000, 4096) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 write(1, "Main program terminated with exc"..., 355) = 355 write(1, "No debug messages were logged fo"..., 46) = 46 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable) rt_sigaction(SIGINT, {SIG_DFL, [], 0}, {0x8110720, [], 0}, 8) = 0 rt_sigaction(SIGHUP, {SIG_DFL, [], 0}, {0x8110720, [], 0}, 8) = 0 rt_sigaction(SIGUSR1, {SIG_DFL, [], 0}, {0x8110720, [], 0}, 8) = 0 rt_sigaction(SIGUSR2, {SIG_DFL, [], 0}, {0x8110720, [], 0}, 8) = 0 rt_sigaction(SIGTERM, {SIG_DFL, [], 0}, {0x8110720, [], 0}, 8) = 0 futex(0x89e4898, FUTEX_WAKE_PRIVATE, 1) = 1 close(3) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 futex(0x89e4898, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.32-5-686 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages offlineimap depends on: ii python 2.6.6-1 interactive high-level object-orie ii python-support 1.0.9 automated rebuilding support for P offlineimap recommends no packages. Versions of packages offlineimap suggests: ii doc-base 0.9.5 utilities to manage online documen pn python-kerberos <none> (no description available) -- no debconf information -- see shy jo
signature.asc
Description: Digital signature