53 lines
1.7 KiB
Diff
53 lines
1.7 KiB
Diff
|
commit 10c48d46fa482b8cc762592aaee6c7cc178356e7 (HEAD -> master, origin/master, origin/HEAD)
|
||
|
Author: Frank Ch. Eigler <fche@redhat.com>
|
||
|
Date: Mon Mar 28 08:54:11 2016 -0400
|
||
|
|
||
|
PR19874: reset 60s alarm for "stap -c CMD"
|
||
|
|
||
|
Brown paper bag bug. Test case included.
|
||
|
|
||
|
diff --git a/staprun/mainloop.c b/staprun/mainloop.c
|
||
|
index 82c0c74fcf0c..874fbd8f8a99 100644
|
||
|
--- a/staprun/mainloop.c
|
||
|
+++ b/staprun/mainloop.c
|
||
|
@@ -281,6 +281,7 @@ void start_cmd(void)
|
||
|
raise (SIGCONT); /* Harmless; just passes control to parent. */
|
||
|
#endif /* !WORKAROUND_BZ467568 */
|
||
|
|
||
|
+ alarm(0); /* clear alarms */
|
||
|
dbug(1, "execing target_cmd %s\n", target_cmd);
|
||
|
|
||
|
/* Note that execvp() is not a direct system call; it does a $PATH
|
||
|
diff --git a/testsuite/systemtap.base/staprunwait.exp b/testsuite/systemtap.base/staprunwait.exp
|
||
|
new file mode 100644
|
||
|
index 000000000000..fc719730bc4c
|
||
|
--- /dev/null
|
||
|
+++ b/testsuite/systemtap.base/staprunwait.exp
|
||
|
@@ -0,0 +1,17 @@
|
||
|
+set test staprunwait
|
||
|
+
|
||
|
+if {! [installtest_p]} { untested $test; return }
|
||
|
+
|
||
|
+foreach runtime [get_runtime_list] {
|
||
|
+ if {$runtime != ""} {
|
||
|
+ set ok [catch {exec stap $srcdir/$subdir/$test.stp --runtime=$runtime -c "sleep 120"} foo]
|
||
|
+ } else {
|
||
|
+ set ok [catch {exec stap $srcdir/$subdir/$test.stp -c "sleep 120"} foo]
|
||
|
+ }
|
||
|
+ verbose -log "$ok $foo"
|
||
|
+ if {$ok != 0} {
|
||
|
+ fail "$test $runtime"
|
||
|
+ } else {
|
||
|
+ pass "$test $runtime"
|
||
|
+ }
|
||
|
+}
|
||
|
diff --git a/testsuite/systemtap.base/staprunwait.stp b/testsuite/systemtap.base/staprunwait.stp
|
||
|
new file mode 100644
|
||
|
index 000000000000..91cbc92446c4
|
||
|
--- /dev/null
|
||
|
+++ b/testsuite/systemtap.base/staprunwait.stp
|
||
|
@@ -0,0 +1,3 @@
|
||
|
+#! /usr/bin/env stap
|
||
|
+
|
||
|
+probe timer.s(10) { println(ctime()) }
|