I'm working on a dump of a system that did not have a PID 1. I don't think it's relevant to the crash itself, but it does cause crash get a seg fault. crash> ps | head PID PPID CPU TASK ST %MEM VSZ RSS COMM 0 0 0 ffffffff805144c0 RU 0.0 0 0 [swapper] 0 -1 1 ffff81012bc0a100 RU 0.0 0 0 [swapper] 2 -1 0 ffff81012bd3c040 IN 0.0 0 0 [migration/0] 3 -1 0 ffff81012bd3e7c0 RU 0.0 0 0 [ksoftirqd/0] 4 -1 0 ffff81012bd3e080 IN 0.0 0 0 [watchdog/0] 5 -1 1 ffff81012bd3f800 IN 0.0 0 0 [migration/1] 6 -1 1 ffff81012bd3f0c0 RU 0.0 0 0 [ksoftirqd/1] 7 -1 1 ffff81012bc0a840 IN 0.0 0 0 [watchdog/1] 8 -1 0 ffff81012af02880 IN 0.0 0 0 [events/0] crash> mount Segmentation fault (core dumped) In cmd_mount, this returns null and subsequent use causes the seg fault: 1156 1157 namespace_context = pid_to_context(1); I don't know if it was important to have the context of pid 1 for reporting mounts, or just any context, but this hack makes the problem go away, although not a very efficient way to find the lowest existing PID above 0. --- filesys.c.orig 2010-08-18 14:03:26.000000000 -0600 +++ filesys.c 2010-08-18 14:10:02.000000000 -0600 @@ -1153,8 +1153,12 @@ cmd_mount(void) ulong vfsmount = 0; int flags = 0; int save_next; + ulong pid; - namespace_context = pid_to_context(1); + /* find a context */ + pid = 1; + while ((namespace_context = pid_to_context(pid)) == NULL) + pid++; while ((c = getopt(argcnt, args, "ifn:")) != EOF) { switch(c) Bob Montgomery At HP
--- filesys.c.orig 2010-08-18 14:03:26.000000000 -0600 +++ filesys.c 2010-08-18 14:10:02.000000000 -0600 @@ -1153,8 +1153,12 @@ cmd_mount(void) ulong vfsmount = 0; int flags = 0; int save_next; + ulong pid; - namespace_context = pid_to_context(1); + /* find a context */ + pid = 1; + while ((namespace_context = pid_to_context(pid)) == NULL) + pid++; while ((c = getopt(argcnt, args, "ifn:")) != EOF) { switch(c)
-- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility