BUG? corrupted goodlist.db again, spamlist.db fine

Matthias Andree matthias.andree at gmx.de
Mon Dec 30 04:17:39 CET 2002


On Sun, 29 Dec 2002, David Relson wrote:

> old/goodlist.db
> db_verify: Last item on page 2269 sorted greater than parent entry
> db_verify: DB->verify: nic.1229/goodlist.db: DB_VERIFY_BAD: Database 
> verification failed

b0rken

> old/spamlist.db
> db_verify: Last item on page 1420 sorted greater than parent entry
> db_verify: Last item on page 1449 sorted greater than parent entry
> db_verify: First item on page 1420 sorted greater than parent entry
> db_verify: Page 1420 linked twice
> db_verify: Last item on page 32 sorted greater than parent entry
> db_verify: Last item on page 423 sorted greater than parent entry
> db_verify: DB->verify: nic.1229/spamlist.db: DB_VERIFY_BAD: Database 
> verification failed

b0rken

Both fine if no output happens. So David's DB-3 makes the same troubles
as my DB-4.0.

Gyepi, can you share any ideas how we could track these down?



Incidentally, my current MAIN (non-MIME) bogofilter chokes really hard
on some BDB cursor c_get operation (remember it sets MALLOC_CHECK_=2,
which is documented as (libc.info) 'When `MALLOC_CHECK_' is set, a
  special (less efficient) implementation is used which is designed to
  be tolerant against simple errors, such as double calls of `free' with
  the same argument, or overruns of a single byte (off-by-one bugs).
  Not all such errors can be protected against, however, and memory
  leaks can result.  If `MALLOC_CHECK_' is set to `0', any detected heap
  corruption is silently ignored; if set to `1', a diagnostic is printed
  on `stderr'; if set to `2', `abort' is called immediately.'

./t.dump.load: line 63: 29798 Aborted                 (core dumped)
$BOGOUTIL -n -d $DATA >${TMPDIR}/output-dl-5.txt

(GLIBC memory checker abort/raise/kill here) DB-4.0.14.
#4  0x4016d97c in realloc () from /lib/libc.so.6
No symbol table info available.
#5  0x400da4b1 in __os_realloc () from /usr/lib/libdb-4.0.so
No symbol table info available.
#6  0x400a8132 in __db_retcopy () from /usr/lib/libdb-4.0.so
No symbol table info available.
#7  0x400a7fa5 in __db_ret () from /usr/lib/libdb-4.0.so
No symbol table info available.
#8  0x40099631 in __db_c_get () from /usr/lib/libdb-4.0.so
No symbol table info available.
#9  0x08048e25 in dump_file (
    db_file=0xbffff22e "dump.load.20021230/t.dump.load.db") at bogoutil.c:73
        dbh = (struct {...} *) 0x804e570
        dbc = {dbp = 0x4020df79, txn = 0xbfffeed0, links = {
    tqe_next = 0x400130c8, tqe_prev = 0x3}, rskey = 0x400ff000, 
  rkey = 0x402183d8, rdata = 0x7a3, my_rskey = {data = 0x4010f0bc, 
    size = 1074830424, ulen = 1075936400, dlen = 110, doff = 110, 
    flags = 3221221208}, my_rkey = {data = 0x40009ca0, size = 0, ulen = 110, 
    dlen = 1075255184, doff = 1073821720, flags = 100}, my_rdata = {
    data = 0x401b5cf1, size = 134531592, ulen = 100, dlen = 134531592, 
    doff = 2002, flags = 1074820584}, lid = 1073821720, locker = 0, 
  lock_dbt = {data = 0x804e490, size = 134538384, ulen = 1, dlen = 3221221160, 
    doff = 1075388683, flags = 3221221236}, lock = {pgno = 3600, 
    fileid = "\200Á!@\024ïÿ¿\200Á!d\0308\001@\0\0\0", type = 0 '\0'}, 
  mylock = {off = 0, ndx = 1073818256, gen = 23, mode = 1073819600}, 
  cl_id = 1, dbtype = 1073781456, internal = 0x40013114, c_close = 0x40013a88, 
  c_count = 0x1, c_del = 0, c_dup = 0x4021c180 <_tmbuf>, c_get = 0x3e0fb980, 
  c_pget = 0x4018e710 <localtime>, c_put = 0x40217c90 <__DTOR_END__+4>, 
  c_am_bulk = 0xbfffef78, c_am_close = 0x40217c90 <__DTOR_END__+4>, 
  c_am_del = 0x40012f2c <_dl_debug_mask>, c_am_destroy = 0xbffff024, 
  c_am_get = 0xbfffef88, c_am_put = 0x401b6d35 <getopt+69>, 
  c_am_writelock = 0x4, c_real_get = 0xbffff024, flags = 134531592}
        dbcp = (struct __dbc *) 0x8050f90
        key = {data = 0x8051350, size = 13, ulen = 0, dlen = 0, doff = 0, 
  flags = 0}
        data = {data = 0x8051360, size = 8, ulen = 0, dlen = 0, doff = 0, 
  flags = 0}
        ret = 0
        rv = 0
#10 0x0804a1c7 in main (argc=4, argv=0xbffff024) at bogoutil.c:634
        count = 1
        option = -1
        db_file = 0xbffff22e "dump.load.20021230/t.dump.load.db"
        flag = DUMP
        prob = false

The "offending" DB file looks unsuspicious to me:

VERSION=3
format=bytevalue
type=btree
HEADER=END
 796f75722d3334
 220000000c7f3101
 796f75722d696e666f2e6e6574
 0a000000df7f3101
 796f7572732d333430
 54010000547e3101
 a0a0a0a0a0736172646f6e656e
 01000000127f3101
 a2baa2b973706565647ea2dca2dda2b7a2c2b8
 020000001c7f3101
DATA=END


-- 
Matthias Andree




More information about the bogofilter-dev mailing list