-
Notifications
You must be signed in to change notification settings - Fork 976
Description
- Program: Authoritative
- Issue type: Feature request
Description
We have some customers running PowerDNS on k8s-managed containers, running pdnsutil zone list on the container and processing that output locally using a piped command.
Unfortunately, k8s (or the generally advised commands to run processes on the container and get their standard output) does not implement pipe semantics correctly, and if the piped command terminates early (e.g. a head command) and closes its standard input, the pdnsutil process in the container gets stuck sleeping after filing the pipe buffer, waiting for readers which no longer exist.
If the zone being listed is hosted on lmdb, this causes a read transaction on the lmdb side to get stuck until the pdnsutil process is manually killed.
It would be nice, if the pdnsutil zone list output is not a tty, to have an optional flag enabling a timeout check, and abort gracefully if the pipe buffer remains full for N seconds.