From: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH 8/8] waitpid08: test stopped children
Date: Thu, 18 Aug 2016 13:12:16 +0300 [thread overview]
Message-ID: <57B58A00.7060707@oracle.com> (raw)
In-Reply-To: <20160816130316.GA25540@rei.lan>
Hi!
On 08/16/2016 04:03 PM, Cyril Hrubis wrote:
> Hi!
>> The whole purpose of WUNTRACED is to help with handling of stopped
>> children. Therefore, let's expand the scope of testing by making
>> the children stop before we call waitpid() (similarly to waitpid13).
>>
>> Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
>> ---
>> testcases/kernel/syscalls/waitpid/waitpid08.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/testcases/kernel/syscalls/waitpid/waitpid08.c b/testcases/kernel/syscalls/waitpid/waitpid08.c
>> index e17663f..c743c26 100644
>> --- a/testcases/kernel/syscalls/waitpid/waitpid08.c
>> +++ b/testcases/kernel/syscalls/waitpid/waitpid08.c
>> @@ -43,7 +43,7 @@ static void do_child_1(void)
>>
>> pid = SAFE_FORK();
>> if (pid == 0)
>> - do_exit(0);
>> + do_exit(1);
>>
>> fork_kid_pid[i] = pid;
>
> Hmm, shouldn't we send SIGCONT and reap the children at the end of the
> do_child_1() after this change?
>
> Since if we pass the -i 100 parameter to the test the waitpid_test()
> would continue to fork() children that will stay sigstopped in the
> background even after the test exits since the fork_kid_pid[] is changed
> in each iteration, half of the children has different process group and
> the waitpid_cleanup() is called once at the end of the test. Or do I
> miss something?
>
No-no, this should not happen, since reap_children() handles stopped
children this way:
for (;;) {
pid = waitpid();
if (pid is a pid of a stopped task) {
kill(pid, SIGCONT);
continue;
}
<...>
}
i.e. it makes all the stopped children continue.
So there should not be any children in 'pgroup' after
reap_children(pgroup) has finished.
This SIGSTOP-related code is added by the previous patch in the series
(waitpid13).
Thanks.
next prev parent reply other threads:[~2016-08-18 10:12 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-10 8:40 [LTP] waitpid: new API (part 2) Stanislav Kholmanskikh
2016-08-10 8:40 ` [LTP] [PATCH 1/8] waitpid09: use the new API Stanislav Kholmanskikh
2016-08-10 8:41 ` [LTP] [PATCH 2/8] waitpid10: " Stanislav Kholmanskikh
2016-08-10 8:41 ` [LTP] [PATCH 3/8] syscalls/waitpid: implement waitpid_ret_test() Stanislav Kholmanskikh
2016-08-10 8:41 ` [LTP] [PATCH 4/8] syscalls/waitpid: make reap_children() fail if errno is not ECHILD Stanislav Kholmanskikh
2016-08-10 8:41 ` [LTP] [PATCH 5/8] waitpid11: update the description Stanislav Kholmanskikh
2016-08-10 8:41 ` [LTP] [PATCH 6/8] waitpid12: use the new API Stanislav Kholmanskikh
2016-08-10 8:41 ` [LTP] [PATCH 7/8] waitpid13: " Stanislav Kholmanskikh
2016-08-10 8:41 ` [LTP] [PATCH 8/8] waitpid08: test stopped children Stanislav Kholmanskikh
2016-08-16 13:03 ` Cyril Hrubis
2016-08-18 10:12 ` Stanislav Kholmanskikh [this message]
2016-08-18 10:48 ` Cyril Hrubis
2016-08-18 11:37 ` Stanislav Kholmanskikh
2016-08-16 13:24 ` [LTP] [PATCH 7/8] waitpid13: use the new API Cyril Hrubis
2016-08-16 13:20 ` [LTP] [PATCH 6/8] waitpid12: " Cyril Hrubis
2016-08-15 15:51 ` [LTP] [PATCH 5/8] waitpid11: update the description Cyril Hrubis
2016-08-15 15:49 ` [LTP] [PATCH 4/8] syscalls/waitpid: make reap_children() fail if errno is not ECHILD Cyril Hrubis
2016-08-15 15:27 ` [LTP] [PATCH 3/8] syscalls/waitpid: implement waitpid_ret_test() Cyril Hrubis
2016-08-18 9:54 ` Stanislav Kholmanskikh
2016-08-18 10:42 ` Cyril Hrubis
2016-08-18 15:15 ` Stanislav Kholmanskikh
2016-08-18 15:43 ` Cyril Hrubis
2016-08-18 15:54 ` Cyril Hrubis
2016-08-19 9:47 ` Stanislav Kholmanskikh
2016-08-22 17:38 ` Cyril Hrubis
2016-08-15 14:36 ` [LTP] [PATCH 2/8] waitpid10: use the new API Cyril Hrubis
2016-08-18 8:25 ` Stanislav Kholmanskikh
2016-08-18 8:33 ` Stanislav Kholmanskikh
2016-08-18 9:19 ` Cyril Hrubis
2016-08-15 13:55 ` [LTP] [PATCH 1/8] waitpid09: " Cyril Hrubis
2016-08-18 7:40 ` [LTP] [PATCH 1/8 V2] " Stanislav Kholmanskikh
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=57B58A00.7060707@oracle.com \
--to=stanislav.kholmanskikh@oracle.com \
--cc=ltp@lists.linux.it \
/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