Using gdb, I get this backtrace:
CODE
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb76dd001 in raise () from /lib/tls/libc.so.6
#2 0xb76de71d in abort () from /lib/tls/libc.so.6
#3 0xb770fed7 in __fsetlocking () from /lib/tls/libc.so.6
#4 0xb7715bf7 in malloc_usable_size () from /lib/tls/libc.so.6
#5 0xb7716639 in free () from /lib/tls/libc.so.6
#6 0xb77073f9 in fclose () from /lib/tls/libc.so.6
#7 0x09dd5509 in main ()
Using Insight's handy dissambler window, the call it's crashing on immediately preceeded by a call to LLMD5::raw_digest.
CODE
- 0x9dd54ea <main+11546>: mov $0xa3c65f0,%edx
- 0x9dd54ef <main+11551>: lea 0xfffffcd8(%ebp),%edi
- 0x9dd54f5 <main+11557>: mov %edx,0x4(%esp)
- 0x9dd54f9 <main+11561>: mov %edi,(%esp)
- 0x9dd54fc <main+11564>: call 0x819fc30 <_ZN5LLMD510raw_digestEPh>
- 0x9dd5501 <main+11569>: mov %ebx,(%esp)
- 0x9dd5504 <main+11572>: call 0x8053894 <_ZNSiD0Ev+352>
That last call is where it crashes in main(), which is. _ZNSiD0Ev, according to c++filt is:
std::basic_istream<char, std::char_traits<char> >::~basic_istream().
Attempts to get any more information have been fruitless so far.
One thing I'm curious about though, is the program dies here:
CODE
006-02-27T06:07:27Z INFO: GL_VENDOR NVIDIA Corporation
2006-02-27T06:07:27Z GL_RENDERER GeForce FX 5500/AGP/3DNOW!
2006-02-27T06:07:27Z GL_VERSION 2.0.1 NVIDIA 81.78
2006-02-27T06:07:27Z
*** glibc detected *** double free or corruption (!prev): 0x0af88b38 ***
It looks like it' about to print another line when it crashes, and I'm interested in what's supposed to print after GL_VERSION (which can help pinpoint where the problem is).
In the mean time, I can always hope they got this fixed for the next version, whenever that is. I know I can set MALLOC_CHECK_=0 to disable this (which I explicitly removed from the secondlife startup script), but memory corruption is not something I want to bypass on a whim since it can be indicative of a bigger problem.