Page MenuHomeFreeBSD

Remove atf_tc_skip calls from ptrace_test
ClosedPublic

Authored by arichardson on Feb 23 2021, 12:40 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Apr 23, 7:35 AM
Unknown Object (File)
Fri, Apr 19, 4:18 PM
Unknown Object (File)
Wed, Apr 17, 8:21 PM
Unknown Object (File)
Wed, Apr 17, 2:12 AM
Unknown Object (File)
Tue, Apr 16, 6:23 AM
Unknown Object (File)
Thu, Mar 28, 3:50 AM
Unknown Object (File)
Mar 15 2024, 4:11 PM
Unknown Object (File)
Mar 14 2024, 1:25 AM
Subscribers

Details

Summary

I've run this tests many times in a loop and it works reliably for me,
maybe it's time to retire these skips?
This also adds an additional waitpid to one of the tests to avoid
a potential race condition (suggested by markj@).

PR: 239397, 244056, 239425, 240510, 220841, 243605

Test Plan

works fine on QEMU.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 37385
Build 34274: arc lint + arc unit

Event Timeline

I believe we've seen cases where tests fail in CI but pass regularly when run locally; not sure if that's the case for these tests but if we do re-enable them in CI we will need to watch closely and be ready to disable them again.

I don't recall ever seeing these failures myself, so indeed, I suspect there's something particular to the CI environment that causes these tests to fail. I support re-enabling them to verify that that's the case though.

tests/sys/kern/ptrace_test.c
4222

This one does look like it could be flaky since there is no pipe() call to synchronized between parent and child, but otherwise they all seem like they shouldn't fail.

tests/sys/kern/ptrace_test.c
4222

You mean, the second child may attach before the first one has raised SIGSTOP?

tests/sys/kern/ptrace_test.c
4222

Yes, I think that could theoretically happen here.

I've never been able to reproduce the issues that CI previously reported for most of these. :(

tests/sys/kern/ptrace_test.c
4222

Shouldn't it be sufficient to add

waitpid(traced, &status, WSTOPPED);

before the fork() call?

arichardson marked 2 inline comments as done.

Add the suggested waitpid. All previously-skipped tests pass reliably for me.

This revision is now accepted and ready to land.Feb 26 2021, 2:19 PM