envoy-preflight
envoy-preflight copied to clipboard
Go runtime Signal 23 (SIGURG) before child process is running causes preflight to silently exit
The Go runtime scheduling uses signal 23 (SIGURG) since Go 1.14 (see 24543-non-cooperative-preemption.md). Because the Go runtime does not know if the process expects external SIGURG signals, the signal is not filtered out from signal.Notify, but always reported to the process (see https://github.com/golang/go/issues/37942 for discussion). Preflight should filter this signal out itself before forwarding and when the child process isn't up yet it should also not exit when it is received.
https://github.com/monzo/envoy-preflight/blob/eb1500e0b9be57d0cfd6468922ed2ef1025c869d/main.go#L46-L53