mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-26 03:12:16 -04:00
I was truncating zone files for experimental purposes when I found that `named-compilezone | head` got stuck. The full command line that exhibited the problem was: dig axfr dotat.at | named-compilezone -o /dev/stdout dotat.at /dev/stdin | head This requires a large enough zone to exhibit the problem, more than about 70000 bytes of plain text output from named-compilezone. I was running the command on Debian Stretch amd64. This was puzzling since it looked like something was suppressing the SIGPIPE. I used `strace` to examine what was happening at the hang. The program was just calling write() a lot to print the zone file, and the last write() hanged until I sent it a SIGINT. During some discussion with friends, Ian Jackson guessed that opening /dev/stdout O_RDRW might be the problem, and after some tests we found that this does in fact suppress SIGPIPE. Since `named-compilezone` only needs to write to its output file, the fix is to omit the stdio "+" update flag. |
||
|---|---|---|
| .. | ||
| check | ||
| confgen | ||
| delv | ||
| dig | ||
| dnssec | ||
| named | ||
| nsupdate | ||
| pkcs11 | ||
| plugins | ||
| python | ||
| rndc | ||
| tests | ||
| tools | ||
| win32/BINDInstall | ||
| Makefile.in | ||