mcuadros / go-syslog

Syslog server library for go.
http://godoc.org/gopkg.in/mcuadros/go-syslog.v2
MIT License
523 stars 143 forks source link

Ensure server does not panic when Kill is called #55

Open liron-l opened 5 years ago

liron-l commented 5 years ago

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