From: jonathan.r.julien@gmail.com (Jonathan Rajotte)
Subject: [lttng-dev] [PATCH lttng-tools] Fix: mi test: possible race between listing UST events and testapp start
Date: Mon, 27 Oct 2014 18:50:40 -0400 [thread overview]
Message-ID: <CAF4oYfH46xdc1cYg6Q_5ETypEoduO1t9Hre5f6Ey_wycdxQ6Zg@mail.gmail.com> (raw)
In-Reply-To: <544EAF8F.7070904@mentor.com>
Hey
On Mon, Oct 27, 2014 at 4:48 PM, Nathan Lynch <Nathan_Lynch at mentor.com>
wrote:
> On 10/26/2014 08:21 PM, Jonathan Rajotte wrote:
> > Signed-off-by: Jonathan Rajotte <jonathan.r.julien at gmail.com>
>
> More description of the change is needed IMO.
>
> > ---
> > tests/regression/tools/mi/test_mi | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/tests/regression/tools/mi/test_mi
> b/tests/regression/tools/mi/test_mi
> > index fa46b51..7acec18 100755
> > --- a/tests/regression/tools/mi/test_mi
> > +++ b/tests/regression/tools/mi/test_mi
> > @@ -507,6 +507,11 @@ function test_list_ust_event ()
> >
> > #Begin testing
> > $TESTAPP_BIN $NR_USEC_WAIT & 2>/dev/null
> > + pid=$!
> > +
> > + #Wait for TESTAPP to run
> > + while ! kill -0 $pid 2> /dev/null; do :; done
> > +
> > list_lttng_with_opts "-u -f"
>
> Is this an attempt to give the test program enough time to register
> tracepoints?
>
A poor one... if one at all.... for which I needed feedback (missing rfc
tag here) because I could not simply find any simple way. See [1]
> If so, I agree there is a race, but I don't think this is the right way
> to address it.
I would not expect the while ! kill loop to repeat at
> all;
The presence of ":" assure the execution of the while loop.
A simple test on a process that does not exist yield a lot of printing:
while ! kill -0 500; do :; done
Anyway it does not solve the problem. ;) and I'm not sure you were talking
about that.
if you remove the stderr redirection do you see any output, ever?
The exit status from kill $! is not a reliable indication that the shell
> has execve'd the program in the background, and even if it were, it
> would not be a reliable indication of how far the program has progressed
+1
(e.g. whether it has got far enough along to register tracepoints).
>
>
> If a test program needs to run in the background, yet needs to reach a
> certain state before the rest of the test should proceed, then it should
> have a way to indicate to the test harness that it has reached the
> desired state. The shell's rudimentary facilities for managing
> concurrency are not sufficient.
>
I'm pushing limits here regarding simplicity: how about a trap and signal
exchange between the testapp... might give it a shot. Or a simple sleep...
Thanks, I'll think about it a little more.
[1]:http://meta.wikimedia.org/wiki/Cunningham%27s_Law
Bonus xkcd: http://xkcd.com/386/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lttng.org/pipermail/lttng-dev/attachments/20141027/838b34b6/attachment-0001.html>
next prev parent reply other threads:[~2014-10-27 22:50 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-27 1:21 Jonathan Rajotte
2014-10-27 20:48 ` Nathan Lynch
2014-10-27 22:50 ` Jonathan Rajotte [this message]
2014-10-29 18:23 ` David Goulet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAF4oYfH46xdc1cYg6Q_5ETypEoduO1t9Hre5f6Ey_wycdxQ6Zg@mail.gmail.com \
--to=jonathan.r.julien@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox