Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1510872 - samba 4.6.2-11.el7_4: unreliable winbindd start with Type=notify and double forking
Summary: samba 4.6.2-11.el7_4: unreliable winbindd start with Type=notify and double f...
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: samba
Version: 7.6-Alt
Hardware: All
OS: Linux
Target Milestone: rc
: ---
Assignee: Andreas Schneider
QA Contact: Andrej Dzilský
Depends On:
Blocks: 1686048
TreeView+ depends on / blocked
Reported: 2017-11-08 11:15 UTC by Alexey Dobriyan
Modified: 2019-03-06 15:32 UTC (History)
10 users (show)

Fixed In Version: samba-4.7.1-4.el7
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1686048 (view as bug list)
Last Closed: 2018-04-10 17:30:15 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2018:0937 None None None 2018-04-10 17:31:04 UTC
Samba Project 13129 None None None 2019-04-11 08:58:52 UTC

Description Alexey Dobriyan 2017-11-08 11:15:31 UTC
Description of problem:

winbindd is shipped with the following .service file:

    ExecStart=/usr/sbin/winbindd "$WINBINDOPTIONS"

Default WINBINDOPTIONS are empty string.

Internally winbindd does double fork and notifies systemd about main process
PID change at lib/util/become_daemon.c:become_daemon()

Apparently this confuses systemd as Type=notify daemons aren't supposed to double fork.

We got report from user which reboots system often and every once in a while winbindd doesn't actually start despite reporting OK status. Manual restart fixes the problem.

We got confirmation that using

    WINBINDOPTIONS="-F --no-process-group"

(and deleting PIDFile line for a good measure) makes winbindd startup reliable.

Version-Release number of selected component (if applicable):
et al

How reproducible:

Steps to Reproduce:
1. reboot machine until winbindd doesn't start

Actual results:

Expected results:
winbindd starts 100% reliably

Additional info:

Comment 2 Alexey Dobriyan 2017-11-08 11:21:00 UTC
smbd and nmbd should have the same problem as they call into become_daemon() as well.

Comment 3 Alexey Dobriyan 2017-11-08 11:22:21 UTC
> Additional info:

What happens is that systemd sends spurious SIGTERM in the middle of daemon start.

Comment 6 Andrej Dzilský 2017-12-18 13:55:21 UTC
This rare bug is Hard to even reproduce nor test. Sanity Only.

Comment 10 errata-xmlrpc 2018-04-10 17:30:15 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

Note You need to log in before you can comment on or make changes to this bug.