assert in process_fd in libisc
There's an issue reported on Ubuntu [1] that ISC DHCP aborts on assert. But bear with me before you yell "get off my lawn then!". The exact backtrace reported is in [1]. There apparently seems to be a race condition that after a while leads to an assert in sock->pending_send called in process_fd in libisc. This was reported to ISC as [2] and [3]. @tmark looked at the issue and found out that one way to solve the problem is to build libisc with threads disabled. However, Ubuntu folks decided to go another route. They developed a patch for this problem [5] and that fix has been confirmed to solving their specific problem.
I'm opening this ticket to make sure the BIND team is aware of this problem and its potential solution. To be clear, if you decide it's not worth fixing, we can live without that fine.
The original report and patch is for bind 9.11.16, but I just checked that the code where assert blows up seems to be the same in 9.11.22.
References:
- [1] Ubuntu report (backtrace, patch and discussion): https://bugs.launchpad.net/dhcp/+bug/1872118
- [2] DHCP report #1 for Ubuntu: dhcp#121
- [3] DHCP report #2 for Ubuntu: dhcp#128
- [4] DHCP report from Yocto users: https://gitlab.isc.org/isc-projects/dhcp/-/issues/110
- [5] patch: https://bugs.launchpad.net/dhcp/+bug/1872118/comments/46