Skip to content

control-C sometimes getting missed on Windows #119

@njsmith

Description

@njsmith

We're getting occasional failures on appveyor, that look like:

\trio\_core\tests\test_ki.py::test_ki_is_good_neighbor PASSED
..\trio\_core\tests\test_ki.py::test_ki_wakes_us_up 
[... coverage info ...]
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
to show a full traceback on KeyboardInterrupt use --fulltrace
C:\projects\trio\trio\_core\_run.py:1136: KeyboardInterrupt
==================== 14 passed, 1 skipped in 23.20 seconds ====================

(source)

This is a test that delivers a synthetic SIGINT while the trio thread is sleeping, to make sure that the KeyboardInterrupt gets delivered promptly.

_run.py:1136 is the raise KeyboardInterrupt at the end of run() – the one that checks ki.pending one last time as run is exiting.

Given the time report at the end, it looks like the await sleep(20) in test_ki_wakes_us_up may be expiring? And that's the only checkpoint in the test, so if we somehow aren't being woken up by the signal arriving, but the signal is in fact arriving, then this would make sense.

...how can this be happening though? I'm really not sure :-(. May need to push some instrumented builds in a PR and keep rebuilding them on appveyor until I get failures...

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions