gramine icon indicating copy to clipboard operation
gramine copied to clipboard

LTP parser doesn't consider standard error output to determine test pass/fail

Open jinengandhi-intel opened this issue 3 years ago • 3 comments

Description of the problem

Current LTP parser doesn't consider output from standard error and hence any error messages over there are completely ignored.

https://github.com/gramineproject/gramine/blob/master/LibOS/shim/test/ltp/test_ltp.py#L117

For ex: erorr message in standard error for waitpid03 was not considered and the test was reported as a PASS. https://localhost:8080/job/graphene-20.04/2260/testReport/LibOS.shim.test.ltp/test_ltp/test_direct___test_ltp_waitpid03_/

<testcase classname="LibOS.shim.test.ltp.test_ltp" file="LibOS/shim/test/ltp/test_ltp.py" line="185" name="test_ltp[waitpid03]" time="0.129">
<system-out>
waitpid03    1  TPASS  :  Got correct child PID
waitpid03    2  TPASS  :  Condition 2 test passed
</system-out>
<system-err>[P23:T23:waitpid03] error: Sending IPC process-exit notification failed: -13
</system-err>
</testcase>

Steps to reproduce

Expected results

Actual results

Gramine commit hash

jinengandhi-intel avatar Feb 21 '22 10:02 jinengandhi-intel

What's the issue here? Why would writing anything to stderr be considered an error? Debug logging is often done this way. Also this seems like https://github.com/gramineproject/gramine/issues/21 and in this case it's benign issue.

For ex: erorr message in standard error for waitpid03 was not considered and the test was reported as a PASS.

This test passed correctly, it's Gramine which could not exit the child process cleanly (see #21) for details.

boryspoplawski avatar Feb 21 '22 19:02 boryspoplawski

What's the issue here? Why would writing anything to stderr be considered an error? Debug logging is often done this way.

@boryspoplawski in my past experience you would want to check for unexpected messages in the stderr, they may not be impacting the workload (in certain cases) but still good to keep an eye out. We have discovered several issues with Gramine itself using this approach in our local CI. Even the IPC error, no matter how benign, it's still an issue with Gramine and something that is not caught by the opensource CI right now. We will continue to parse the stderr in our local CI. Michal asked me to file this bug, you can check with him and if it's not relevant then feel free to close the issue.

This test passed correctly, it's Gramine which could not exit the child process cleanly

Yes, I know this. I just wanted to update the bug with the latest status. Not asking to debug.

jinengandhi-intel avatar Feb 22 '22 03:02 jinengandhi-intel

From my side: IMO it would be good to parse and catch such error messages in case they for some reason won't get reflected in the exit status. But this particular message would need to be somehow whitelisted then, as it's a known but benign bug.

mkow avatar Feb 22 '22 12:02 mkow