SourceForge has been redesigned. Learn more.

#36 sigwait fails when migrating keepalive


Platform: i386, 1.0.0-rc3

To reproduce:
1. Install the openssi-tools SRPM
2. Run rpmbuild -bp /usr/src/redhat/SPECS/openssi-tools.spec
3. cd /usr/src/redhat/BUILD/openssi-tools-1.0.0/openssi-tools/keepalive
4. Edit keepalive.h and modify the #define KEEPCFG (line 297) to
5. Run make clean all install in that directory
6. mkdir /cluster/dev
7. Run /sbin/keepalive on the init node:
# /sbin/keepalive
8. Use pidof or ps ax to find the pid of keepalive. There would
be two pids - keepalive invokes fork(). The child polls
/cluster/dev/keepalivecfg, while the parents monitors the
registered processes.
9. Use migrate command to migrate the parent pid to
a secondary node.
# migrate 2 <pid_of_parent>
10. keepalive syslog's "sigwait failed" at line 1690 in keepalive.c


  • Chirag Kantharia

    Logged In: YES

    Please use keepalive.c and findproc.c from the CVS. The one shipped with rc3, does not have the sigaction code. Copy keepalive.c and findproc.c to openssi-tools-1.0.0/openssi-tools/keepalive.

  • Aneesh Kumar K.V

    Logged In: YES

    OpenSSI need special handling for suspend and sigwait. you
    need to do the below for sys_rt_sigtimedwait

    current->flags |= PF_SIGSUSPEND;

    The rest will be taken care by the migration code.

    I haven't tested this . But i guess it should fix it.


  • Laura Ramirez

    Laura Ramirez - 2004-04-05
    • status: open --> closed
  • Laura Ramirez

    Laura Ramirez - 2004-04-05

    Logged In: YES

    Fix checked in by John Byrne:
    date: 2004/04/01 03:20:27; author: jlbyrne; state: Exp;
    lines: +13 -0
    M ci/kernel/kernel/signal.c
    Make sigwait() work transparently over migrates;
    will have a bug, still; it will restart after a
    migrate with
    the original timeout. I added a printk() to warn in
    this case.


Log in to post a comment.