DHCP Server Fails When Forking

Jay Foster jay at systech.com
Mon Jan 6 22:39:48 UTC 2020


For now, I am working around this issue by telling dhcpd not to fork (-f 
option) and instead forking the shell (append ' &' to the command line).

On 1/6/2020 2:02 PM, Jay Foster wrote:
> 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
>
>
> _______________________________________________
> 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/f2803bf2/attachment.htm>


More information about the dhcp-users mailing list