Remove gdb-6.8-bz442765-threaded-exec-test.patch

Following on from the previous commit, this commit remove
gdb-6.8-bz442765-threaded-exec-test.patch.

Like the previous commit, this patch was a testsuite only patch that
extended the test originally added in the previous commit, in order to
do some additional threads/exec related testing.

The issue exposed by this test (Bug bz442765) was present on Fedora 9,
with GDB 6.8-1.fc9.  I have setup a Fedora 9 VM and recreated the
failure with the test in the patch I'm deleting here.

The test does a number of exec's, in each iteration the test binary
runs in a different mode.  However, the failure is triggered when we
have a main thread that spawns a worker thread and then called exec
from the main thread.

Just like the previous commit, this situation already exists in the
upstream test gdb.threads/execl.exp, and, if I copy this upstream test
to my Fedora 9 VM, I can reproduce the failure using this upstream
test.

The test being deleted here does do a number of other permutations of
threading and execing, for example it tests calling exec in a
non-threaded inferior, but this is also tested upstream with things
like gdb.base/foll-exec.exp.

In summary, I don't believe there is anything new added by this test
that is not already covered with existing upstream tests, as such, I
think we should drop this patch.
This commit is contained in:
Andrew Burgess 2023-02-10 15:39:01 +00:00
parent 89f20beb5e
commit 7fd1c9cb3f
4 changed files with 40 additions and 259 deletions

View File

