public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 1/1] Skip attach-many-short-lived-threads.exp on known-broken DejaGnu versions
  2016-05-25 14:07 [PATCH 0/1] Skip attach-many-short-lived-threads.exp on known-broken DejaGnu versions Pedro Alves
@ 2016-05-25 14:07 ` Pedro Alves
  2016-05-27 15:21 ` [PATCH 0/1] " Pedro Alves
  1 sibling, 0 replies; 3+ messages in thread
From: Pedro Alves @ 2016-05-25 14:07 UTC (permalink / raw)
  To: gdb-patches

If the testsuite is run with a DejaGnu version that predates the fix
from last year:

  [PATCH] DejaGnu kills the wrong process due to PID-reuse races
  http://lists.gnu.org/archive/html/dejagnu/2015-07/msg00005.html

... gdb.threads/attach-many-short-lived-threads.exp fails randomly,
often.  Other tests randomly fail due to that issue too, but this one
is _much_ more exposed.

DejaGnu 1.6 was released meanwhile, which includes that DejaGnu fix,
and also some distros backported the fix too.

So skip the test when run with older/broken DejaGnus.

gdb/testsuite/ChangeLog:
2016-05-25  Pedro Alves  <palves@redhat.com>

	* gdb.threads/attach-many-short-lived-threads.exp (bad_dejagnu):
	New procedure.
	(top level): Call it, and bail out of DejaGnu is known to be bad.
---
 .../attach-many-short-lived-threads.exp            | 34 ++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp b/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
index ccb5e9b..eba5136 100644
--- a/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
+++ b/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
@@ -21,6 +21,40 @@
 # end up leaving stale state behind that confuse the following
 # attach).
 
+# Return true if the running version of DejaGnu is known to not be
+# able to run this test.
+proc bad_dejagnu {} {
+    global frame_version
+
+    verbose -log "DejaGnu version: $frame_version"
+    verbose -log "Expect version: [exp_version]"
+    verbose -log "Tcl version: [info tclversion]"
+
+    set dj_ver [split $frame_version .]
+    set dj_ver_major [lindex $dj_ver 0]
+    set dj_ver_minor [lindex $dj_ver 1]
+
+    # DejaGnu versions prior to 1.6 manage to kill the wrong process
+    # due to PID-reuse races.  Since this test spawns many threads, it
+    # wides the race window a whole lot, enough the inferior is often
+    # killed, and thus the test randomly fails.  See:
+    # http://lists.gnu.org/archive/html/dejagnu/2015-07/msg00005.html
+    # The fix added a close_wait_program procedure.  If that procedure
+    # is defined, and DejaGnu is older than 1.6, assume that means the
+    # fix was backported.
+    if {$dj_ver_major == 1
+	&& ($dj_ver_minor < 6 && [info procs close_wait_program] == "")} {
+	return 1
+    }
+
+    return 0
+}
+
+if {[bad_dejagnu]} {
+    unsupported "broken DejaGnu"
+    return 0
+}
+
 if {![can_spawn_for_attach]} {
     return 0
 }
-- 
2.5.5

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 0/1] Skip attach-many-short-lived-threads.exp on known-broken DejaGnu versions
@ 2016-05-25 14:07 Pedro Alves
  2016-05-25 14:07 ` [PATCH 1/1] " Pedro Alves
  2016-05-27 15:21 ` [PATCH 0/1] " Pedro Alves
  0 siblings, 2 replies; 3+ messages in thread
From: Pedro Alves @ 2016-05-25 14:07 UTC (permalink / raw)
  To: gdb-patches

The buildbot is still showing attach-many-short-lived-threads.exp racy
failures on several build slaves.  Thinking some might have been
related to yesterday's PR gdb/19828 fixes, I looked at the logs of a
couple.  What I saw looked like what you get if your DejaGnu version
predates a fix from last year:

  [PATCH] DejaGnu kills the wrong process due to PID-reuse races
  http://lists.gnu.org/archive/html/dejagnu/2015-07/msg00005.html

DejaGnu 1.6 was released meanwhile, which includes that fix, and some
distros backported the fix too.  But I believe some of the build
slaves miss it.

So the following patch skips the test when run with older/broken
DejaGnus, in order to try to improve the signal/noise ratio.

Pedro Alves (1):
  Skip attach-many-short-lived-threads.exp on known-broken DejaGnu
    versions

 .../attach-many-short-lived-threads.exp            | 34 ++++++++++++++++++++++
 1 file changed, 34 insertions(+)

-- 
2.5.5

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 0/1] Skip attach-many-short-lived-threads.exp on known-broken DejaGnu versions
  2016-05-25 14:07 [PATCH 0/1] Skip attach-many-short-lived-threads.exp on known-broken DejaGnu versions Pedro Alves
  2016-05-25 14:07 ` [PATCH 1/1] " Pedro Alves
@ 2016-05-27 15:21 ` Pedro Alves
  1 sibling, 0 replies; 3+ messages in thread
From: Pedro Alves @ 2016-05-27 15:21 UTC (permalink / raw)
  To: gdb-patches

On 05/25/2016 03:07 PM, Pedro Alves wrote:
> The buildbot is still showing attach-many-short-lived-threads.exp racy
> failures on several build slaves.  Thinking some might have been
> related to yesterday's PR gdb/19828 fixes, I looked at the logs of a
> couple.  What I saw looked like what you get if your DejaGnu version
> predates a fix from last year:
> 
>   [PATCH] DejaGnu kills the wrong process due to PID-reuse races
>   http://lists.gnu.org/archive/html/dejagnu/2015-07/msg00005.html
> 
> DejaGnu 1.6 was released meanwhile, which includes that fix, and some
> distros backported the fix too.  But I believe some of the build
> slaves miss it.
> 
> So the following patch skips the test when run with older/broken
> DejaGnus, in order to try to improve the signal/noise ratio.

I went ahead and pushed this in, in order to run it through
the buildbot's racy tests auto-regen next Sunday.

Thanks,
Pedro Alves

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-05-27 15:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-25 14:07 [PATCH 0/1] Skip attach-many-short-lived-threads.exp on known-broken DejaGnu versions Pedro Alves
2016-05-25 14:07 ` [PATCH 1/1] " Pedro Alves
2016-05-27 15:21 ` [PATCH 0/1] " Pedro Alves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).