DHCP Server Fails When Forking

Jay Foster jay at systech.com
Mon Jan 6 22:02:06 UTC 2020


dhcpd is running as root whether or not it forks (evidenced by ps). I do 
not see how forking or not forking has any bearing on permissions.  
dhcpd does not report any errors writing the leases file (daemon.info 
dhcpd: Wrote 1 leases to leases file.).

For grins, I chown dhcp:dhcp both the leases file and .conf file. Makes 
no difference.  Also tried adding '-user dhcp -group dhcp'. Also makes 
no difference.

There is no evidence of any kind of a permissions issue.  strace shows 
that dhcpd creates 3 child processes via clone(2).  These processes seem 
to be associated with the dhcp_context_create(), omapi_init(), etc. 
function calls.  In the forking case, these get terminated along with 
the parent process after the fork(2), but obviously do not when not 
forking.  That is the only difference that I see between the forking and 
non-forking invocations.

On 1/6/2020 1:49 PM, Christopher Barry wrote:
> Generally, when backgrounded, dhcpd runs with reduced privs, e.g. as 
> dhcpd:dhcpd (your configured user/group may be different). Can you su 
> as that user and run dhcpd in the foreground? I'm suspecting that user 
> may not have write perms to the leases file.
>
>
> On Mon, Jan 6, 2020, 4:15 PM Jay Foster <jay at systech.com 
> <mailto:jay at systech.com>> wrote:
>
>     Can you be more specific?  /usr/sbin/dhcpd is root:root. 
>     /usr/sbin/dhcpd is being run as root.
>
>     On 1/6/2020 12:58 PM, Christopher Barry wrote:
>>     Make sure user/group perms are valid.
>>
>>
>>     On Mon, Jan 6, 2020, 1:42 PM Jay Foster <jay at systech.com
>>     <mailto:jay at systech.com>> wrote:
>>
>>         I am using the ISC DHCP server (dhcpd) version 4.3.6 from a
>>         rocko Yocto
>>         build.  When dhcpd is started without the '-f' or '-d'
>>         options (forks to
>>         the background) it does not work.  DHCP DISCOVER requests are
>>         sent, but
>>         the dhcpd application does not respond.  I can attach strace
>>         to the
>>         dhcpd process and see that dhcpd just sleeps in an futex() call.
>>
>>         If I start dhcpd with either the '-f' or '-d' options so it
>>         does not
>>         fork, then it works properly.
>>
>>         I have run dhcpd (both forking and non forking) using strace
>>         to see if I
>>         could spot any differences.  The only thing I notice is that
>>         when
>>         forking, the parent process terminates (expected) along with
>>         3 other
>>         child processes/threads.  It looks like these other threads
>>         are supposed
>>         to handle the ISC tasks/messages, but are not cloned by the
>>         fork and are
>>         not present after forking.
>>
>>         For reference, with an older version of ISC DHCP server
>>         (4.1.1-P1) on an
>>         older product, this problem does not occur.
>>
>>         Any ideas where to look?
>>
>>
>>
>>
>>
>>         _______________________________________________
>>         dhcp-users mailing list
>>         dhcp-users at lists.isc.org <mailto:dhcp-users at lists.isc.org>
>>         https://lists.isc.org/mailman/listinfo/dhcp-users
>>
>>
>>     _______________________________________________
>>     dhcp-users mailing list
>>     dhcp-users at lists.isc.org  <mailto:dhcp-users at lists.isc.org>
>>     https://lists.isc.org/mailman/listinfo/dhcp-users
>
>
> _______________________________________________
> dhcp-users mailing list
> dhcp-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/dhcp-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/dhcp-users/attachments/20200106/6fcccb68/attachment.htm>


More information about the dhcp-users mailing list