I guess this means a bug in DB_File.so or Perl. No matter how badly
Spamassassin is written it must not be able to produce a segfault.
Is DB_File.so an OpenBSD-specific implementation of database?
This segfault was produce by sa-learn -D --sync and the last debug message it
printed was "[25545] dbg: bayes: tie-ing to DB file R/O
/home/clock/.spamassassin/bayes_seen"
Backtrace from core dump and the output from sa-learn -D --sync follows.
#0 0x099925fc in __find_last_page (hashp=0x7e622e00, bpp=0xcf7ebcb8) at
/usr/src/lib/libc/db/hash/hash_bigkey.c:336
bufp = (BUFHEAD *) 0x8b64f5e0
bp = (u_int16_t *) 0x8b4fd000
n = 0
#1 0x0998c895 in hash_access (hashp=0x7e622e00, action=HASH_GET,
key=0xcf7ebd10, val=0xcf7ebd08) at /usr/src/lib/libc/db/hash/hash.c:614
rbufp = (BUFHEAD *) 0x8b64f540
bufp = (BUFHEAD *) 0x8b64f540
save_bufp = (BUFHEAD *) 0x8b64f540
bp = (u_int16_t *) 0x0
n = 2464
ndx = -2
off = -1956317888
size = 21
kp = 0x8b64f820 "\r\001\a\t\003LASTEXPIREREDUCE"
pageno = 53248
#2 0x08428a07 in XS_DB_File_FETCH () from
/usr/libdata/perl5/i386-openbsd/5.8.8/auto/DB_File/DB_File.so
No symbol table info available.
#3 0x0cd54d08 in Perl_pp_entersub () at /usr/src/gnu/usr.bin/perl/pp_hot.c:2877
av = (AV * const) 0x2cd1f1b0
items = 752004116
markix = 0
sp = (SV **) 0x87362288
sv = (SV *) 0x836303b4
gv = (GV *) 0x5
stash = (HV *) 0x0
cv = (CV *) 0x836303b4
cx = (PERL_CONTEXT *) 0x2cd1f1b0
gimme = 0
#4 0x0cd7f5b9 in Perl_runops_standard () at /usr/src/gnu/usr.bin/perl/run.c:37
No locals.
#5 0x0cd66008 in S_call_body (myop=0xcf7ebe70, is_eval=0 '\0') at
/usr/src/gnu/usr.bin/perl/perl.c:2733
No locals.
#6 0x0cd65f2e in Perl_call_sv (sv=0x7e06f498, flags=64) at
/usr/src/gnu/usr.bin/perl/perl.c:2609
sp = (SV **) 0x87362288
myop = {op_next = 0x0, op_sibling = 0x0, op_ppaddr = 0xcd54a50
<Perl_pp_entersub>, op_targ = 0, op_type = 0, op_seq = 0, op_flags = 66 'B',
op_private = 0 '\0', op_first = 0x0,
op_other = 0x0}
method_op = {op_next = 0xcf7ebe70, op_sibling = 0x0, op_ppaddr =
0xcd55738 <Perl_pp_method>, op_targ = 0, op_type = 0, op_seq = 0, op_flags = 0
'\0', op_private = 0 '\0', op_first = 0x0}
oldmark = 0
retval = 0
oldscope = 8
oldcatch = 0 '\0'
oldop = (OP *) 0x8aba0900
cur_env = {je_prev = 0x885fdaf0, je_buf = {2114385048, -813777352,
215214467, 2114385048, 0, 116, 0, 0, 0, -813777320, 751991928}, je_ret =
2114385048, je_mustcatch = 120 'x'}
#7 0x0cd6593c in Perl_call_method (methname=0x2cd0daaf "FETCH", flags=0) at
/usr/src/gnu/usr.bin/perl/perl.c:2542
No locals.
#8 0x0cd4338c in S_magic_methcall (sv=0x7e06f474, mg=0x8b64f860,
meth=0x2cd0daaf "FETCH", flags=0, n=2, val=0x8b4fd000) at
/usr/src/gnu/usr.bin/perl/mg.c:1492
sp = (SV **) 0x87362288
#9 0x0cd434d8 in S_magic_methpack (sv=0x7e06f474, mg=0x8b64f860,
meth=0x2cd0daaf "FETCH") at /usr/src/gnu/usr.bin/perl/mg.c:1504
next = (PERL_SI *) 0x8b64f5e0
sp = (SV **) 0x2cd2a578
#10 0x0cd43618 in Perl_magic_getpack (sv=0x7e06f474, mg=0x0) at
/usr/src/gnu/usr.bin/perl/mg.c:1519
No locals.
#11 0x0cd4156d in Perl_mg_get (sv=0x7e06f474) at
/usr/src/gnu/usr.bin/perl/mg.c:169
vtbl = (const MGVTBL * const) 0x8b4fd000
mgs_ix = 328
have_new = 0
newmg = (MAGIC *) 0x8b64f860
head = (MAGIC *) 0x8b64f860
cur = (MAGIC *) 0x8b64f860
mg = (MAGIC *) 0x8b64f860
#12 0x0cd38d35 in Perl_sv_setsv_flags (dstr=0x7e06f48c, sstr=0x7e06f474,
flags=2) at /usr/src/gnu/usr.bin/perl/sv.c:3856
dtype = 0
stype = 9
#13 0x0cd3ceaf in Perl_sv_mortalcopy (oldstr=0x7e06f474) at
/usr/src/gnu/usr.bin/perl/sv.c:6814
sv = (SV *) 0x7e06f48c
#14 0x0cd52336 in Perl_pp_helem () at /usr/src/gnu/usr.bin/perl/pp_hot.c:1786
sp = (SV **) 0x87aa7028
he = (HE *) 0x8b4fd000
svp = (SV **) 0x8398e3d4
lval = 0
defer = 0
sv = (SV *) 0x8b4fd000
hash = 0
preeminent = 0
#15 0x0cd7f5b9 in Perl_runops_standard () at /usr/src/gnu/usr.bin/perl/run.c:37
No locals.
#16 0x0cd655df in S_run_body (oldscope=1) at
/usr/src/gnu/usr.bin/perl/perl.c:2368
No locals.
#17 0x0cd65533 in perl_run (my_perl=0x89323030) at
/usr/src/gnu/usr.bin/perl/perl.c:2285
oldscope = 1
ret = -1956317728
cur_env = {je_prev = 0x2cd2a740, je_buf = {215372518, 751991928,
-813776740, -813776616, -813776480, -813776556, -813776564, 0, -2067320796,
160, -813826009}, je_ret = 3,
je_mustcatch = 1 '\001'}
#18 0x1c0012a6 in main ()
No symbol table info available.
Last page of the output from sa-learn -D --sync:
[...]
[19402] dbg: config: read file /usr/local/share/spamassassin/20_porn.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/20_ratware.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/20_uri_tests.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/23_bayes.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_accessdb.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_antivirus.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_body_tests_es.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_body_tests_pl.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_dcc.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_dkim.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_domainkeys.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_hashcash.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_pyzor.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_razor2.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_replace.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_spf.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_textcat.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/25_uribl.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/30_text_de.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/30_text_fr.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/30_text_it.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/30_text_nl.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/30_text_pl.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/30_text_pt_br.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/50_scores.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/60_awl.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/60_whitelist.cf
[19402] dbg: config: read file
/usr/local/share/spamassassin/60_whitelist_dkim.cf
[19402] dbg: config: read file /usr/local/share/spamassassin/60_whitelist_spf.cf
[19402] dbg: config: read file
/usr/local/share/spamassassin/60_whitelist_subject.cf
[19402] dbg: config: using "/etc/mail/spamassassin" for site rules dir
[19402] dbg: config: read file /etc/mail/spamassassin/local.cf
[19402] dbg: config: using "/home/clock/.spamassassin/user_prefs" for user
prefs file
[19402] dbg: config: read file /home/clock/.spamassassin/user_prefs
[19402] dbg: plugin: loading Mail::SpamAssassin::Plugin::URIDNSBL from @INC
[19402] dbg: plugin: registered
Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x884e521c)
[19402] dbg: plugin: loading Mail::SpamAssassin::Plugin::Hashcash from @INC
[19402] dbg: plugin: registered
Mail::SpamAssassin::Plugin::Hashcash=HASH(0x8877bf48)
[19402] dbg: plugin: loading Mail::SpamAssassin::Plugin::SPF from @INC
[19402] dbg: plugin: registered Mail::SpamAssassin::Plugin::SPF=HASH(0x88afc168)
[19402] dbg: plugin: loading Mail::SpamAssassin::Plugin::Pyzor from @INC
[19402] dbg: pyzor: network tests on, attempting Pyzor
[19402] dbg: plugin: registered
Mail::SpamAssassin::Plugin::Pyzor=HASH(0x7f48cf60)
[19402] dbg: plugin: loading Mail::SpamAssassin::Plugin::Razor2 from @INC
[19402] dbg: razor2: razor2 is not available
[19402] dbg: plugin: registered
Mail::SpamAssassin::Plugin::Razor2=HASH(0x81965038)
[19402] dbg: plugin: loading Mail::SpamAssassin::Plugin::SpamCop from @INC
[19402] dbg: reporter: network tests on, attempting SpamCop
[19402] dbg: plugin: registered
Mail::SpamAssassin::Plugin::SpamCop=HASH(0x80b7c744)
[19402] dbg: plugin: loading Mail::SpamAssassin::Plugin::AWL from @INC
[19402] dbg: plugin: registered Mail::SpamAssassin::Plugin::AWL=HASH(0x8550f840)
[19402] dbg: plugin: loading Mail::SpamAssassin::Plugin::AutoLearnThreshold
from @INC
[19402] dbg: plugin: registered
Mail::SpamAssassin::Plugin::AutoLearnThreshold=HASH(0x81192840)
[19402] dbg: plugin: loading Mail::SpamAssassin::Plugin::WhiteListSubject from
@INC
[19402] dbg: plugin: registered
Mail::SpamAssassin::Plugin::WhiteListSubject=HASH(0x81fae288)
[19402] dbg: plugin: loading Mail::SpamAssassin::Plugin::MIMEHeader from @INC
[19402] dbg: plugin: registered
Mail::SpamAssassin::Plugin::MIMEHeader=HASH(0x81faef0c)
[19402] dbg: plugin: loading Mail::SpamAssassin::Plugin::ReplaceTags from @INC
[19402] dbg: plugin: registered
Mail::SpamAssassin::Plugin::ReplaceTags=HASH(0x87781f6c)
[19402] dbg: config: adding redirector regex:
/^http:\/\/chkpt\.zdnet\.com\/chkpt\/\w+\/(.*)$/i
[19402] dbg: config: adding redirector regex:
/^http:\/\/www(?:\d+)?\.nate\.com\/r\/\w+\/(.*)$/i
[19402] dbg: config: adding redirector regex:
/^http:\/\/.+\.gov\/(?:.*\/)?externalLink\.jhtml\?.*url=(.*?)(?:&.*)?$/i
[19402] dbg: config: adding redirector regex:
/^http:\/\/redir\.internet\.com\/.+?\/.+?\/(.*)$/i
[19402] dbg: config: adding redirector regex:
/^http:\/\/(?:.*?\.)?adtech\.de\/.*(?:;|\|)link=(.*?)(?:;|$)/i
[19402] dbg: config: adding redirector regex:
m'^http.*?/redirect\.php\?.*(?<=[?&])goto=(.*?)(?:$|[&\#])'i
[19402] dbg: config: adding redirector regex:
m'^https?:/*(?:[^/]+\.)?emf\d\.com/r\.cfm.*?&r=(.*)'i
[19402] dbg: config: adding redirector regex:
m'/(?:index.php)?\?.*(?<=[?&])URL=(.*?)(?:$|[&\#])'i
[19402] dbg: config: adding redirector regex:
m'^http:/*(?:\w+\.)?google(?:\.\w{2,3}){1,2}/url\?.*?(?<=[?&])q=(.*?)(?:$|[&\#])'i
[19402] dbg: config: adding redirector regex:
m'^http:/*(?:\w+\.)?google(?:\.\w{2,3}){1,2}/search\?.*?(?<=[?&])q=[^&]*?(?<=%20|..[=+\s])site:(.*?)(?:$|%20|[\s+&\#])'i
[19402] dbg: config: adding redirector regex:
m'^http:/*(?:\w+\.)?google(?:\.\w{2,3}){1,2}/search\?.*?(?<=[?&])q=[^&]*?(?<=%20|..[=+\s])(?:"|%22)(.*?)(?:$|%22|["\s+&\#])'i
[19402] dbg: config: adding redirector regex:
m'^http:/*(?:\w+\.)?google(?:\.\w{2,3}){1,2}/translate\?.*?(?<=[?&])u=(.*?)(?:$|[&\#])'i
[19402] dbg: plugin: Mail::SpamAssassin::Plugin::ReplaceTags=HASH(0x87781f6c)
implements 'finish_parsing_end'
[19402] dbg: replacetags: replacing tags
[19402] dbg: replacetags: done replacing tags
[19402] dbg: bayes: tie-ing to DB file R/O /home/clock/.spamassassin/bayes_toks
[19402] dbg: bayes: tie-ing to DB file R/O /home/clock/.spamassassin/bayes_seen
CL<