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

Summary: samba 4.6.2-11.el7_4: unreliable winbindd start with Type=notify and double forking
Product: Red Hat Enterprise Linux 7 Reporter: Alexey Dobriyan <adobriyan>
Component: sambaAssignee: Andreas Schneider <asn>
Status: CLOSED ERRATA QA Contact: Andrej Dzilský <adzilsky>
Severity: unspecified Docs Contact:
Priority: high    
Version: 7.6-AltCC: adzilsky, asn, gdeschner, ian.donaldson, jrivera, lmiksik, peter.clark, rhack, toneata, tscherf
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: samba-4.7.1-4.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1686048 (view as bug list) Environment:
Last Closed: 2018-04-10 17:30:15 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 1686048    

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

winbindd is shipped with the following .service file:

    Type=notify
    PIDFile=/run/winbindd.pid
    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):
samba-4.6.2-11.el7_4.src.rpm
et al




How reproducible:
rarely


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.

https://access.redhat.com/errata/RHBA-2018:0937