Skip to content

v0.16.171

Choose a tag to compare

@zalando-robot zalando-robot released this 08 Aug 09:18
fa84c77

Changes

queuelistener: fix testListener goroutine leak (#2506)
Queuelistener continously calls Accept on the testListener which keeps
a buffer of last accepted testConnections in the conns channel.
The test code races to receive from the same channel so Accept goroutine
may occasionally block receiving from the empty channel which would be
detected by goroutine leak detector introduced by the #2499.
The problem could be reproduced e.g. by running:

GODEBUG=tracebackancestors=10 go test ./queuelistener/ -run=TestTeardown/connections_accepted_from_the_wrapped_listener_closed_after_tear_down -count=1000
noleak: 1 active
goroutine 2655 [chan receive]:
github.com/zalando/skipper/queuelistener.(*testListener).Accept(0xc0000e7830)
...

This change avoids blocking Accept on potentially empty channel.

Docker image

Docker image is available in Zalando's Open Source registry:

docker run -it registry.opensource.zalan.do/teapot/skipper:v0.16.171 skipper --help
# arm64
docker run -it registry.opensource.zalan.do/teapot/skipper-arm64:v0.16.171 skipper --help
# arm v7 32bit
docker run -it registry.opensource.zalan.do/teapot/skipper-armv7:v0.16.171 skipper --help