You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The reason for this is somewhat difficult to explain.
For many months now, we've had a regression in RHEL CI
where Python would have a segmentation fault during the
run of flake8 in the ros2cli package. After a bunch of
local debugging, I found that there is some crash in
Fast-DDS teardown. Specifically, sometimes it is attempting
to join on a thread where the backing memory has already
been erased somehow. Despite a lot of debugging, and the
use of asan and valgrind, I have not been able to find
what is removing that memory before the join happens.
What does this have to do with flake8? pytest runs all tests
within the same process, and in alphabetical order. So it
turns out that the cleanup from the test_direct.py and test_daemon.py
tests was being delayed enough that the Python interpreter
garbage collector wouldn't actually delete it until flake8
started to run.
By rearranging things like this, we ensure that flake8 runs
before the daemon and the direct tests. I want to emphasize
that this is a *workaround*; there is still a bug here somewhere.
But this should at least get RHEL back to green for now.
Signed-off-by: Chris Lalancette <[email protected]>
0 commit comments