On Tue, Jun 28, 2011 at 10:43:51PM +0200, Torsten Harenberg wrote: > > Now we have: > > mail# ktrace ./nsrexecd > linux_probe: returning 0 > family 1, len = 110 [ 2f 76 61 72 2f 72 75 6e 2f 6e 73 63 64 2f > family 1, len = 110 [ 2f 76 61 72 2f 72 75 6e 2f 6e 73 63 64 2f > family 2, len = 16 [ 00 35 84 c3 f9 0d 00 00 00 00 00 00 00 00 > family 2, len = 16 [ 00 35 84 c3 f9 0d 00 00 00 00 00 00 00 00 > family 2, len = 16 [ 00 35 84 c3 f9 0d 00 00 00 00 00 00 00 00 > > kdump output is at > > http://www.atlas.uni-wuppertal.de/~harenber/suse100_patched_dump Looks like something similar a problem i currently see on my machines with forked processes crashing. njoly@lanfeust [~]> ktrace -di ./fork64 fork64: child failed njoly@lanfeust [~]> kdump [...] 15032 15032 fork64 CALL clone(0x1200011,0,0,0x68e8e0,0) 15032 15032 fork64 RET clone 8516/0x2144 15032 15032 fork64 CALL wait4(0xffffffffffffffff,0x7f7ffffff16c,0,0) 8516 8516 fork64 EMUL "linux" 8516 8516 fork64 RET fork 0 8516 8516 fork64 PSIG SIGSEGV SIG_DFL: code=SEGV_MAPERR,addr=0x90,trap=14) 8516 8516 fork64 NAMI "fork64.core" 15032 15032 fork64 RET wait4 8516/0x2144 Can you try the attached forked binary, compiled on CentOS 5.6 x86_64 machine from given fork.c source. -- Nicolas Joly Projects and Developments in Bioinformatics Institut Pasteur, Paris.
Attachment:
fork64
Description: Binary data
#include <sys/wait.h> #include <err.h> #include <unistd.h> int main() { int sts; pid_t pid; if ((pid = fork()) == (pid_t)-1) err(1, "fork failed"); if (pid == 0) _exit(0); if (wait(&sts) == (pid_t)-1) err(1, "wait failed"); if (!WIFEXITED(sts) || WEXITSTATUS(sts) != 0) errx(1, "child failed"); return 0; }