Bind 9.12.2-P2 - RPZ Issues in ht.c and rpz.c
Upon updating from 9.12.2-P1 to 9.12.2-P2 we began experiencing core dumps due to assertions. On servers running Ubuntu 16, we saw this issue in the logs:
21-Sep-2018 22:20:16.750 general: critical: ht.c:162: REQUIRE((__builtin_expect(!!((ht) != ((void *)0)), 1) && __builtin_expect(!!(((const isc__magic_t *)(ht))->magic == ((('H') << 24 | ('T') << 16 | ('a') << 8 | ('b')))), 1))) failed, back trace
21-Sep-2018 22:20:16.750 general: critical: #0 0x42d890 in assertion_failed()+0x60
21-Sep-2018 22:20:16.750 general: critical: #1 0x60e98a in isc_assertion_failed()+0xa
21-Sep-2018 22:20:16.750 general: critical: #2 0x614c8a in isc_ht_find()+0xca
21-Sep-2018 22:20:16.750 general: critical: #3 0x57c5b6 in update_quantum()+0x2f6
21-Sep-2018 22:20:16.750 general: critical: #4 0x633e17 in run()+0x2f7
21-Sep-2018 22:20:16.750 general: critical: #5 0x7f14d657d6ba in __do_global_dtors_aux_fini_array_entry()+0x7f14d5c749ca
21-Sep-2018 22:20:16.750 general: critical: #6 0x7f14d5ef841d in __do_global_dtors_aux_fini_array_entry()+0x7f14d55ef72d
21-Sep-2018 22:20:16.750 general: critical: exiting (due to assertion failure)
On an Ubuntu 18 servers, similar issues (assertion followed by core dump):
21-Sep-2018 08:02:07.072 general: critical: rpz.c:2199: REQUIRE(rpz != ((void *)0)) failed, back trace
21-Sep-2018 08:02:07.072 general: critical: #0 0x56394a751390 in __do_global_dtors_aux_fini_array_entry()+0x56394a21af58
21-Sep-2018 08:02:07.072 general: critical: #1 0x56394a93802a in __do_global_dtors_aux_fini_array_entry()+0x56394a401bf2
21-Sep-2018 08:02:07.072 general: critical: #2 0x56394a8a3b02 in __do_global_dtors_aux_fini_array_entry()+0x56394a36d6ca
21-Sep-2018 08:02:07.072 general: critical: #3 0x56394a8a40b4 in __do_global_dtors_aux_fini_array_entry()+0x56394a36dc7c
21-Sep-2018 08:02:07.072 general: critical: #4 0x56394a95d169 in __do_global_dtors_aux_fini_array_entry()+0x56394a426d31
21-Sep-2018 08:02:07.072 general: critical: #5 0x7f859995d6db in __do_global_dtors_aux_fini_array_entry()+0x7f85994272a3
21-Sep-2018 08:02:07.072 general: critical: #6 0x7f85992c588f in __do_global_dtors_aux_fini_array_entry()+0x7f8598d8f457
21-Sep-2018 08:02:07.072 general: critical: exiting (due to assertion failure)
Both of these servers have RPZ enabled and it appears that the assertions occurred while loading zone files.
Short term "fix" is to move back to 9.12.2-P1.