Bug 5598 - If __db.bayes_toks.new exists and bayes_toks.new does not, SA will spin at 100% cpu indefinitely.
Summary: If __db.bayes_toks.new exists and bayes_toks.new does not, SA will spin at 10...
Status: RESOLVED DUPLICATE of bug 5612
Alias: None
Product: Spamassassin
Classification: Unclassified
Component: Plugins (show other bugs)
Version: 3.2.3
Hardware: Other other
: P5 normal
Target Milestone: Undefined
Assignee: SpamAssassin Developer Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-08-15 08:38 UTC by Jamyn
Modified: 2007-08-20 04:06 UTC (History)
0 users



Attachment Type Modified Status Actions Submitter/CLA Status

Note You need to log in before you can comment on or make changes to this bug.
Description Jamyn 2007-08-15 08:38:26 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.*
Comment 1 Justin Mason 2007-08-20 04:06:45 UTC

*** This bug has been marked as a duplicate of 5612 ***