The datagram channel is closed without synchronization, thus the reading
routine is exposed to a race condition that crashes the channel. As the
crash is sporadic, it's not easily reproducible in test, but sending
multiple packets during shutdown causes the crash.
The datagram channel is closed without synchronization, thus the reading routine is exposed to a race condition that crashes the channel. As the crash is sporadic, it's not easily reproducible in test, but sending multiple packets during shutdown causes the crash.
An alternative solution is do synchronize using a done channel: https://blog.golang.org/pipelines
Signed-off-by: liron liron@twistlock.com