Hi, THANK YOU!!!
The patch itself didn't help very mutch (stalled after the debug statements), but it gave me a good starting point for more debugging. Took me an hour, but then I found that this line never finished: $new_toks{$LAST_ATIME_DELTA_MAGIC_TOKEN} = $newdelta; This is the first access to the new database. And then I found a leftover and damaged "_toks.new" database lying around in ~/.spamassassin. Seems there is a sanity check missing. I added this near the beginning of this sub: # since DB_File will not shrink a database (!!), we need to *create* # a new one instead. my $main = $self->{bayes}->{main}; my $path = $main->sed_path ($main->{conf}->{bayes_path}); my $name = $path.'_toks.new'; + CHECKLOOP: while (1) { + for my $ext (@DB_EXTENSIONS) { + if (-e $name.$ext) { + warn "$name already exists (died expiry run?), please clean up!"; + $name .= $$; + next CHECKLOOP; + } + } + last CHECKLOOP; + } and had to change one line near the end: # now rename in the new one. Try several extensions for my $ext (@DB_EXTENSIONS) { - my $newf = $path.'_toks.new'.$ext; + my $newf = $name.$ext; cu/2 Michael On Sun, 11 Jan 2004 10:56:34 -0500, Bryan Hoover wrote: >Michael Jacob wrote: >> >> Hi, >> >> something seems to be wrong with my bayes db, or is this considered >> 'normal'? Log: > >I backed up my Bayes db, and ran with -D force-expire to see what it'd >do. I got pretty much what you show, except after the "something fishy" >line, it paused for a moment or two, and then finished up with: > >debug: bayes: couldn't find a good delta atime, need more token >difference, skipping expire. >debug: Syncing complete. >debug: bayes: 90800 untie-ing >debug: bayes: 90800 untie-ing db_toks >debug: bayes: 90800 untie-ing db_seen >debug: bayes: files locked, now unlocking lock >debug: unlock: 90800 unlink /usr/home/bhoover/.spamassassin/bayes.lock > >So that's the way it's supposed to go. Did your run ever return? > >I saw a related thread in SA dev that might be helpful. It regards a >"problem" along the same lines, though not precisely -- your run never >returned -- that may (along with application of the associated patch) >give some insight. The linked patch adds more debug output: > >news://news.gmane.org/[EMAIL PROTECTED] > >Copy the patch to a file, say, bayesstore-patch-file.patch, in your >../Mail-SpamAssassin-2.60/lib/Mail/SpamAssassin directory, and run: > >patch < bayesstore-patch-file.patch > >You'll get more debug output when you run force-expire again. > >Most notable, with regards to the "problem", is the play between how big >a set of tokens you want to expire -- given current number of tokens in >db, and bayes_expiry_max_db_size -- and whether sa-learn can find a >suitable atime for expiration selection. The additional debug output >helps to clarify this, but see the link (and sub-links there) for >explaination. This may not be your problem, but the added output may be >helpful. > >> synced Bayes databases from journal in 0 seconds: 457 unique entries >> (562 total entries) >> debug: bayes: expiry check keep size, 75% of max: 112500 >> debug: bayes: token count: 196598, final goal reduction size: 84098 > >So I read the above output to mean sa-learn wants to expire 84098 >tokens, bringing the size down to 112500 from 196598. I assume then >that's what it'll look for -- an atime that'll allow for that. My >understanding is if sa-learn can not find an atime allowing for less >than or equal to the target number of token expirations, expiration will >not be carried out. > >> debug: bayes: First pass? Current: 1073772599, Last: 1073562102, >> atime: 22118400, count: 2972, newdelta: 781658, ratio: 28.2967698519515 >> debug: bayes: something fishy, calculating atime (first pass) > >The expiration routine did not like what it saw in the above, so it went >on to calculate/find a new atime with which to select tokens to expire, >and apparently, never returned... It's this part to which the patch >adds more debug output. > >> and after that nothing, for >> >> PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME >> COMMAND >> 11464 root 14 0 15092 14M 1600 R 0 94.6 5.7 30:25 >> sa-learn >> >> and running. > >Is bayes.lock in .spamassassin? I assume you've killed the process by >now, but you'll need to get rid of that lock file if it got left >behind. It's used when autolearning too, btw. > >Bryan > >> SpamAssassin is 2.61, Perl is: >> >> Summary of my perl5 (revision 5.0 version 6 subversion 1) >> configuration: >> Platform: >> osname=linux, osvers=XXX, archname=i686-linux >> uname='linux sps-c1s9p14.j-e-b.net XXX XXX i686 unknown ' >> config_args='' >> hint=recommended, useposix=true, d_sigaction=define >> usethreads=undef use5005threads=undef useithreads=undef >> usemultiplicity=undef >> useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef >> use64bitint=undef use64bitall=undef uselongdouble=undef >> Compiler: >> cc='cc', ccflags ='-fno-strict-aliasing -D_LARGEFILE_SOURCE >> -D_FILE_OFFSET_BITS=64', >> optimize='-O2', >> cppflags='-fno-strict-aliasing' >> ccversion='', gccversion='2.95.3 19991030 (prerelease)', >> gccosandvers='' >> intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 >> d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 >> ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', >> lseeksize=8 >> alignbytes=4, usemymalloc=n, prototype=define >> Linker and Libraries: >> ld='cc', ldflags =' -L/usr/local/lib' >> libpth=/usr/local/lib /lib /usr/lib >> libs=-lnsl -lndbm -ldb -ldl -lm -lc -lposix -lcrypt -lutil >> perllibs=-lnsl -ldl -lm -lc -lposix -lcrypt -lutil >> libc=/lib/libc-2.1.1.so, so=so, useshrplib=false, libperl=libperl.a >> Dynamic Linking: >> dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, >> ccdlflags='-rdynamic' >> cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib' >> >> Characteristics of this binary (from libperl): >> Compile-time options: USE_LARGE_FILES >> Built under linux >> Compiled at Jan 8 2002 10:55:38 >> @INC: >> /opt/perl/lib/5.6.1/i686-linux >> /opt/perl/lib/5.6.1 >> /opt/perl/lib/site_perl/5.6.1/i686-linux >> /opt/perl/lib/site_perl/5.6.1 >> /opt/perl/lib/site_perl >> . >> >> ------------------------------------------------------- >> This SF.net email is sponsored by: Perforce Software. >> Perforce is the Fast Software Configuration Management System offering >> advanced branching capabilities and atomic changes on 50+ platforms. >> Free Eval! http://www.perforce.com/perforce/loadprog.html > >-- >My thinking is a passion. I am very good at rooting out truffles for >others; I myself take no pleasure in them. I root out the problems with >my snout, but all I can do with them is toss them back over my head. - >(Soren Kierkegaard - Either/Or) > >http://www.wecs.com/content.htm > >This signature file is generated by Pick-a-Tag ! >Written by Jeroen van Vaarsel >http://www.google.com/search?hl=en&ie=ISO-8859-1&q=pick-a-tag > > > >------------------------------------------------------- >This SF.net email is sponsored by: Perforce Software. >Perforce is the Fast Software Configuration Management System offering >advanced branching capabilities and atomic changes on 50+ platforms. >Free Eval! http://www.perforce.com/perforce/loadprog.html >_______________________________________________ >Spamassassin-talk mailing list >[EMAIL PROTECTED] >https://lists.sourceforge.net/lists/listinfo/spamassassin-talk ------------------------------------------------------- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html _______________________________________________ Spamassassin-talk mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/spamassassin-talk