The dns_zone_catz_enable_db() and dns_zone_catz_disable_db() functions can race with similar operations in the catz module because there is no synchronization between the threads. Add catz functions which use the view's catalog zones' lock when registering/unregistering the database update notify callback, and use those functions in the dns_zone module, instead of doing it directly.