[9.16] Detach the views in zone_shutdown(), not in zone_free()
The .view (and possibly .prev_view) would be kept attached to the
removed zone until the zone is fully removed from the memory in
zone_free(). If this process is delayed because server is busy
something else like doing constant rndc reconfig
, it could take
seconds to detach the view, possibly keeping multiple dead views in the
memory. This could quickly lead to a massive memory bloat.
Release the views early in the zone_shutdown() call, and don't wait until the zone is freed.
(cherry picked from commit 13bb8212)
Closes #3801 (closed)
Backport of MR !7382 (merged)
Edited by Ondřej Surý