summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorAwais Belal <awais_belal@mentor.com>2016-04-11 00:29:17 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-04-11 22:02:04 +0100
commitf87869c6d6b08425268b2f9eb7a8a270786dcf2f (patch)
treecc3ee8a200b8b91f8a0e9c59139a6758941c579d /meta
parenta820a2073bdfd9e423a431086728c268f1f3c723 (diff)
downloadpoky-f87869c6d6b08425268b2f9eb7a8a270786dcf2f.tar.gz
lttng-tools: fix regression tests hang
Some of the lttng fast_regression ptests have race conditions which end up in a deadlock so the test case never returns and the only way around is to kill the process. This is fixed by picking up relevant patches from lttng-tools mainstream that fix up the behavior of these tests. (From OE-Core rev: 7c5fbfc13a541e904022e19eff8251f1cdf764f5) Signed-off-by: Awais Belal <awais_belal@mentor.com> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools/Fix-regression-tests.patch480
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools_2.6.0.bb1
2 files changed, 481 insertions, 0 deletions
diff --git a/meta/recipes-kernel/lttng/lttng-tools/Fix-regression-tests.patch b/meta/recipes-kernel/lttng/lttng-tools/Fix-regression-tests.patch
new file mode 100644
index 0000000000..42f2074f95
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-tools/Fix-regression-tests.patch
@@ -0,0 +1,480 @@
1From 971c0ba5c008735b3c5013ca6e0e2e96ab63db90 Mon Sep 17 00:00:00 2001
2From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
3Date: Thu, 24 Sep 2015 12:23:58 -0400
4Subject: [PATCH] Fix: regression tests
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Fix racy session/relayd wait-after-kill scheme.
10Fix racy live test where application may not have generated events yet
11when we attach to the live trace.
12
13Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
15
16Conflicts:
17 tests/utils/utils.sh
18
19Upstream-Status: Backport
20---
21 tests/regression/tools/health/test_health.sh | 4 +-
22 tests/regression/tools/live/test_kernel | 47 +---------
23 tests/regression/tools/live/test_ust | 60 ++++--------
24 .../regression/tools/live/test_ust_tracefile_count | 60 ++++--------
25 tests/regression/tools/save-load/test_load | 6 +-
26 tests/utils/utils.sh | 103 ++++++++++++++++-----
27 6 files changed, 120 insertions(+), 160 deletions(-)
28
29diff --git a/tests/regression/tools/health/test_health.sh b/tests/regression/tools/health/test_health.sh
30index 6ae8885..ddc104c 100644
31--- a/tests/regression/tools/health/test_health.sh
32+++ b/tests/regression/tools/health/test_health.sh
33@@ -146,7 +146,9 @@ function test_health
34 fi
35
36 if [ ${test_relayd} -eq 1 ]; then
37- stop_lttng_relayd_nocheck
38+ # We may fail to stop relayd here, and this is OK, since
39+ # it may have been killed volountarily by testpoint.
40+ stop_lttng_relayd_notap
41 fi
42 stop_lttng_sessiond
43
44diff --git a/tests/regression/tools/live/test_kernel b/tests/regression/tools/live/test_kernel
45index 4b958df..0e542da 100755
46--- a/tests/regression/tools/live/test_kernel
47+++ b/tests/regression/tools/live/test_kernel
48@@ -62,22 +62,8 @@ else
49 exit 0
50 fi
51
52-if [ -z $(pidof lt-$SESSIOND_BIN) ]; then
53- $DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --background --quiet --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
54- if [ $? -eq 1 ]; then
55- echo "Fail to start lttng-sessiond"
56- exit 1
57- fi
58-fi
59-
60-opt="--background -o $TRACE_PATH"
61-if [ -z $(pidof lt-$RELAYD_BIN) ]; then
62- $DIR/../src/bin/lttng-relayd/$RELAYD_BIN $opt >/dev/null 2>&1
63- if [ $? -eq 1 ]; then
64- echo "Fail to start lttng-relayd (opt: $opt)"
65- return 1
66- fi
67-fi
68+start_lttng_sessiond_notap
69+start_lttng_relayd_notap "-o $TRACE_PATH"
70
71 setup_live_tracing
72
73@@ -86,30 +72,5 @@ $TESTDIR/regression/tools/live/live_test
74
75 clean_live_tracing
76
77-# Kill the relayd
78-PID_RELAYD=`pidof lt-$RELAYD_BIN`
79-kill $PID_RELAYD
80-if [ $? -eq 1 ]; then
81- echo "Kill lttng-relayd (pid: $PID_RELAYD)"
82- exit 1
83-else
84- out=1
85- while [ -n "$out" ]; do
86- out=$(pidof lt-$RELAYD_BIN)
87- sleep 0.5
88- done
89-fi
90-
91-# Kill the sessiond
92-PID_SESSIOND=`pidof lt-$SESSIOND_BIN`
93-kill $PID_SESSIOND
94-if [ $? -eq 1 ]; then
95- echo "Kill sessiond daemon"
96- exit 1
97-else
98- out=1
99- while [ -n "$out" ]; do
100- out=$(pidof lt-$SESSIOND_BIN)
101- sleep 0.5
102- done
103-fi
104+stop_lttng_relayd_notap
105+stop_lttng_sessiond_notap
106diff --git a/tests/regression/tools/live/test_ust b/tests/regression/tools/live/test_ust
107index ae69195..0b96858 100755
108--- a/tests/regression/tools/live/test_ust
109+++ b/tests/regression/tools/live/test_ust
110@@ -59,57 +59,29 @@ function clean_live_tracing()
111 rm -rf $TRACE_PATH
112 }
113
114-if [ -z $(pidof lt-$SESSIOND_BIN) ]; then
115- $DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --background --quiet --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
116- if [ $? -eq 1 ]; then
117- echo "Fail to start lttng-sessiond"
118- exit 1
119- fi
120-fi
121-
122-opt="-o $TRACE_PATH --background"
123-if [ -z $(pidof lt-$RELAYD_BIN) ]; then
124- $DIR/../src/bin/lttng-relayd/$RELAYD_BIN $opt >/dev/null 2>&1
125- if [ $? -eq 1 ]; then
126- echo "Fail to start lttng-relayd (opt: $opt)"
127- return 1
128- fi
129-fi
130+file_sync_after_first=$(mktemp -u)
131+
132+start_lttng_sessiond_notap
133+start_lttng_relayd_notap "-o $TRACE_PATH"
134
135 setup_live_tracing
136
137 # Run app in background
138-$TESTAPP_BIN $NR_ITER $NR_USEC_WAIT >/dev/null 2>&1
139+$TESTAPP_BIN $NR_ITER $NR_USEC_WAIT ${file_sync_after_first} >/dev/null 2>&1
140+
141+while [ ! -f "${file_sync_after_first}" ]; do
142+ sleep 0.5
143+done
144
145 # Start the live test
146 $TESTDIR/regression/tools/live/live_test
147
148+# Wait for the applications started in background
149+wait
150+
151 clean_live_tracing
152
153-# Kill the relayd
154-PID_RELAYD=`pidof lt-$RELAYD_BIN`
155-kill $PID_RELAYD
156-if [ $? -eq 1 ]; then
157- echo "Kill lttng-relayd (pid: $PID_RELAYD)"
158- exit 1
159-else
160- out=1
161- while [ -n "$out" ]; do
162- out=$(pidof lt-$RELAYD_BIN)
163- sleep 0.5
164- done
165-fi
166-
167-# Kill the sessiond
168-PID_SESSIOND=`pidof lt-$SESSIOND_BIN`
169-kill $PID_SESSIOND
170-if [ $? -eq 1 ]; then
171- echo "Kill sessiond daemon"
172- exit 1
173-else
174- out=1
175- while [ -n "$out" ]; do
176- out=$(pidof lt-$SESSIOND_BIN)
177- sleep 0.5
178- done
179-fi
180+rm -f ${file_sync_after_first}
181+
182+stop_lttng_relayd_notap
183+stop_lttng_sessiond_notap
184diff --git a/tests/regression/tools/live/test_ust_tracefile_count b/tests/regression/tools/live/test_ust_tracefile_count
185index 68e3722..54d6a52 100755
186--- a/tests/regression/tools/live/test_ust_tracefile_count
187+++ b/tests/regression/tools/live/test_ust_tracefile_count
188@@ -60,57 +60,29 @@ function clean_live_tracing()
189 rm -rf $TRACE_PATH
190 }
191
192-if [ -z $(pidof lt-$SESSIOND_BIN) ]; then
193- $DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --background --quiet --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
194- if [ $? -eq 1 ]; then
195- echo "Fail to start lttng-sessiond"
196- exit 1
197- fi
198-fi
199-
200-opt="-o $TRACE_PATH --background"
201-if [ -z $(pidof lt-$RELAYD_BIN) ]; then
202- $DIR/../src/bin/lttng-relayd/$RELAYD_BIN $opt >/dev/null 2>&1
203- if [ $? -eq 1 ]; then
204- echo "Fail to start lttng-relayd (opt: $opt)"
205- return 1
206- fi
207-fi
208+file_sync_after_first=$(mktemp -u)
209+
210+start_lttng_sessiond_notap
211+start_lttng_relayd_notap "-o $TRACE_PATH"
212
213 setup_live_tracing
214
215 # Run app in background
216-$TESTAPP_BIN $NR_ITER $NR_USEC_WAIT >/dev/null 2>&1
217+$TESTAPP_BIN $NR_ITER $NR_USEC_WAIT ${file_sync_after_first} >/dev/null 2>&1
218+
219+while [ ! -f "${file_sync_after_first}" ]; do
220+ sleep 0.5
221+done
222
223 # Start the live test
224 $TESTDIR/regression/tools/live/live_test
225
226+# Wait for the applications started in background
227+wait
228+
229 clean_live_tracing
230
231-# Kill the relayd
232-PID_RELAYD=`pidof lt-$RELAYD_BIN`
233-kill $PID_RELAYD
234-if [ $? -eq 1 ]; then
235- echo "Kill lttng-relayd (pid: $PID_RELAYD)"
236- exit 1
237-else
238- out=1
239- while [ -n "$out" ]; do
240- out=$(pidof lt-$RELAYD_BIN)
241- sleep 0.5
242- done
243-fi
244-
245-# Kill the sessiond
246-PID_SESSIOND=`pidof lt-$SESSIOND_BIN`
247-kill $PID_SESSIOND
248-if [ $? -eq 1 ]; then
249- echo "Kill sessiond daemon"
250- exit 1
251-else
252- out=1
253- while [ -n "$out" ]; do
254- out=$(pidof lt-$SESSIOND_BIN)
255- sleep 0.5
256- done
257-fi
258+rm -f ${file_sync_after_first}
259+
260+stop_lttng_relayd_notap
261+stop_lttng_sessiond_notap
262diff --git a/tests/regression/tools/save-load/test_load b/tests/regression/tools/save-load/test_load
263index 6b892cf..fc07924 100755
264--- a/tests/regression/tools/save-load/test_load
265+++ b/tests/regression/tools/save-load/test_load
266@@ -29,7 +29,7 @@ EVENT_NAME="tp:tptest"
267
268 DIR=$(readlink -f $TESTDIR)
269
270-NUM_TESTS=21
271+NUM_TESTS=23
272
273 source $TESTDIR/utils/utils.sh
274
275@@ -92,7 +92,7 @@ function test_complex_load()
276 fi
277 destroy_lttng_session $sess
278
279- stop_lttng_relayd_nocheck
280+ stop_lttng_relayd
281 }
282
283 function test_all_load()
284@@ -108,7 +108,7 @@ function test_all_load()
285 destroy_lttng_session $SESSION_NAME
286 destroy_lttng_session "$SESSION_NAME-complex"
287
288- stop_lttng_relayd_nocheck
289+ stop_lttng_relayd
290 }
291
292 function test_overwrite()
293diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh
294index 2510da5..1d19e64 100644
295--- a/tests/utils/utils.sh
296+++ b/tests/utils/utils.sh
297@@ -233,9 +233,10 @@ function lttng_disable_kernel_channel_fail()
298 lttng_disable_kernel_channel 1 ${*}
299 }
300
301-function start_lttng_relayd
302+function start_lttng_relayd_opt()
303 {
304- local opt=$1
305+ local withtap=$1
306+ local opt=$2
307
308 DIR=$(readlink -f $TESTDIR)
309
310@@ -243,52 +244,77 @@ function start_lttng_relayd
311 $DIR/../src/bin/lttng-relayd/$RELAYD_BIN -b $opt >$OUTPUT_DEST
312 #$DIR/../src/bin/lttng-relayd/$RELAYD_BIN $opt -vvv >>/tmp/relayd.log 2>&1 &
313 if [ $? -eq 1 ]; then
314- fail "Start lttng-relayd (opt: $opt)"
315+ if [ $withtap -eq "1" ]; then
316+ fail "Start lttng-relayd (opt: $opt)"
317+ fi
318 return 1
319 else
320- pass "Start lttng-relayd (opt: $opt)"
321+ if [ $withtap -eq "1" ]; then
322+ pass "Start lttng-relayd (opt: $opt)"
323+ fi
324 fi
325 else
326 pass "Start lttng-relayd (opt: $opt)"
327 fi
328 }
329
330-function stop_lttng_relayd_nocheck
331+function start_lttng_relayd()
332 {
333+ start_lttng_relayd_opt 1 "$@"
334+}
335+
336+function start_lttng_relayd_notap()
337+{
338+ start_lttng_relayd_opt 0 "$@"
339+}
340+
341+function stop_lttng_relayd_opt()
342+{
343+ local withtap=$1
344+
345 PID_RELAYD=`pidof lt-$RELAYD_BIN`
346
347- diag "Killing lttng-relayd (pid: $PID_RELAYD)"
348+ if [ $withtap -eq "1" ]; then
349+ diag "Killing lttng-relayd (pid: $PID_RELAYD)"
350+ fi
351 kill $PID_RELAYD >$OUTPUT_DEST
352 retval=$?
353
354- if [ $retval -eq 1 ]; then
355+ if [ $? -eq 1 ]; then
356+ if [ $withtap -eq "1" ]; then
357+ fail "Kill relay daemon"
358+ fi
359+ return 1
360+ else
361 out=1
362 while [ -n "$out" ]; do
363 out=$(pidof lt-$RELAYD_BIN)
364 sleep 0.5
365 done
366+ if [ $withtap -eq "1" ]; then
367+ pass "Kill relay daemon"
368+ fi
369 fi
370 return $retval
371 }
372
373-function stop_lttng_relayd
374+function stop_lttng_relayd()
375 {
376- stop_lttng_relayd_nocheck
377+ stop_lttng_relayd_opt 1 "$@"
378+}
379
380- if [ $? -eq 1 ]; then
381- fail "Killed lttng-relayd (pid: $PID_RELAYD)"
382- return 1
383- else
384- pass "Killed lttng-relayd (pid: $PID_RELAYD)"
385- return 0
386- fi
387+function stop_lttng_relayd_notap()
388+{
389+ stop_lttng_relayd_opt 0 "$@"
390 }
391
392-#First argument: load path for automatic loading
393-function start_lttng_sessiond()
394+#First arg: show tap output
395+#Second argument: load path for automatic loading
396+function start_lttng_sessiond_opt()
397 {
398+ local withtap=$1
399+ local load_path=$2
400
401- local load_path="$1"
402 if [ -n $TEST_NO_SESSIOND ] && [ "$TEST_NO_SESSIOND" == "1" ]; then
403 # Env variable requested no session daemon
404 return
405@@ -306,19 +332,33 @@ function start_lttng_sessiond()
406
407 if [ -z $(pidof lt-$SESSIOND_BIN) ]; then
408 # Have a load path ?
409- if [ -n "$1" ]; then
410+ if [ -n "$load_path" ]; then
411 $DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --load "$1" --background --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
412 else
413 $DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --background --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
414 fi
415 #$DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --background --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --verbose-consumer >>/tmp/sessiond.log 2>&1
416 status=$?
417- ok $status "Start session daemon"
418+ if [ $withtap -eq "1" ]; then
419+ ok $status "Start session daemon"
420+ fi
421 fi
422 }
423
424-function stop_lttng_sessiond ()
425+function start_lttng_sessiond()
426+{
427+ start_lttng_sessiond_opt 1 "$@"
428+}
429+
430+function start_lttng_sessiond_notap()
431 {
432+ start_lttng_sessiond_opt 0 "$@"
433+}
434+
435+function stop_lttng_sessiond_opt()
436+{
437+ local withtap=$1
438+
439 if [ -n $TEST_NO_SESSIOND ] && [ "$TEST_NO_SESSIOND" == "1" ]; then
440 # Env variable requested no session daemon
441 return
442@@ -329,8 +369,9 @@ function stop_lttng_sessiond ()
443 kill $PID_SESSIOND >$OUTPUT_DEST
444
445 if [ $? -eq 1 ]; then
446- fail "Kill sessions daemon"
447- return 1
448+ if [ $withtap -eq "1" ]; then
449+ fail "Kill sessions daemon"
450+ fi
451 else
452 out=1
453 while [ -n "$out" ]; do
454@@ -342,10 +383,22 @@ function stop_lttng_sessiond ()
455 out=$(pidof $CONSUMERD_BIN)
456 sleep 0.5
457 done
458- pass "Kill session daemon"
459+ if [ $withtap -eq "1" ]; then
460+ pass "Kill session daemon"
461+ fi
462 fi
463 }
464
465+function stop_lttng_sessiond()
466+{
467+ stop_lttng_sessiond_opt 1 "$@"
468+}
469+
470+function stop_lttng_sessiond_notap()
471+{
472+ stop_lttng_sessiond_opt 0 "$@"
473+}
474+
475 function list_lttng_with_opts ()
476 {
477 local opts=$1
478--
4791.9.1
480
diff --git a/meta/recipes-kernel/lttng/lttng-tools_2.6.0.bb b/meta/recipes-kernel/lttng/lttng-tools_2.6.0.bb
index 909acc37a7..175c889e84 100644
--- a/meta/recipes-kernel/lttng/lttng-tools_2.6.0.bb
+++ b/meta/recipes-kernel/lttng/lttng-tools_2.6.0.bb
@@ -29,6 +29,7 @@ SRC_URI = "git://git.lttng.org/lttng-tools.git;branch=stable-2.6 \
29 file://run-ptest \ 29 file://run-ptest \
30 file://lttng-tools-Fix-live-timer-calculation-error.patch \ 30 file://lttng-tools-Fix-live-timer-calculation-error.patch \
31 file://0001-Fix-sessiond-disable-match-app-event-by-name.patch \ 31 file://0001-Fix-sessiond-disable-match-app-event-by-name.patch \
32 file://Fix-regression-tests.patch \
32 " 33 "
33 34
34S = "${WORKDIR}/git" 35S = "${WORKDIR}/git"