HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1053 Details

Help Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges

This page provides all information on Problem Report 1053.


Report 1053 Actions


    Problem Report Number 1053
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0290
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published null
    Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98)
    Certification Program The Open Brand certification program
    Test Suite VSRT version 5.0.1
    Test Identification rt.os/mqueue/mq_notify 2, 3
    Problem Summary PG4R.00014 These tests may fail due to signals interrupting a semaphore operation.
    Problem Text
    This failures can be caused by a problem with SRC/common/vsrtlib/event.c:

    int vsrt_wait_event(int event, int t)
    {
    struct sembuf mysembuf;
    int save_errno, rval;

    ...

    if (t > 0) {
    got_sigalrm = 0;
    sigemptyset(&(Sigaction.sa_mask));
    Sigaction.sa_handler = vsrt_lsah;
    Sigaction.sa_flags = 0;
    rval = sigaction(SIGALRM,&Sigaction,(struct sigaction *)NULL);
    if (rval == -1) {
    in_rpt("vsrt_wait_event: sigaction failed, errno =
    %s (%
    s), errno, errname(errno)");
    xx_rpt(FAILURE);
    return -1;
    }
    (void) alarm((unsigned int)t);
    }

    line 142 -> rval = semop(semid, &mysembuf, 1);


    ....
    }

    The test code intends to do semaphore operations, but semop() could be
    interrupted by a signal. In that case, semop() will return -1 and
    errno will be set to EINTR.

    suggested fix:

    rval = semop(semid, &mysembuf, 1); <-- line 142
    while (rval == -1 && errno == EINTR) {
    rval = semop(semid, &mysembuf, 1);
    }
    Test Output


    **********************************************************************
    /tset/rt.os/mqueue/mq_notify/T.mq_notify 2 Failed

    Test Description:
    If _POSIX_MESSAGE_PASSING and _POSIX_REALTIME_SIGNALS are defined or
    the implementation supports the mq_notify() function as described in
    System Interfaces and Headers, Issue 5:
    A successful call to mq_notify() when notification->sigev_notify is
    SIGEV_SIGNAL shall cause the signal specified in notification-
    >sigev_signo to be generated for the process upon message arrival at
    the empty message queue associated with mqdes and the process'
    registration for notification shall be removed.

    Test Information:
    message queue did not have any messages
    **********************************************************************

    **********************************************************************
    /tset/rt.os/mqueue/mq_notify/T.mq_notify 3 Failed

    Test Description:
    If _POSIX_MESSAGE_PASSING and _POSIX_REALTIME_SIGNALS are defined or
    the implementation supports the mq_notify() function as described in
    System Interfaces and Headers, Issue 5:
    After a successful call to mq_notify() when notification-
    >sigev_notify is SIGEV_SIGNAL and the SA_SIGINFO flag is set for the
    signal specified in notification->sigev_signo, the signal shall be
    queued for the process when it is generated and the value specified
    in notification->sigev_value shall be in the si_value component of
    the generated signal.

    Test Information:
    message queue did not have any messages
    **********************************************************************


    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We recommend this request be refused.

    The vsrt_wait_event() code goes on after the fragment provided above to
    check the value of rval and if it was -1 an error message starting
    with "vsrt_wait_event: semop failed" would be emitted.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Rejected (REJ)
    Review Conclusion
    This request is refused.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority