core: reduce chance of Latch.read()/write()/close() race.
Previously it was possible for a thread to call Waker.defer() after Broker has torns its Waker down, and the underlying file descriptor reallocated by the OS to some other component. This manifested as latches of a subsequent test invocation receiving the waker byte (' ') rather than their expected byte '\x7f'. This doesn't fix the problem, it just significantly reduces the chance of it occurring. In future Side.write()/read()/close() must be synchronized with a lock. Previously the problem could be reliably triggered with: while :; do python tests/call_function_test.py -vf CallFunctionTest.{test_aborted_on_local_broker_shutdown,test_aborted_on_local_context_disconnect} donepull/295/head
parent
3e48f95439
commit
ff2f44b046
Loading…
Reference in New Issue