SA Bugzilla – Bug 5598
If __db.bayes_toks.new exists and bayes_toks.new does not, SA will spin at 100% cpu indefinitely.
Last modified: 2007-08-20 04:06:45 UTC
Option: user_prefs are enabled on this server. For whatever reason, some of the temporary files for (per-user) bayes were either deleted or not created. If __db.bayes_toks.new does not exist, but some of the other temporary files for bayes DO exist, spamassassin freaks out if it can't find __bayes_toks.new/it doesn't exist. The result is that spamassassin will constantly loop, consuming 100% of the cpu in the process. Touching __db.bayes_toks.new and/or deleting __db.bayes_toks* resolves the issue. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2861 wafrah 20 0 44160 38m 2096 R 90 1.0 5:01.44 spamd child 1715 wafrah 25 0 45760 40m 2088 R 48 1.0 18:01.80 spamd child root@system [/home/wafrah]# strace -p 1924 Process 1924 attached - interrupt to quit open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) stat64("/home/wafrah/.spamassassin/bayes_toks.new", 0xbfd475d0) = -1 ENOENT (No such file or directory) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) stat64("/home/wafrah/.spamassassin/bayes_toks.new", 0xbfd475d0) = -1 ENOENT (No such file or directory) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) stat64("/home/wafrah/.spamassassin/bayes_toks.new", 0xbfd475d0) = -1 ENOENT (No such file or directory) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) stat64("/home/wafrah/.spamassassin/bayes_toks.new", 0xbfd475d0) = -1 ENOENT (No such file or directory) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) stat64("/home/wafrah/.spamassassin/bayes_toks.new", 0xbfd475d0) = -1 ENOENT (No such file or directory) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) stat64("/home/wafrah/.spamassassin/bayes_toks.new", 0xbfd475d0) = -1 ENOENT (No such file or directory) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) open("/home/wafrah/.spamassassin/__db.bayes_toks.new", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EEXIST (File exists) stat64("/home/wafrah/.spamassassin/bayes_toks.new", 0xbfd475d0) = -1 ENOENT (No such file or directory) root@system [/home/wafrah/.spamassassin]# ls -l total 39240 drwxr-xr-x 2 wafrah wafrah 4096 Aug 15 10:09 ./ drwx--x--x 11 wafrah wafrah 4096 Aug 15 10:09 ../ -rw------- 1 wafrah wafrah 10461184 Aug 15 10:09 auto-whitelist -rw------- 1 wafrah wafrah 62 Aug 15 10:08 bayes.lock -rw------- 1 wafrah wafrah 128 Mar 21 16:49 bayes.lock.system.websitewelcome.com.13045 -rw------- 1 wafrah wafrah 288 Mar 21 08:40 bayes.lock.system.websitewelcome.com.29868 -rw------- 1 wafrah wafrah 124 Aug 15 09:12 bayes.lock.system.websitewelcome.com.5161 -rw------- 1 wafrah wafrah 217 Mar 19 13:12 bayes.lock.system.websitewelcome.com.9722 -rw------- 1 wafrah wafrah 1302528 Aug 11 22:42 bayes_seen -rw------- 1 wafrah wafrah 5337088 Aug 11 22:42 bayes_toks -rw------- 1 wafrah wafrah 331776 Feb 24 01:26 bayes_toks.expire1029 -rw------- 1 wafrah wafrah 286720 Jan 2 2007 bayes_toks.expire1051 -rw------- 1 wafrah wafrah 331776 Feb 22 04:25 bayes_toks.expire10719 -rw------- 1 wafrah wafrah 655360 Jan 16 2007 bayes_toks.expire1136 -rw------- 1 wafrah wafrah 303104 Feb 25 03:02 bayes_toks.expire13026 -rw------- 1 wafrah wafrah 1564672 Feb 21 00:58 bayes_toks.expire136 -rw------- 1 wafrah wafrah 221184 Jan 17 2007 bayes_toks.expire1379 -rw------- 1 wafrah wafrah 1159168 Feb 25 01:48 bayes_toks.expire16071 -rw------- 1 wafrah wafrah 110592 Feb 25 00:04 bayes_toks.expire16959 -rw------- 1 wafrah wafrah 12288 Mar 17 01:40 bayes_toks.expire19419 -rw------- 1 wafrah wafrah 151552 Mar 17 01:01 bayes_toks.expire1998 -rw------- 1 wafrah wafrah 86016 Feb 24 02:10 bayes_toks.expire20305 -rw------- 1 wafrah wafrah 532480 Mar 17 03:04 bayes_toks.expire20336 -rw------- 1 wafrah wafrah 344064 Jan 17 2007 bayes_toks.expire21248 -rw------- 1 wafrah wafrah 16384 Feb 24 02:58 bayes_toks.expire22029 -rw------- 1 wafrah wafrah 16384 Feb 24 03:57 bayes_toks.expire2293 -rw------- 1 wafrah wafrah 610304 Jan 16 2007 bayes_toks.expire2360 -rw------- 1 wafrah wafrah 577536 Feb 25 00:24 bayes_toks.expire2888 -rw------- 1 wafrah wafrah 118784 Feb 24 05:04 bayes_toks.expire30762 -rw------- 1 wafrah wafrah 135168 Mar 17 00:47 bayes_toks.expire31780 -rw------- 1 wafrah wafrah 126976 Feb 21 01:24 bayes_toks.expire3420 -rw------- 1 wafrah wafrah 335872 Feb 24 00:26 bayes_toks.expire3471 -rw------- 1 wafrah wafrah 331776 Feb 24 00:08 bayes_toks.expire425 -rw------- 1 wafrah wafrah 12288 Feb 24 02:43 bayes_toks.expire4920 -rw------- 1 wafrah wafrah 159744 Mar 17 02:01 bayes_toks.expire5173 -rw------- 1 wafrah wafrah 118784 Feb 24 05:34 bayes_toks.expire5306 -rw------- 1 wafrah wafrah 2560000 Mar 17 02:35 bayes_toks.expire5698 -rw------- 1 wafrah wafrah 1384448 Jan 6 2007 bayes_toks.expire5752 -rw------- 1 wafrah wafrah 299008 Feb 24 06:34 bayes_toks.expire7693 -rw------- 1 wafrah wafrah 1355776 Feb 25 02:46 bayes_toks.expire8562 -rw------- 1 wafrah wafrah 5332992 Mar 16 16:48 bayes_toks.expire8772 -rw------- 1 wafrah wafrah 2629632 Feb 24 01:00 bayes_toks.expire897 -rw------- 1 wafrah wafrah 356352 Feb 24 04:35 bayes_toks.expire9418 -rw------- 1 wafrah wafrah 294912 Feb 25 01:20 bayes_toks.expire9683 -rw------- 1 wafrah wafrah 4096 Jan 6 2007 __db.bayes_toks.expire1779 -rw------- 1 wafrah wafrah 4096 Feb 24 06:10 __db.bayes_toks.expire1908 -rw------- 1 wafrah wafrah 4096 Mar 17 01:17 __db.bayes_toks.expire21885 -rw------- 1 wafrah wafrah 4096 Feb 25 02:11 __db.bayes_toks.expire29924 -rw------- 1 wafrah wafrah 4096 Jan 6 2007 __db.bayes_toks.expire394 -rw-r--r-- 1 wafrah wafrah 1487 Mar 14 2006 user_prefs Deleting the temp files immediately drops CPU use. The bug in this case is that if __db.bayes_toks.new exists and bayes_toks.new does not, spamassassin will loop, eating 100% of the CPU. root@system [/home/wafrah/.spamassassin]# rm -f __db.bayes_toks.*
*** This bug has been marked as a duplicate of 5612 ***