Closed Hook25 closed 3 weeks ago
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 44.06%. Comparing base (
8597b08
) to head (16f0f07
). Report is 3 commits behind head on main.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Description
When the timeout decorator is used to time out the bluetooth test, the process seems to hang forever after raising an exception. The reason is that the exception is a custom un-picklable exception, so the decorator is unable to propagate it up, crashing silently (as it is doing so in a separate thread) when trying to push it (as we were using a Queue and not a SimpleQueue). Subsequently the other process detects that the child is dead but not finding anything in the exception queue (as the child died while trying to push to it) it hangs waiting for a result forever. This tests and fixes this issue (note that removing the fix, the test will fail 100% of the times)
Resolved issues
Fixes: CHECKBOX-1449 Fixes: https://github.com/canonical/checkbox/issues/1263
Documentation
Added comments to explain what is going on and why things are done the way they are
Tests
This adds 2 test cases for this new situation
Also tested on device: Reproduce:
Fix it live: