It seems we've got a genuine heisenbug-class problem here. This is what I
tried now:
- When compiled without DEBUG=1, it doesn't segfault (at least, not when I
tried!!)
- Back to the DEBUG=1 build, I tried stracing it, and found the initial error
about mmapping a -1 fd. Then I grepped for failed open() invocations, and
found an ENOENT one with ~/.nsisconf.nsh.
- I touched ~/.nsisconf.nsh, and *magic*, now it segfaults *only* when strace
is not being used. When strace is in use, it exits normaly, although it's
still trying to run mmap with -1 as fd.
- I remove ~/.nsisconf.nsh back again, with no effect (still segfaults only
on strace-less invocations). Even if it doesn't segfult, the screwed mmaps
are still there, so I searched for open() failures. The following were
found:
open("/home/rmh/.nsisconf.nsh", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/locale/CP0/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/gconv/tls/x86_64/libKSC.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/lib/gconv/tls/libKSC.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/gconv/x86_64/libKSC.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/locale/CP950/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/locale/CP936/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/locale/CP1251/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/locale/CP1250/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/locale/CP1252/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/locale/CP949/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/locale/CP932/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/locale/CP1255/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or
directory)
Steve, Paul: if you want to reproduce this, I suggest you look for mmap()
invocations using -1. They do appear and seem to be the root of the problem,
although they don't always generate segfault due to pseudo-random conditions.
If you ask me, I wouldn't feel safe shipping with this bug. -m32 is not such
a bad solution (compared to a binary that segfaults randomly).
--
Robert Millan
My spam trap is [EMAIL PROTECTED] Note: this address is only intended
for spam harvesters. Writing to it will get you added to my black list.
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]