Geoffrey Alan Washburn wrote:
Geoffrey Alan Washburn wrote:
Hmmm. I'm stumped as to what to do next. I'm assuming no one
else has seen behavior like this then? I guess I'll just have to
stick with ion2 and try examining more closely what is happening with
gdb when I have more time.
In case anyone is interested, I've finally had a chance to do some
detective work on this problem. My investigations seem to point to the
problem actually occurring in Lua, while it is parsing in the
configuration files, rather than in ion3. I've tried recompiling Lua to
see if maybe it had gotten out of sync with the system libc, but that
didn't help.
Any more ideas folks?
So as another datapoint, if I run ion-3ds-20051029 from within valgrind
(into a trusty Xnest session) like so
valgrind --tool=memcheck ./ion3 -display :1 >& log
ion3 appears to run just fine, though valgrind spits out the following
bits of information:
==17655== Memcheck, a memory error detector for x86-linux.
==17655== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward et al.
==17655== Using valgrind-2.2.0, a program supervision framework for
x86-linux.
==17655== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et al.
==17655== For more details, rerun with: -v
==17655==
./ion3: No encoding given in LC_CTYPE.
==17655== Invalid read of size 1
==17655== at 0x1BB04D65: regcomp (in /lib/tls/libc.so.6)
==17655== by 0x8069C6A: ioncore_defshortening (strings.c:262)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655== by 0x807139B: extl_l1_call_handler2 (luaextl.c:1755)
==17655== Address 0x1BDDBAAC is 4 bytes after a block of size 24 alloc'd
==17655== at 0x1B905BAC: malloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17655== by 0x8072724: malloczero (misc.c:21)
==17655== by 0x8069C54: ioncore_defshortening (strings.c:257)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655==
==17655== Invalid write of size 1
==17655== at 0x1BB04D25: regcomp (in /lib/tls/libc.so.6)
==17655== by 0x8069C6A: ioncore_defshortening (strings.c:262)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655== by 0x807139B: extl_l1_call_handler2 (luaextl.c:1755)
==17655== Address 0x1BDDBAAC is 4 bytes after a block of size 24 alloc'd
==17655== at 0x1B905BAC: malloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17655== by 0x8072724: malloczero (misc.c:21)
==17655== by 0x8069C54: ioncore_defshortening (strings.c:257)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655==
==17655== Invalid read of size 1
==17655== at 0x1BB031A5: re_compile_internal (in /lib/tls/libc.so.6)
==17655== by 0x1BB04D41: regcomp (in /lib/tls/libc.so.6)
==17655== by 0x8069C6A: ioncore_defshortening (strings.c:262)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655== Address 0x1BDDBAAC is 4 bytes after a block of size 24 alloc'd
==17655== at 0x1B905BAC: malloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17655== by 0x8072724: malloczero (misc.c:21)
==17655== by 0x8069C54: ioncore_defshortening (strings.c:257)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655==
==17655== Invalid write of size 1
==17655== at 0x1BB031C7: re_compile_internal (in /lib/tls/libc.so.6)
==17655== by 0x1BB04D41: regcomp (in /lib/tls/libc.so.6)
==17655== by 0x8069C6A: ioncore_defshortening (strings.c:262)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655== Address 0x1BDDBAAC is 4 bytes after a block of size 24 alloc'd
==17655== at 0x1B905BAC: malloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17655== by 0x8072724: malloczero (misc.c:21)
==17655== by 0x8069C54: ioncore_defshortening (strings.c:257)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655==
==17655== Invalid write of size 4
==17655== at 0x1BB031CA: re_compile_internal (in /lib/tls/libc.so.6)
==17655== by 0x1BB04D41: regcomp (in /lib/tls/libc.so.6)
==17655== by 0x8069C6A: ioncore_defshortening (strings.c:262)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655== Address 0x1BDDBAA8 is 0 bytes after a block of size 24 alloc'd
==17655== at 0x1B905BAC: malloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17655== by 0x8072724: malloczero (misc.c:21)
==17655== by 0x8069C54: ioncore_defshortening (strings.c:257)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655==
==17655== Invalid write of size 4
==17655== at 0x1BB03469: re_compile_internal (in /lib/tls/libc.so.6)
==17655== by 0x1BB04D41: regcomp (in /lib/tls/libc.so.6)
==17655== by 0x8069C6A: ioncore_defshortening (strings.c:262)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655== Address 0x1BDDBAA8 is 0 bytes after a block of size 24 alloc'd
==17655== at 0x1B905BAC: malloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17655== by 0x8072724: malloczero (misc.c:21)
==17655== by 0x8069C54: ioncore_defshortening (strings.c:257)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655==
==17655== Invalid read of size 4
==17655== at 0x1BB02821: parse_expression (in /lib/tls/libc.so.6)
==17655== by 0x1BB02F40: parse_branch (in /lib/tls/libc.so.6)
==17655== by 0x1BB03080: parse_reg_exp (in /lib/tls/libc.so.6)
==17655== by 0x1BB034B5: re_compile_internal (in /lib/tls/libc.so.6)
==17655== Address 0x1BDDBAA8 is 0 bytes after a block of size 24 alloc'd
==17655== at 0x1B905BAC: malloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17655== by 0x8072724: malloczero (misc.c:21)
==17655== by 0x8069C54: ioncore_defshortening (strings.c:257)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655==
==17655== Invalid write of size 4
==17655== at 0x1BB0282A: parse_expression (in /lib/tls/libc.so.6)
==17655== by 0x1BB02F40: parse_branch (in /lib/tls/libc.so.6)
==17655== by 0x1BB03080: parse_reg_exp (in /lib/tls/libc.so.6)
==17655== by 0x1BB034B5: re_compile_internal (in /lib/tls/libc.so.6)
==17655== Address 0x1BDDBAA8 is 0 bytes after a block of size 24 alloc'd
==17655== at 0x1B905BAC: malloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17655== by 0x8072724: malloczero (misc.c:21)
==17655== by 0x8069C54: ioncore_defshortening (strings.c:257)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655==
==17655== Invalid read of size 4
==17655== at 0x1BB02821: parse_expression (in /lib/tls/libc.so.6)
==17655== by 0x1BB02FB0: parse_branch (in /lib/tls/libc.so.6)
==17655== by 0x1BB03080: parse_reg_exp (in /lib/tls/libc.so.6)
==17655== by 0x1BB034B5: re_compile_internal (in /lib/tls/libc.so.6)
==17655== Address 0x1BDDBAA8 is 0 bytes after a block of size 24 alloc'd
==17655== at 0x1B905BAC: malloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17655== by 0x8072724: malloczero (misc.c:21)
==17655== by 0x8069C54: ioncore_defshortening (strings.c:257)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655==
==17655== Invalid write of size 4
==17655== at 0x1BB0282A: parse_expression (in /lib/tls/libc.so.6)
==17655== by 0x1BB02FB0: parse_branch (in /lib/tls/libc.so.6)
==17655== by 0x1BB03080: parse_reg_exp (in /lib/tls/libc.so.6)
==17655== by 0x1BB034B5: re_compile_internal (in /lib/tls/libc.so.6)
==17655== Address 0x1BDDBAA8 is 0 bytes after a block of size 24 alloc'd
==17655== at 0x1B905BAC: malloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17655== by 0x8072724: malloczero (misc.c:21)
==17655== by 0x8069C54: ioncore_defshortening (strings.c:257)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655==
==17655== Invalid read of size 1
==17655== at 0x1BB04735: re_compile_fastmap (in /lib/tls/libc.so.6)
==17655== by 0x1BB04D5A: regcomp (in /lib/tls/libc.so.6)
==17655== by 0x8069C6A: ioncore_defshortening (strings.c:262)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655== Address 0x1BDDBAAC is 4 bytes after a block of size 24 alloc'd
==17655== at 0x1B905BAC: malloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17655== by 0x8072724: malloczero (misc.c:21)
==17655== by 0x8069C54: ioncore_defshortening (strings.c:257)
==17655== by 0x8066E10: l2chnd_b_ssb____ (exports.c:64)
==17655==
==17655== Syscall param write(buf) contains uninitialised or
unaddressable byte(s)
==17655== at 0x1BB0E533: __write_nocancel (in /lib/tls/libc.so.6)
==17655== by 0x1B98379E: _X11TransWrite (in /usr/X11R6/lib/libX11.so.6.2)
==17655== by 0x1B9668E5: _XFlushInt (in /usr/X11R6/lib/libX11.so.6.2)
==17655== by 0x1B966999: _XReply (in /usr/X11R6/lib/libX11.so.6.2)
==17655== Address 0x1BBC44AD is 77 bytes inside a block of size 16384
alloc'd
==17655== at 0x1B90653D: calloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17655== by 0x1B955D82: XOpenDisplay (in /usr/X11R6/lib/libX11.so.6.2)
==17655== by 0x8058AEE: ioncore_startup (ioncore.c:422)
==17655== by 0x80582BF: main (ion.c:244)
==17655==
==17655== Syscall param write(buf) contains uninitialised or
unaddressable byte(s)
==17655== at 0x1BB0E533: __write_nocancel (in /lib/tls/libc.so.6)
==17655== by 0x1B98379E: _X11TransWrite (in /usr/X11R6/lib/libX11.so.6.2)
==17655== by 0x1B9668E5: _XFlushInt (in /usr/X11R6/lib/libX11.so.6.2)
==17655== by 0x1B9486BB: XFlush (in /usr/X11R6/lib/libX11.so.6.2)
==17655== Address 0x1BBC44C9 is 105 bytes inside a block of size 16384
alloc'd
==17655== at 0x1B90653D: calloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17655== by 0x1B955D82: XOpenDisplay (in /usr/X11R6/lib/libX11.so.6.2)
==17655== by 0x8058AEE: ioncore_startup (ioncore.c:422)
==17655== by 0x80582BF: main (ion.c:244)
./ion3: Caught signal 2. Dying.
==17655==
==17655== ERROR SUMMARY: 78 errors from 13 contexts (suppressed: 63 from 1)
==17655== malloc/free: in use at exit: 157390 bytes in 3760 blocks.
==17655== malloc/free: 29034 allocs, 25274 frees, 1381173 bytes allocated.
==17655== For a detailed leak analysis, rerun with: --leak-check=yes
==17655== For counts of detected errors, rerun with: -v
for comparison, if I do the following experiment with ion2
valgrind --tool=memcheck `which ion` -display :1 >& log
I only get the following errors
==17698== Memcheck, a memory error detector for x86-linux.
==17698== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward et al.
==17698== Using valgrind-2.2.0, a program supervision framework for
x86-linux.
==17698== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et al.
==17698== For more details, rerun with: -v
==17698==
>> Unable to find 'debian-menus'.
==17698== Syscall param write(buf) contains uninitialised or
unaddressable byte(s)
==17698== at 0x1BB16533: __write_nocancel (in /lib/tls/libc.so.6)
==17698== by 0x1B9A779E: _X11TransWrite (in /usr/X11R6/lib/libX11.so.6.2)
==17698== by 0x1B98A8E5: _XFlushInt (in /usr/X11R6/lib/libX11.so.6.2)
==17698== by 0x1B98A999: _XReply (in /usr/X11R6/lib/libX11.so.6.2)
==17698== Address 0x1BBC0281 is 121 bytes inside a block of size 16384
alloc'd
==17698== at 0x1B90653D: calloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==17698== by 0x1B979D82: XOpenDisplay (in /usr/X11R6/lib/libX11.so.6.2)
==17698== by 0x8056453: (within
/mnt/eclipse/unsupported/linux/ion-2-20040729/bin/ion)
==17698== by 0x8056645: ioncore_startup (in
/mnt/eclipse/unsupported/linux/ion-2-20040729/bin/ion)
==17706==
==17706== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 39 from 1)
==17706== malloc/free: in use at exit: 320778 bytes in 7136 blocks.
==17706== malloc/free: 17245 allocs, 10109 frees, 860548 bytes allocated.
==17706== For a detailed leak analysis, rerun with: --leak-check=yes
==17706== For counts of detected errors, rerun with: -v
/mnt/eclipse/unsupported/linux/ion-2-20040729/bin/ion: Caught signal 2.
Dying.
==17698==
==17698== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 39 from 1)
==17698== malloc/free: in use at exit: 80200 bytes in 3000 blocks.
==17698== malloc/free: 17845 allocs, 14845 frees, 882755 bytes allocated.
==17698== For a detailed leak analysis, rerun with: --leak-check=yes
==17698== For counts of detected errors, rerun with: -v