public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
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.



  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