@ -101,137 +101,133 @@ Patch024: gdb-6.5-gcore-buffer-limit-test.patch
#=fedoratest: But it is broken anyway, sometimes the case being tested is not reproducible.
Patch025: gdb-6.3-mapping-zero-inode-test.patch
# Test various forms of threads tracking across exec() (BZ 442765).
#=fedoratest
Patch026: gdb-6.8-bz442765-threaded-exec-test.patch
# Test a crash on libraries missing the .text section.
#=fedoratest
Patch027: gdb-6.5-section-num-fixup-test.patch
Patch026: gdb-6.5-section-num-fixup-test.patch
# Fix resolving of variables at locations lists in prelinked libs (BZ 466901).
#=fedoratest
Patch028: gdb-6.8-bz466901-backtrace-full-prelinked.patch
Patch027: gdb-6.8-bz466901-backtrace-full-prelinked.patch
# New test for step-resume breakpoint placed in multiple threads at once.
#=fedoratest
Patch029: gdb-simultaneous-step-resume-breakpoint-test.patch
Patch028: gdb-simultaneous-step-resume-breakpoint-test.patch
# Fix GNU/Linux core open: Can't read pathname for load map: Input/output error.
# Fix regression of undisplayed missing shared libraries caused by a fix for.
#=fedoratest: It should be in glibc: libc-alpha: <20091004161706.GA27450@.*>
Patch030: gdb-core-open-vdso-warning.patch
Patch029: gdb-core-open-vdso-warning.patch
# Workaround ccache making lineno non-zero for command-line definitions.
#=fedoratest: ccache is rarely used and it is even fixed now.
Patch031: gdb-ccache-workaround.patch
Patch030: gdb-ccache-workaround.patch
# Testcase for "Do not make up line information" fix by Daniel Jacobowitz.
#=fedoratest
Patch032: gdb-lineno-makeup-test.patch
Patch031: gdb-lineno-makeup-test.patch
# Test power7 ppc disassembly.
#=fedoratest
Patch033: gdb-ppc-power7-test.patch
Patch032: gdb-ppc-power7-test.patch
# Fix follow-exec for C++ programs (bugreported by Martin Stransky).
#=fedoratest
Patch034: gdb-archer-next-over-throw-cxx-exec.patch
Patch033: gdb-archer-next-over-throw-cxx-exec.patch
# Workaround librpm BZ 643031 due to its unexpected exit() calls (BZ 642879).
#=push+jan
Patch035: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
Patch034: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
# [delayed-symfile] Test a backtrace regression on CFIs without DIE (BZ 614604).
#=fedoratest
Patch036: gdb-test-bt-cfi-without-die.patch
Patch035: gdb-test-bt-cfi-without-die.patch
# Verify GDB Python built-in function gdb.solib_address exists (BZ # 634108).
#=fedoratest
Patch037: gdb-bz634108-solib_address.patch
Patch036: gdb-bz634108-solib_address.patch
# New test gdb.arch/x86_64-pid0-core.exp for kernel PID 0 cores (BZ 611435).
#=fedoratest
Patch038: gdb-test-pid0-core.patch
Patch037: gdb-test-pid0-core.patch
# [archer-tromey-delayed-symfile] New test gdb.dwarf2/dw2-aranges.exp.
#=fedoratest
Patch039: gdb-test-dw2-aranges.patch
Patch038: gdb-test-dw2-aranges.patch
# Test GDB opcodes/ disassembly of Intel Ivy Bridge instructions (BZ 696890).
#=fedoratest
Patch040: gdb-test-ivy-bridge.patch
Patch039: gdb-test-ivy-bridge.patch
# Workaround PR libc/14166 for inferior calls of strstr.
#=fedoratest: Compatibility with RHELs (unchecked which ones).
Patch041: gdb-glibc-strstr-workaround.patch
Patch040: gdb-glibc-strstr-workaround.patch
# Include testcase for `Unable to see a variable inside a module (XLF)' (BZ 823789).
#=fedoratest
Patch042: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
Patch041: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
# Testcase for `Setting solib-absolute-prefix breaks vDSO' (BZ 818343).
#=fedoratest
Patch043: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
Patch042: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
# Import regression test for `gdb/findvar.c:417: internal-error:
# read_var_value: Assertion `frame' failed.' (RH BZ 947564) from RHEL 6.5.
#=fedoratest
Patch044: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
Patch043: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
# Fix 'memory leak in infpy_read_memory()' (RH BZ 1007614)
#=fedoratest
Patch045: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
Patch044: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
# Fix 'gdb gives highly misleading error when debuginfo pkg is present,
# but not corresponding binary pkg' (RH BZ 981154).
#=push+jan
Patch046: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
Patch045: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
# Testcase for '[SAP] Recursive dlopen causes SAP HANA installer to
# crash.' (RH BZ 1156192).
#=fedoratest
Patch047: gdb-rhbz1156192-recursive-dlopen-test.patch
Patch046: gdb-rhbz1156192-recursive-dlopen-test.patch
# Fix '`catch syscall' doesn't work for parent after `fork' is called'
# (Philippe Waroquiers, RH BZ 1149205).
#=fedoratest
Patch048: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
Patch047: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
# Fix 'backport GDB 7.4 fix to RHEL 6.6 GDB' [Original Sourceware bug
# description: 'C++ (and objc): Internal error on unqualified name
# re-set', PR 11657] (RH BZ 1186476).
#=fedoratest
Patch049: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
Patch048: gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch
# Test 'info type-printers' Python error (RH BZ 1350436).
#=fedoratest
Patch050: gdb-rhbz1350436-type-printers-error.patch
Patch049: gdb-rhbz1350436-type-printers-error.patch
# Fix '[ppc64] and [s390x] wrong prologue skip on -O2 -g code' (Jan
# Kratochvil, RH BZ 1084404).
#=fedoratest
Patch051: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
Patch050: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
# Force libncursesw over libncurses to match the includes (RH BZ 1270534).
#=push+jan
Patch052: gdb-fedora-libncursesw.patch
Patch051: gdb-fedora-libncursesw.patch
# Test clflushopt instruction decode (for RH BZ 1262471).
#=fedoratest
Patch053: gdb-opcodes-clflushopt-test.patch
Patch052: gdb-opcodes-clflushopt-test.patch
# [aarch64] Fix hardware watchpoints (RH BZ 1261564).
#=fedoratest
Patch054: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
Patch053: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
# Add messages suggesting more recent RHEL gdbserver (RH BZ 1321114).
#=fedora
Patch055: gdb-container-rh-pkg.patch
Patch054: gdb-container-rh-pkg.patch
# [dts+el7] [x86*] Bundle linux_perf.h for libipt (RH BZ 1256513).
#=fedora
Patch056: gdb-linux_perf-bundle.patch
Patch055: gdb-linux_perf-bundle.patch
# Fix gdb-headless /usr/bin/ executables (BZ 1390251).
#
@ -240,39 +236,39 @@ Patch056: gdb-linux_perf-bundle.patch
#
# https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
#=fedora
Patch057: gdb-libexec-add-index.patch
Patch056: gdb-libexec-add-index.patch
# [s390x] Backport arch12 instructions decoding (RH BZ 1553104).
# =fedoratest
Patch058: gdb-rhbz1553104-s390x-arch12-test.patch
Patch057: gdb-rhbz1553104-s390x-arch12-test.patch
Patch059: gdb-backport-readline_support.patch
Patch058: gdb-backport-readline_support.patch
# [gdb/testsuite] Use prototype to call libc functions
# (Tom de Vries)
Patch060: gdb-backport-fix-break-main-file-remove-fail.patch
Patch059: gdb-backport-fix-break-main-file-remove-fail.patch
# Constify target_desc to fix PPC ODR violations.
# (Keith Seitz, build/22395)
Patch061: gdb-sw22395-constify-target_desc.patch
Patch060: gdb-sw22395-constify-target_desc.patch
# libiberty: Fix C89-isms in configure tests
# (Florian Weimer, RHBZ 2143992)
Patch062: gdb-rhbz2143992-libiberty-fix-c89isms-in-configure.patch
Patch061: gdb-rhbz2143992-libiberty-fix-c89isms-in-configure.patch
Patch063: gdb-rhbz2152431-label-symbol-value.patch
Patch062: gdb-rhbz2152431-label-symbol-value.patch
#Backport replace deprecated distutils.sysconfig in
#python-config (Lancelot SIX)
Patch064: gdb-backport-python-config-replace-deprecated-distutils.patch
Patch063: gdb-backport-python-config-replace-deprecated-distutils.patch
# gcc 13 fallout: Backport Jan-Benedict Glaw's fix for the self-move
# warning check
Patch065: gdb-gcc-13-backport-self-move-diagnostic-fix
Patch064: gdb-gcc-13-backport-self-move-diagnostic-fix
# Backport "call check_typedef at beginning of dwarf_expr_context::fetch_result"
# (Simon Marchi, backtrace/29374)
Patch066: gdb-backport-call-check_typedef-at-beginning-of-dwarf_expr_context.patch
Patch065: gdb-backport-call-check_typedef-at-beginning-of-dwarf_expr_context.patch

