[gdb/f18] [testsuite] Fix gdb-orphanripper.c lockup on F-17 (/dev/pts/* glibc chown).

Jan Kratochvil jankratochvil at fedoraproject.org
Sun Jan 13 07:23:10 UTC 2013


commit ab816baf600637e56ff4eee28dd85b26b4c4b857
Author: Jan Kratochvil <jan.kratochvil at redhat.com>
Date:   Sun Jan 13 08:22:50 2013 +0100

    [testsuite] Fix gdb-orphanripper.c lockup on F-17 (/dev/pts/* glibc chown).

 gdb-orphanripper.c |   14 ++++++++++----
 gdb.spec           |    5 ++++-
 2 files changed, 14 insertions(+), 5 deletions(-)
---
diff --git a/gdb-orphanripper.c b/gdb-orphanripper.c
index b289477..f8e3f49 100644
--- a/gdb-orphanripper.c
+++ b/gdb-orphanripper.c
@@ -48,10 +48,12 @@
 static const char *progname;
 
 static volatile int signal_chld_hit = 0;
+static volatile pid_t child;
 
 static void signal_chld (int signo)
 {
-  signal_chld_hit = 1;
+  if (child && kill (child, 0) != 0)
+    signal_chld_hit = 1;
 }
 
 static volatile int signal_alrm_hit = 0;
@@ -62,7 +64,6 @@ static void signal_alrm (int signo)
 }
 
 static char childptyname[LINE_MAX];
-static pid_t child;
 
 static void print_child_error (const char *reason, char **argv)
 {
@@ -203,8 +204,13 @@ static int spawn (char **argv, int timeout)
       pollfd.fd = amaster;
       pollfd.events = POLLIN;
       i = ppoll (&pollfd, 1, NULL, &set);
-      if (i == -1 && errno == EINTR && signal_chld_hit)
-	break;
+      if (i == -1 && errno == EINTR)
+	{
+	  if (signal_chld_hit)
+	    break;
+	  /* Non-CHILD child may have exited.  */
+	  continue;
+	}
       assert (i == 1);
       /* Data available?  Process it first.  */
       if (pollfd.revents & POLLIN)
diff --git a/gdb.spec b/gdb.spec
index 36258b8..055cd7f 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -34,7 +34,7 @@ Version: 7.5.1
 
 # The release always contains a leading reserved number, start it at 1.
 # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 34%{?dist}
+Release: 35%{?dist}
 
 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain
 Group: Development/Debuggers
@@ -1446,6 +1446,9 @@ fi
 %endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch"
 
 %changelog
+* Sun Jan 13 2013 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.5.1-35.fc18
+- [testsuite] Fix gdb-orphanripper.c lockup on F-17 (/dev/pts/* glibc chown).
+
 * Tue Jan  8 2013 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.5.1-34.fc18
 - Update dlopen to support map_failed probe of glibc (Gary Benson, BZ 886516).
 


More information about the scm-commits mailing list