[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [leafnode-list] texpire keeps segfaulting

José María Mateos schrieb am 2004-06-05:

> El sáb, 05-06-2004 a las 11:05, Matthias Andree escribió:
> > Can you obtain a stack backtrace for texpire, or run texpire under
> > supervision of gdb, dbx, valgrind, purify or similar?
> 	Downloaded the leafnode-1.10-0.tar.bz2, compiled (gcc-3.3). Core
> dumped, as always. Here's the backtrace (hope it's ok):
> (gdb) backtrace full 
> #0  0x400a831d in mallopt () from /lib/libc.so.6
> No symbol table info available.
> #1  0x400a7b48 in mallopt () from /lib/libc.so.6
> No symbol table info available.
> #2  0x400a6d33 in malloc () from /lib/libc.so.6
> No symbol table info available.
> #3  0x080528da in mastr_new (size=1024) at mastring.c:74
>         n = (mastr *) 0x40165290
> #4  0x08050f60 in chdirgroup (group=0x805f8f8 "5col", creatdir=0) at
> miscutil.c:437
>         dots = 139174168
>         nam = 0x28 <Address 0x28 out of bounds>
>         q = 0x84ba118 "(\004"
>         d = (mastr *) 0x84bcb30
>         p = 0x805f8f8 "5col"
>         c = 0x0

The backtrace is ok by itself, but doesn't make sense
because malloc cannot crash on an intact system. IOW, I don't see a
leafnode/texpire bug here.

I have three suggestions as to what might be the problem:

1. memory overcommit in the kernel, when the system is out of RAM and swap,
   that just happens to hit that particular function.

   If you can switch off memory overcommit (not all kernel versions
   support that), please do so.

2. defective hardware (RAM, cache, memory controller, MMU, CPU)
   running memtest86 may uncover RAM problems

3. defective libc or kernel.
   try running your distribution's verify tool on the relevant parts,
   for instance rpm -Vf /lib/libc.so.6 /boot/vmlinuz for SuSE
   if you don't get output from rpm, everything is fine. A changed
   modules.dep is also fine.

One thing that remains to debug is running texpire under valgrind
supervision - if that shows an error, I may figure what's up.

Just prepend "valgrind --quiet --num-callers=16" to the texpire command line,
for valgrind 2.1 or newer use this instead:
"valgrind --quiet --tool=memcheck --num-callers=16"

valgrind is currently only available on Linux x86, although ports to
other systems and machines are underway.

Matthias Andree

Encrypted mail welcome: my GnuPG key ID is 0x052E7D95
leafnode-list mailing list