ability to detect and restart stalled zone transfers
Description
Sometimes TCP connection can get stuck at very low throughput - network problem in remote locations etc. Low means > 0 througput, so transfer timeout does not kill it and it "never" finishes.
For context, this happens on global DNS backbone, which literally spans the globe. The problem is not caused by BIND, but by network along the path and TCP stacks not coping that great with it. I.e. essentially this is workaround for someone else's mess.
Request
First, implement #3883 (closed) Expose data about transfers
Then, this: Provide configuration knob which sets something like (lower bound of transfer rate in bytes, check frequency). Check running transfers periodically, and kill transfers if they are slower than configured limit. This should cause retry down the road.
Links / references
E.g. Red Hat package manager YUM has something like that. If download is too slow it reports error like:
Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds
I think this is a good mechanism as it removes need for alternative proposal: yet another rndc command to kill ongoing zone transfer. That is, good if we accept we should be solving this problem.