Add elfutils-0.170-core-pid.patch
This commit is contained in:
parent
196e6e5ec7
commit
5b63504170
120
elfutils-0.170-core-pid.patch
Normal file
120
elfutils-0.170-core-pid.patch
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
commit 699a741b488010d56cc358a5f7b4d8a8f4886347
|
||||||
|
Author: Mark Wielaard <mark@klomp.org>
|
||||||
|
Date: Sat Dec 23 23:16:24 2017 +0100
|
||||||
|
|
||||||
|
tests: Try to use coredumpctl to extract core files.
|
||||||
|
|
||||||
|
If systemd-coredump is installed we have to use coredumpctl to extract
|
||||||
|
the core file to test. Unfortunately systemd-coredump/coredumpctl seem
|
||||||
|
to be somewhat fragile if multiple core dumps are generated/extracted
|
||||||
|
at the same time. So use a lock file to only run one core dump test at
|
||||||
|
a time (under make -j).
|
||||||
|
|
||||||
|
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||||
|
|
||||||
|
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
||||||
|
index fca0072..64cb5bd 100644
|
||||||
|
--- a/tests/Makefile.am
|
||||||
|
+++ b/tests/Makefile.am
|
||||||
|
@@ -515,6 +515,9 @@ dwarf_default_lower_bound_LDADD = $(libdw)
|
||||||
|
system_elf_libelf_test_CPPFLAGS =
|
||||||
|
system_elf_libelf_test_LDADD = $(libelf)
|
||||||
|
|
||||||
|
+# A lock file used to make sure only one test dumps core at a time
|
||||||
|
+CLEANFILES += core-dump-backtrace.lock
|
||||||
|
+
|
||||||
|
if GCOV
|
||||||
|
check: check-am coverage
|
||||||
|
.PHONY: coverage
|
||||||
|
diff --git a/tests/backtrace-subr.sh b/tests/backtrace-subr.sh
|
||||||
|
index c1f3156..e04a7ea 100644
|
||||||
|
--- a/tests/backtrace-subr.sh
|
||||||
|
+++ b/tests/backtrace-subr.sh
|
||||||
|
@@ -137,19 +137,46 @@ check_native()
|
||||||
|
# Backtrace core file.
|
||||||
|
check_native_core()
|
||||||
|
{
|
||||||
|
+# systemd-coredump/coredumpctl doesn't seem to like concurrent core dumps
|
||||||
|
+# use a lock file (fd 200) tests/core-dump-backtrace.lock
|
||||||
|
+(
|
||||||
|
child=$1
|
||||||
|
|
||||||
|
# Disable valgrind while dumping core.
|
||||||
|
SAVED_VALGRIND_CMD="$VALGRIND_CMD"
|
||||||
|
unset VALGRIND_CMD
|
||||||
|
|
||||||
|
+ # Wait for lock for 10 seconds or skip.
|
||||||
|
+ flock -x -w 10 200 || exit 77;
|
||||||
|
+
|
||||||
|
# Skip the test if we cannot adjust core ulimit.
|
||||||
|
- core="core.`ulimit -c unlimited || exit 77; set +ex; testrun ${abs_builddir}/$child --gencore; true`"
|
||||||
|
+ pid="`ulimit -c unlimited || exit 77; set +ex; testrun ${abs_builddir}/$child --gencore; true`"
|
||||||
|
+ core="core.$pid"
|
||||||
|
# see if /proc/sys/kernel/core_uses_pid is set to 0
|
||||||
|
if [ -f core ]; then
|
||||||
|
mv core "$core"
|
||||||
|
fi
|
||||||
|
- if [ ! -f "$core" ]; then echo "No $core file generated"; exit 77; fi
|
||||||
|
+ type -P coredumpctl && have_coredumpctl=1 || have_coredumpctl=0
|
||||||
|
+ if [ ! -f "$core" -a $have_coredumpctl -eq 1 ]; then
|
||||||
|
+ # Maybe systemd-coredump took it. But give it some time to dump first...
|
||||||
|
+ sleep 1
|
||||||
|
+ coredumpctl --output="$core" dump $pid || rm -f $core
|
||||||
|
+
|
||||||
|
+ # Try a couple of times after waiting some more if something went wrong...
|
||||||
|
+ if [ ! -f "$core" ]; then
|
||||||
|
+ sleep 2
|
||||||
|
+ coredumpctl --output="$core" dump $pid || rm -f $core
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if [ ! -f "$core" ]; then
|
||||||
|
+ sleep 3
|
||||||
|
+ coredumpctl --output="$core" dump $pid || rm -f $core
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ if [ ! -f "$core" ]; then
|
||||||
|
+ echo "No $core file generated";
|
||||||
|
+ exit 77;
|
||||||
|
+ fi
|
||||||
|
|
||||||
|
if [ "x$SAVED_VALGRIND_CMD" != "x" ]; then
|
||||||
|
VALGRIND_CMD="$SAVED_VALGRIND_CMD"
|
||||||
|
@@ -163,4 +190,6 @@ check_native_core()
|
||||||
|
cat $core.{bt,err}
|
||||||
|
check_native_unsupported $core.err $child-$core
|
||||||
|
check_all $core.{bt,err} $child-$core
|
||||||
|
+ rm $core{,.{bt,err}}
|
||||||
|
+) 200>${abs_builddir}/core-dump-backtrace.lock
|
||||||
|
}
|
||||||
|
|
||||||
|
commit 61e33d72788c58467668b2f2ad44d5b95ebbee80
|
||||||
|
Author: Mark Wielaard <mark@klomp.org>
|
||||||
|
Date: Fri Feb 16 20:34:25 2018 +0100
|
||||||
|
|
||||||
|
tests: Accept any core if no core with the "correct" pid can be found.
|
||||||
|
|
||||||
|
In some containers our view of pids is confused. We see the container
|
||||||
|
pid namespace, but the core is generated using the host pid namespace.
|
||||||
|
Since tests are run in a new fresh directory any core here is most like
|
||||||
|
is ours.
|
||||||
|
|
||||||
|
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||||
|
|
||||||
|
diff --git a/tests/backtrace-subr.sh b/tests/backtrace-subr.sh
|
||||||
|
index e04a7ea..ff42c6f 100644
|
||||||
|
--- a/tests/backtrace-subr.sh
|
||||||
|
+++ b/tests/backtrace-subr.sh
|
||||||
|
@@ -174,6 +174,13 @@ check_native_core()
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ ! -f "$core" ]; then
|
||||||
|
+ # In some containers our view of pids is confused. Since tests are
|
||||||
|
+ # run in a new fresh directory any core here is most like is ours.
|
||||||
|
+ if ls core.[0-9]* 1> /dev/null 2>&1; then
|
||||||
|
+ mv core.[0-9]* "$core"
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ if [ ! -f "$core" ]; then
|
||||||
|
echo "No $core file generated";
|
||||||
|
exit 77;
|
||||||
|
fi
|
@ -24,6 +24,7 @@ Patch1: elfutils-0.170-dwarf_aggregate_size.patch
|
|||||||
Source1: testfile-sizes3.o.bz2
|
Source1: testfile-sizes3.o.bz2
|
||||||
Patch2: elfutils-0.170-sys-ptrace.patch
|
Patch2: elfutils-0.170-sys-ptrace.patch
|
||||||
Patch3: elfutils-0.170-m68k-packed-not-aligned.patch
|
Patch3: elfutils-0.170-m68k-packed-not-aligned.patch
|
||||||
|
Patch4: elfutils-0.170-core-pid.patch
|
||||||
|
|
||||||
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
||||||
Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
||||||
@ -179,6 +180,7 @@ profiling) of processes.
|
|||||||
cp %SOURCE1 tests/
|
cp %SOURCE1 tests/
|
||||||
%patch2 -p1 -b .sys_ptrace
|
%patch2 -p1 -b .sys_ptrace
|
||||||
%patch3 -p1 -b .m68k_packed
|
%patch3 -p1 -b .m68k_packed
|
||||||
|
%patch4 -p1 -b .core_pid
|
||||||
|
|
||||||
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
||||||
|
|
||||||
@ -314,6 +316,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Feb 16 2018 Mark Wielaard <mjw@fedoraproject.org>
|
||||||
|
- Add elfutils-0.170-core-pid.patch
|
||||||
|
|
||||||
* Thu Feb 15 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.170-8
|
* Thu Feb 15 2018 Mark Wielaard <mjw@fedoraproject.org> - 0.170-8
|
||||||
- Add elfutils-0.170-sys-ptrace.patch
|
- Add elfutils-0.170-sys-ptrace.patch
|
||||||
- Make sure spec can be build even when ldconfig_scriplets aren't defined.
|
- Make sure spec can be build even when ldconfig_scriplets aren't defined.
|
||||||
|
Loading…
Reference in New Issue
Block a user