I believe I got a vague feeling about what is going wrong. So the isc
library which now is shared for bind9 and dhcp is compiled (because
bind9 is rather wanted that way) with threads enabled. Before that the
export version of the library was not. So an isc_app which dhclient
creates and runs was more or less a loop handling events. Now this
creates a series of threads.

The problem looks to be that dhclient (and probably dhcpd, too) set up
the isc_app context and then do a fork() (in daemon mode). The man page
of fork() clearly states that the child will be single threaded. So when
dhclient calls dispatch() to run the isc_app this probably only runs a
single control loop more or less waiting for the threads (which do not
run, maybe not even exist anymore) to do the work.

The signal handling might be related to that as well. With threads only
one of them should handle signals and somehow synchronize with the rest.
Maybe the new library is not handling that correctly. Since this does
not work regardless of running as daemon or not. But I have not
understood all the details there.

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to bind9 in Ubuntu.
https://bugs.launchpad.net/bugs/1551351

Title:
  dhclient does not renew leases

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/bind9/+bug/1551351/+subscriptions

-- 
Ubuntu-server-bugs mailing list
Ubuntu-server-bugs@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs

Reply via email to