[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