Hi,

running signal_test_01 IPC stress testcase in x86 and x86_64 machines, we faced 
the messages below:

# cd ltp-full-20080430/testcases/kernel/ipc/ipc_stress/
# ./signal_test_01 
./signal_test_01: IPC Signals TestSuite program

        Send SIGILL, SIGALRM, SIGIOT signals to process
        received signal: (SIGILL)
        received signal: (SIGALRM)
        received signal: (SIGIOT/SIGABRT)

        Block SIGILL, SIGALRM, SIGIOT signals, and resend signals + others
        received signal: (SIGFPE)
        received signal: (SIGTERM)
        received signal: (SIGINT)

        Block rest of signals

        Change signal mask & wait until signal interrupts process
ERROR [line: 266] sigpause failed: Invalid argument

: Invalid argument


The problems seems to be related to this piece of code:

        /* Change the process signal mask:
         *
         * Now specifiy a new process signal mask to allow the SIGINT signal
         * to interrupt the process.  Thus by using sigpause (), force the
         * process to suspend execution until delivery of an unblocked
         * signal (SIGINT in this case).
         *
         * Additionally, verify that the SIGINT signal was received.
         */
        valid_sig [SIGINT] = 1;

        printf ("\n\tChange signal mask & wait until signal interrupts 
process\n");
        mask = 0xFFFF ^ SIGINT;
        if (sigpause (mask) != -1 || errno != 4)
                sys_error ("sigpause failed", __LINE__);

        if (valid_sig [SIGINT])
                error ("failed to receive SIGINT signal!", __LINE__);


`man sigpause` says there are 2 versions of this function: one considering a 
signal as parameter (afaik, the default model) and another using a mask. In 
this case, sigpause() uses this second version. I've already test it using 
SIGINT as parameter and it seemed OK. I've also tried to force to sigpause() to 
use a mask adding defines mentioned in manpage, without success. 

In addiction, the manpage also advices to don't use this function and use 
sigsuspend() instead. However, I'm not sure if substitute a focused system call 
(like sigpause() in this case) is reasonable for LTP testsuits. 

Would you please suggest what could be an acceptable solution for this issue?

Thanks in advance,

--
Edjunior

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to