Bug 1467395

Summary: Winbind does not close sockets and eventually hits clients limit
Product: Red Hat Enterprise Linux 6 Reporter: Daniele <dconsoli>
Component: sambaAssignee: Andreas Schneider <asn>
Status: CLOSED ERRATA QA Contact: qe-baseos-daemons
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.9CC: asn, dwojewod, gdeschner, jarrpa, rhack
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: samba-3.6.23-44.el6 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-06-19 05:08:55 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1504542    

Description Daniele 2017-07-03 15:57:49 UTC
Reporting Customer: Motorola
TAM Account: YES

Description of problem:
winbind seems to be leaving sockets open and eventually hitting clients limit, ending up in dumping a lot of text in the log files, affecting machine performance to the point that it might not responds to the console anymore.

Here's the problem as described by the customer:

====

I understand that actual root cause is that (for unknown reason) winbind __does not close sockets__
Here what scenario looks like (on actual production system, as mentioned before we are not able to reproduce it):

At some point in time following messages appears (this looks like random, no apparent issues are reported by OS before):
May  1 11:03:27 zc01.zone1 winbindd[5556]: [2017/05/01 11:03:27.380063,  0] winbindd/winbindd.c:975(winbindd_listen_fde_handler)
May  1 11:03:27 zc01.zone1 winbindd[5556]:   winbindd: Exceeding 200 client connections, no idle connection found
May  1 11:03:27 zc01.zone1 winbindd[5556]: [2017/05/01 11:03:27.388117,  0] winbindd/winbindd.c:975(winbindd_listen_fde_handler)
May  1 11:03:27 zc01.zone1 winbindd[5556]:   winbindd: Exceeding 200 client connections, no idle connection found
May  1 11:03:32 zc01.zone1 winbindd[5556]: [2017/05/01 11:03:32.119143,  0] winbindd/winbindd.c:975(winbindd_listen_fde_handler)
May  1 11:03:32 zc01.zone1 winbindd[5556]:   winbindd: Exceeding 200 client connections, no idle connection found
May  1 11:03:32 zc01.zone1 winbindd[5556]: [2017/05/01 11:03:32.119528,  0] winbindd/winbindd.c:975(winbindd_listen_fde_handler)
May  1 11:03:32 zc01.zone1 winbindd[5556]:   winbindd: Exceeding 200 client connections, no idle connection found
(...)
Winbind will stay at this state for some time, but after an hour or so process runs out of descriptors and message flood begins (this means like 10000+ entries/s), with following logs:

May  1 12:19:31 zc01.zone1 winbindd[5556]:   winbindd: Exceeding 200 client connections, no idle connection found
May  1 12:19:32 zc01.zone1 winbindd[5556]: [2017/05/01 12:19:32.468367,  0] winbindd/winbindd.c:975(winbindd_listen_fde_handler)
May  1 12:19:32 zc01.zone1 winbindd[5556]:   winbindd: Exceeding 200 client connections, no idle connection found
May  1 12:19:32 zc01.zone1 winbindd[5556]: [2017/05/01 12:19:32.468437,  0] winbindd/winbindd.c:817(new_connection)
May  1 12:19:32 zc01.zone1 winbindd[5556]:   Faild to accept socket - Too many open files
May  1 12:19:32 zc01.zone1 winbindd[5556]: [2017/05/01 12:19:32.468608,  0] winbindd/winbindd.c:975(winbindd_listen_fde_handler)
May  1 12:19:32 zc01.zone1 winbindd[5556]:   winbindd: Exceeding 200 client connections, no idle connection found
May  1 12:19:32 zc01.zone1 winbindd[5556]: [2017/05/01 12:19:32.468630,  0] winbindd/winbindd.c:817(new_connection)
May  1 12:19:32 zc01.zone1 winbindd[5556]:   Faild to accept socket - Too many open files
May  1 12:19:32 zc01.zone1 winbindd[5556]: [2017/05/01 12:19:32.468685,  0] winbindd/winbindd.c:975(winbindd_listen_fde_handler)
May  1 12:19:32 zc01.zone1 winbindd[5556]:   winbindd: Exceeding 200 client connections, no idle connection found
May  1 12:19:32 zc01.zone1 winbindd[5556]: [2017/05/01 12:19:32.468704,  0] winbindd/winbindd.c:817(new_connection)
May  1 12:19:32 zc01.zone1 winbindd[5556]:   Faild to accept socket - Too many open files

This of course provides huge impact on I/O, /var/log gets full in the matter of minutes and process itself eating up CPU making server so busy it's impossible to login on console or ssh. To recover the server you need to power-cycle & do some clean up on /var/log.

We would expect that "winbind request timeout" is backported to samba-winbind-3.6 as per https://attachments.samba.org/attachment.cgi?id=10128
 and https://bugzilla.samba.org/show_bug.cgi?id=3204

===


While the customer understands that RHEL6 is late into its production cycle and a backport might not be possible, they expect us to at least provide them with a supported workaround that inhibits the spam in the logs and therefore protects the machine from being impacted.

Comment 4 Andreas Schneider 2017-07-18 09:14:01 UTC
*** Bug 1467832 has been marked as a duplicate of this bug. ***

Comment 9 errata-xmlrpc 2018-06-19 05:08:55 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/RHSA-2018:1860