#164 OpenSSI fails glibc tst-waitid test

v2.0.0pre2
closed-fixed
5
2010-03-13
2008-07-03
John Hughes
No

$ gcc -o tst-waitid tst-waitid.c
$ ./tst-waitid
SIGCHLD for stopped code 128
SIGCHLD for stopped status 7
SIGCHLD for stopped pid 0
waitid WSTOPPED|WNOHANG returned bogus value 396019

On a non-ssi system no output is produced.

Discussion

  • John Hughes

    John Hughes - 2008-07-03

    glibc test program (modified to be easy to compile)

     
  • Roger Tsang

    Roger Tsang - 2008-07-05
    • milestone: --> v2.0.0pre2
    • assigned_to: nobody --> rogertsang
     
  • Roger Tsang

    Roger Tsang - 2008-07-11

    Logged In: YES
    user_id=1246761
    Originator: NO

    Some progress...
    1. waitid succeeds and return value is pid, but userspace expects 0. (fixed)
    2. returned si_status is correct but is kernel space value with non-zero __SIGCHLD mask.
    3. WCONTINUED option is not supported in VPROC. (fixed; added feature)
    4. WEXIT|WNOWAIT hangs because child already signalled p_exiting before parent waits for event; and parent was waiting for p_exiting event with spinlocks held. (fixed)
    5. check_sigchld() errors. kernel doesn't fill the signal info for signal handler.

     
  • Roger Tsang

    Roger Tsang - 2008-07-14

    Logged In: YES
    user_id=1246761
    Originator: NO

    Fixed the remaining issues. tst-waitid passes.

    # ./tst-waitid
    no SIGCHLD seen for SIGCONT (optional)
    no SIGCHLD seen for SIGCONT (optional)

    A patch will be available soon.

    cluster/ssi/vproc/dvp_debug.c | 7
    cluster/ssi/vproc/dvp_init.c | 12 +
    cluster/ssi/vproc/dvp_pvpops.c | 154 ++++++++++++++++--
    cluster/ssi/vproc/dvp_vpops.c | 147 +++++++++++++++--
    cluster/ssi/vproc/nd_slave.c | 15 +
    cluster/ssi/vproc/nsc_initproc.c | 22 ++
    cluster/ssi/vproc/rproc_cli_subr.c | 26 ++-
    cluster/ssi/vproc/rproc_cli_vproc.c | 26 +++
    cluster/ssi/vproc/rproc_server.c | 11 +
    cluster/ssi/vproc/rproc_svr_vproc.c | 14 +
    cluster/ssi/vproc/vp_subr.c | 6
    include/asm-i386/semaphore.h | 2
    include/cluster/synch.h | 59 ++++---
    include/linux/config.h | 4
    include/linux/dpvproc.h | 14 +
    include/linux/sched.h | 8
    include/linux/vproc.h | 14 +
    kernel/exit.c | 299 +++++++++++++++++++++++++++++-------
    kernel/signal.c | 155 ++++++++++++++++--
    19 files changed, 845 insertions(+), 150 deletions(-)

     
  • Roger Tsang

    Roger Tsang - 2008-08-10

    Logged In: YES
    user_id=1246761
    Originator: NO

    Also added the optional SIGCHLD for SIGCONT.
    No output is produced in OpenSSI.

     
  • Roger Tsang

    Roger Tsang - 2008-08-10
    • status: open --> open-fixed
     
  • Roger Tsang

    Roger Tsang - 2008-08-26

    Logged In: YES
    user_id=1246761
    Originator: NO

    The fix will be checked into CVS.

     
  • Roger Tsang

    Roger Tsang - 2008-10-10

    checked in

     
  • Roger Tsang

    Roger Tsang - 2010-03-13
    • status: open-fixed --> closed-fixed
     

Log in to post a comment.