[Crash-utility] [PATCH] Fix warning: multiple active tasks have called die

Michael Holzheu holzheu at linux.vnet.ibm.com
Mon Sep 19 14:28:17 UTC 2011


Hi Dave,

When opening an s390(x) dump where the kernel has panic'ed, I currently
get the following warnings:

WARNING: multiple active tasks have called die and/or panic
WARNING: multiple active tasks have called die

In task.c we call "foreach bt -t" and check if we find "die" on the stack. When
doing this on s390 with the "-t" option normally we find multiple die() calls
for one single task:

crash> foreach bt -t | grep "die at"
  [        9ca7f7f0] die at 100f26
  [        9ca7f8f0] die at 100f26
  [        9ca7f9b8] die at 100f26
  [        9ca7fa40] die at 100ee6
  [        9ca7fa90] die at 100f26

The current code then assumes that multiple tasks have called die().

This patch fixes this problem by an additional check that allows multiple
occurrences of the die() call on the stack (with bt -t) for one task.

Signed-off-by: Michael Holzheu <holzheu at linux.vnet.ibm.com>
---
 task.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--- a/task.c
+++ b/task.c
@@ -5587,7 +5587,8 @@ panic_search(void)
 				dietask = lasttask;
 				break;
 			default:
-				dietask = NO_TASK+1;
+				if (dietask != lasttask)
+					dietask = NO_TASK+1;
 				break;
 			}
                 }
@@ -6444,7 +6445,8 @@ clear_active_set(void)
                                 die_task = task;        \
                                 break;                  \
                         default:                        \
-                                die_task = NO_TASK+1;   \
+                                if (die_task != task)   \
+                                        die_task = NO_TASK+1; \
                                 break;                  \
                         }                               \
                 }                                       \
@@ -6457,7 +6459,8 @@ clear_active_set(void)
 					xendump_panic_hook(buf); \
                                 break;                  \
                         default:                        \
-                                panic_task = NO_TASK+1; \
+                                if (panic_task != task) \
+                                        panic_task = NO_TASK+1; \
                                 break;                  \
                         }                               \
                 }                                       \

-------------- next part --------------
A non-text attachment was scrubbed...
Name: crash-5.1.8-multiple-die-panic.patch
Type: text/x-patch
Size: 2333 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20110919/a87d7aa9/attachment.bin>


More information about the Crash-utility mailing list