View File

@ -63,4 +63,3 @@
%patch063 -p1
%patch064 -p1
%patch065 -p1
%patch066 -p1

View File

@ -23,7 +23,6 @@ gdb-6.5-ia64-libunwind-leak-test.patch
gdb-6.5-missed-trap-on-step-test.patch
gdb-6.5-gcore-buffer-limit-test.patch
gdb-6.3-mapping-zero-inode-test.patch
gdb-6.8-bz442765-threaded-exec-test.patch
gdb-6.5-section-num-fixup-test.patch
gdb-6.8-bz466901-backtrace-full-prelinked.patch
gdb-simultaneous-step-resume-breakpoint-test.patch

View File

@ -1,213 +0,0 @@
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
From: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-6.8-bz442765-threaded-exec-test.patch
;; Test various forms of threads tracking across exec() (BZ 442765).
;;=fedoratest
Test various forms of threads tracking across exec(2).
diff --git a/gdb/testsuite/gdb.threads/threaded-exec.c b/gdb/testsuite/gdb.threads/threaded-exec.c
new file mode 100644
--- /dev/null
+++ b/gdb/testsuite/gdb.threads/threaded-exec.c
@@ -0,0 +1,147 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2007 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stddef.h>
+#include <assert.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+
+#ifdef THREADS
+
+# include <pthread.h>
+
+static void *
+threader (void *arg)
+{
+ return NULL;
+}
+
+#endif
+
+int
+main (int argc, char **argv)
+{
+ char *exec_nothreads, *exec_threads, *cmd;
+ int phase;
+ char phase_s[8];
+
+ setbuf (stdout, NULL);
+
+ if (argc != 4)
+ {
+ fprintf (stderr, "%s <non-threaded> <threaded> <phase>\n", argv[0]);
+ return 1;
+ }
+
+#ifdef THREADS
+ puts ("THREADS: Y");
+#else
+ puts ("THREADS: N");
+#endif
+ exec_nothreads = argv[1];
+ printf ("exec_nothreads: %s\n", exec_nothreads);
+ exec_threads = argv[2];
+ printf ("exec_threads: %s\n", exec_threads);
+ phase = atoi (argv[3]);
+ printf ("phase: %d\n", phase);
+
+ /* Phases: threading
+ 0: N -> N
+ 1: N -> Y
+ 2: Y -> Y
+ 3: Y -> N
+ 4: N -> exit */
+
+ cmd = NULL;
+
+#ifndef THREADS
+ switch (phase)
+ {
+ case 0:
+ cmd = exec_nothreads;
+ break;
+ case 1:
+ cmd = exec_threads;
+ break;
+ case 2:
+ fprintf (stderr, "%s: We should have threads for phase %d!\n", argv[0],
+ phase);
+ return 1;
+ case 3:
+ fprintf (stderr, "%s: We should have threads for phase %d!\n", argv[0],
+ phase);
+ return 1;
+ case 4:
+ return 0;
+ default:
+ assert (0);
+ }
+#else /* THREADS */
+ switch (phase)
+ {
+ case 0:
+ fprintf (stderr, "%s: We should not have threads for phase %d!\n",
+ argv[0], phase);
+ return 1;
+ case 1:
+ fprintf (stderr, "%s: We should not have threads for phase %d!\n",
+ argv[0], phase);
+ return 1;
+ case 2:
+ cmd = exec_threads;
+ {
+ pthread_t t1;
+ int i;
+
+ i = pthread_create (&t1, NULL, threader, (void *) NULL);
+ assert (i == 0);
+ i = pthread_join (t1, NULL);
+ assert (i == 0);
+ }
+ break;
+ case 3:
+ cmd = exec_nothreads;
+ {
+ pthread_t t1;
+ int i;
+
+ i = pthread_create (&t1, NULL, threader, (void *) NULL);
+ assert (i == 0);
+ i = pthread_join (t1, NULL);
+ assert (i == 0);
+ }
+ break;
+ case 4:
+ fprintf (stderr, "%s: We should not have threads for phase %d!\n",
+ argv[0], phase);
+ return 1;
+ default:
+ assert (0);
+ }
+#endif /* THREADS */
+
+ assert (cmd != NULL);
+
+ phase++;
+ snprintf (phase_s, sizeof phase_s, "%d", phase);
+
+ execl (cmd, cmd, exec_nothreads, exec_threads, phase_s, NULL);
+ assert (0);
+}
diff --git a/gdb/testsuite/gdb.threads/threaded-exec.exp b/gdb/testsuite/gdb.threads/threaded-exec.exp
new file mode 100644
--- /dev/null
+++ b/gdb/testsuite/gdb.threads/threaded-exec.exp
@@ -0,0 +1,46 @@
+# threaded-exec.exp -- Check reset of the tracked threads on exec*(2)
+# Copyright (C) 2007 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+set testfile threaded-exec
+set srcfile ${testfile}.c
+set binfile_nothreads [standard_output_file ${testfile}N]
+set binfile_threads [standard_output_file ${testfile}Y]
+
+if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile_nothreads}" executable {additional_flags=-UTHREADS}] != "" } {
+ return -1
+}
+
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile_threads}" executable {additional_flags=-DTHREADS}] != "" } {
+ return -1
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+
+gdb_load ${binfile_nothreads}
+
+gdb_run_cmd [list ${binfile_nothreads} ${binfile_threads} 0]
+
+gdb_test_multiple {} "Program exited" {
+ -re "\r\n\\\[Inferior .* exited normally\\\]\r\n$gdb_prompt $" {
+ pass "Program exited"
+ }
+}