Bug 1344657
| Summary: | The AD keytab renewal task leaks a file descriptor | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Marcel Kolaja <mkolaja> |
| Component: | sssd | Assignee: | SSSD Maintainers <sssd-maint> |
| Status: | CLOSED ERRATA | QA Contact: | Steeve Goveas <sgoveas> |
| Severity: | urgent | Docs Contact: | |
| Priority: | urgent | ||
| Version: | 6.0 | CC: | ekeck, enewland, grajaiya, jhrozek, lslebodn, mkolaja, mkosek, mniranja, mzidek, pbrezina, sgoveas, sssd-maint |
| Target Milestone: | rc | Keywords: | ZStream |
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Fixed In Version: | sssd-1.13.3-22.el6_8.3 | Doc Type: | Bug Fix |
| Doc Text: |
Every execution of the keytab renewal task previously leaked a file descriptor, which eventually exhausted system resources. Now, the AD provider properly closes both ends of the two-way pipe opened to communicate with the helper adcli process. Running the keytab renewal task no longer allocates new system resources.
|
Story Points: | --- |
| Clone Of: | 1340176 | Environment: | |
| Last Closed: | 2016-07-12 18:36:23 UTC | Type: | --- |
| 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: | 1340176 | ||
| Bug Blocks: | |||
|
Description
Marcel Kolaja
2016-06-10 09:25:17 UTC
Versions: ======== Red Hat Enterprise Linux Client release 6.8 (Santiago) sssd-common-1.13.3-22.el6.x86_64 sssd-ipa-1.13.3-22.el6.x86_64 sssd-1.13.3-22.el6.x86_64 sssd-client-1.13.3-22.el6.x86_64 python-sssdconfig-1.13.3-22.el6.noarch sssd-krb5-common-1.13.3-22.el6.x86_64 sssd-ad-1.13.3-22.el6.x86_64 sssd-ldap-1.13.3-22.el6.x86_64 sssd-proxy-1.13.3-22.el6.x86_64 sssd-common-pac-1.13.3-22.el6.x86_64 sssd-krb5-1.13.3-22.el6.x86_64 Steps to reproduce: 1. Join the system to Windows Active Directory $net ads join -U Administrator%Secret123 -k Using short domain name -- SSSDAD2012R2 Joined 'VM-IDM-003' to dns domain 'sssdad2012r2.com' DNS Update for vm-idm-003.lab.eng.pnq.redhat.com failed: ERROR_DNS_GSS_ERROR DNS update failed! [root@vm-idm-003 samba]# klist -k /etc/krb5.keytab Keytab name: FILE:/etc/krb5.keytab KVNO Principal ---- -------------------------------------------------------------------------- 2 host/vm-idm-003.lab.eng.pnq.redhat.com 2 host/vm-idm-003.lab.eng.pnq.redhat.com 2 host/vm-idm-003.lab.eng.pnq.redhat.com 2 host/vm-idm-003.lab.eng.pnq.redhat.com 2 host/vm-idm-003.lab.eng.pnq.redhat.com 2 host/vm-idm-003 2 host/vm-idm-003 2 host/vm-idm-003 2 host/vm-idm-003 2 host/vm-idm-003 2 VM-IDM-003$@SSSDAD2012R2.COM 2 VM-IDM-003$@SSSDAD2012R2.COM 2 VM-IDM-003$@SSSDAD2012R2.COM 2 VM-IDM-003$@SSSDAD2012R2.COM 2 VM-IDM-003$@SSSDAD2012R2.COM 2. Configure sssd.conf as below: [sssd] config_file_version = 2 domains = sssdad2012r2.com services = nss, pam [domain/sssdad2012r2.com] id_provider = ad auth_provider = ad access_provider = ad fallback_homedir = /home/%d/%u use_fully_qualified_names = True ad_machine_account_password_renewal_opts = 10:15 debug_level = 9 3. start sssd process Before adcli is called for password renewal [root@vm-idm-003 fd]# ls -ltr | wc -l 24 [root@vm-idm-003 fd]# date Mon Jul 4 14:19:40 IST 2016 [root@vm-idm-003 fd]# ls -ltr total 0 lrwx------. 1 root root 64 Jul 4 14:19 9 -> /var/lib/sss/db/config.ldb l-wx------. 1 root root 64 Jul 4 14:19 8 -> pipe:[23791] lr-x------. 1 root root 64 Jul 4 14:19 7 -> pipe:[23791] lrwx------. 1 root root 64 Jul 4 14:19 6 -> [eventpoll] l-wx------. 1 root root 64 Jul 4 14:19 5 -> pipe:[23798] lr-x------. 1 root root 64 Jul 4 14:19 4 -> pipe:[23798] lrwx------. 1 root root 64 Jul 4 14:19 3 -> [eventpoll] l-wx------. 1 root root 64 Jul 4 14:19 25 -> pipe:[24038] l-wx------. 1 root root 64 Jul 4 14:19 24 -> pipe:[23989] lrwx------. 1 root root 64 Jul 4 14:19 21 -> socket:[23849] lrwx------. 1 root root 64 Jul 4 14:19 2 -> /dev/null lrwx------. 1 root root 64 Jul 4 14:19 19 -> socket:[23836] lrwx------. 1 root root 64 Jul 4 14:19 18 -> socket:[23828] l-wx------. 1 root root 64 Jul 4 14:19 17 -> /var/log/sssd/krb5_child.log l-wx------. 1 root root 64 Jul 4 14:19 16 -> /var/log/sssd/ldap_child.log lrwx------. 1 root root 64 Jul 4 14:19 15 -> socket:[23805] lrwx------. 1 root root 64 Jul 4 14:19 14 -> socket:[23801] lrwx------. 1 root root 64 Jul 4 14:19 13 -> /var/lib/sss/db/cache_sssdad2012r2.com.ldb lrwx------. 1 root root 64 Jul 4 14:19 12 -> [eventpoll] l-wx------. 1 root root 64 Jul 4 14:19 11 -> /var/log/sssd/sssd_sssdad2012r2.com.log lr-x------. 1 root root 64 Jul 4 14:19 10 -> inotify lrwx------. 1 root root 64 Jul 4 14:19 1 -> /dev/null lrwx------. 1 root root 64 Jul 4 14:19 0 -> /dev/null 4. After every 10 seconds, the number of pipes created incresaes root@vm-idm-003 fd]# ll total 0 lrwx------. 1 root root 64 Jul 4 14:19 0 -> /dev/null lrwx------. 1 root root 64 Jul 4 14:19 1 -> /dev/null lr-x------. 1 root root 64 Jul 4 14:19 10 -> inotify l-wx------. 1 root root 64 Jul 4 14:19 11 -> /var/log/sssd/sssd_sssdad2012r2.com.log lrwx------. 1 root root 64 Jul 4 14:19 12 -> [eventpoll] lrwx------. 1 root root 64 Jul 4 14:19 13 -> /var/lib/sss/db/cache_sssdad2012r2.com.ldb lrwx------. 1 root root 64 Jul 4 14:19 14 -> socket:[23801] lrwx------. 1 root root 64 Jul 4 14:19 15 -> socket:[23805] l-wx------. 1 root root 64 Jul 4 14:19 16 -> /var/log/sssd/ldap_child.log l-wx------. 1 root root 64 Jul 4 14:19 17 -> /var/log/sssd/krb5_child.log lrwx------. 1 root root 64 Jul 4 14:19 18 -> socket:[23828] lrwx------. 1 root root 64 Jul 4 14:19 19 -> socket:[23836] lrwx------. 1 root root 64 Jul 4 14:19 2 -> /dev/null lrwx------. 1 root root 64 Jul 4 14:19 21 -> socket:[23849] l-wx------. 1 root root 64 Jul 4 14:19 24 -> pipe:[23989] l-wx------. 1 root root 64 Jul 4 14:19 25 -> pipe:[24038] l-wx------. 1 root root 64 Jul 4 14:20 26 -> pipe:[24189] l-wx------. 1 root root 64 Jul 4 14:20 27 -> pipe:[24228] l-wx------. 1 root root 64 Jul 4 14:20 28 -> pipe:[24265] l-wx------. 1 root root 64 Jul 4 14:20 29 -> pipe:[24330] lrwx------. 1 root root 64 Jul 4 14:19 3 -> [eventpoll] l-wx------. 1 root root 64 Jul 4 14:20 30 -> pipe:[24387] l-wx------. 1 root root 64 Jul 4 14:20 31 -> pipe:[24444] l-wx------. 1 root root 64 Jul 4 14:21 32 -> pipe:[24490] l-wx------. 1 root root 64 Jul 4 14:21 33 -> pipe:[24537] l-wx------. 1 root root 64 Jul 4 14:21 34 -> pipe:[24576] l-wx------. 1 root root 64 Jul 4 14:21 35 -> pipe:[24623] l-wx------. 1 root root 64 Jul 4 14:21 36 -> pipe:[24703] l-wx------. 1 root root 64 Jul 4 14:21 37 -> pipe:[24906] l-wx------. 1 root root 64 Jul 4 14:21 38 -> pipe:[24968] l-wx------. 1 root root 64 Jul 4 14:21 39 -> pipe:[25015] lr-x------. 1 root root 64 Jul 4 14:19 4 -> pipe:[23798] l-wx------. 1 root root 64 Jul 4 14:22 40 -> pipe:[25070] l-wx------. 1 root root 64 Jul 4 14:22 41 -> pipe:[25119] l-wx------. 1 root root 64 Jul 4 14:22 42 -> pipe:[25167] l-wx------. 1 root root 64 Jul 4 14:22 43 -> pipe:[25214] l-wx------. 1 root root 64 Jul 4 14:23 44 -> pipe:[25271] l-wx------. 1 root root 64 Jul 4 14:23 45 -> pipe:[25308] l-wx------. 1 root root 64 Jul 4 14:23 46 -> pipe:[25345] l-wx------. 1 root root 64 Jul 4 14:23 47 -> pipe:[25382] l-wx------. 1 root root 64 Jul 4 14:23 48 -> pipe:[25419] l-wx------. 1 root root 64 Jul 4 14:23 49 -> pipe:[25456] l-wx------. 1 root root 64 Jul 4 14:19 5 -> pipe:[23798] l-wx------. 1 root root 64 Jul 4 14:23 51 -> pipe:[25553] l-wx------. 1 root root 64 Jul 4 14:24 52 -> pipe:[25607] l-wx------. 1 root root 64 Jul 4 14:24 53 -> pipe:[25654] l-wx------. 1 root root 64 Jul 4 14:24 54 -> pipe:[25701] l-wx------. 1 root root 64 Jul 4 14:24 55 -> pipe:[25738] l-wx------. 1 root root 64 Jul 4 14:24 56 -> pipe:[25811] l-wx------. 1 root root 64 Jul 4 14:30 57 -> pipe:[25873] l-wx------. 1 root root 64 Jul 4 14:30 58 -> pipe:[25910] l-wx------. 1 root root 64 Jul 4 14:30 59 -> pipe:[25947] lrwx------. 1 root root 64 Jul 4 14:19 6 -> [eventpoll] l-wx------. 1 root root 64 Jul 4 14:30 60 -> pipe:[25994] l-wx------. 1 root root 64 Jul 4 14:30 61 -> pipe:[26031] l-wx------. 1 root root 64 Jul 4 14:30 62 -> pipe:[26070] l-wx------. 1 root root 64 Jul 4 14:30 63 -> pipe:[26107] l-wx------. 1 root root 64 Jul 4 14:30 64 -> pipe:[26144] l-wx------. 1 root root 64 Jul 4 14:30 65 -> pipe:[26181] l-wx------. 1 root root 64 Jul 4 14:30 66 -> pipe:[26228] l-wx------. 1 root root 64 Jul 4 14:30 67 -> pipe:[26265] l-wx------. 1 root root 64 Jul 4 14:30 68 -> pipe:[26302] l-wx------. 1 root root 64 Jul 4 14:30 69 -> pipe:[26339] lr-x------. 1 root root 64 Jul 4 14:19 7 -> pipe:[23791] l-wx------. 1 root root 64 Jul 4 14:30 70 -> pipe:[26376] l-wx------. 1 root root 64 Jul 4 14:30 71 -> pipe:[26423] l-wx------. 1 root root 64 Jul 4 14:30 72 -> pipe:[26460] l-wx------. 1 root root 64 Jul 4 14:30 73 -> pipe:[26507] l-wx------. 1 root root 64 Jul 4 14:30 74 -> pipe:[26544] l-wx------. 1 root root 64 Jul 4 14:30 75 -> pipe:[26581] l-wx------. 1 root root 64 Jul 4 14:30 76 -> pipe:[26618] l-wx------. 1 root root 64 Jul 4 14:30 77 -> pipe:[26667] l-wx------. 1 root root 64 Jul 4 14:30 78 -> pipe:[26714] l-wx------. 1 root root 64 Jul 4 14:30 79 -> pipe:[26751] l-wx------. 1 root root 64 Jul 4 14:19 8 -> pipe:[23791] l-wx------. 1 root root 64 Jul 4 14:30 80 -> pipe:[26788] l-wx------. 1 root root 64 Jul 4 14:30 81 -> pipe:[26825] l-wx------. 1 root root 64 Jul 4 14:30 82 -> pipe:[26862] l-wx------. 1 root root 64 Jul 4 14:30 83 -> pipe:[26899] l-wx------. 1 root root 64 Jul 4 14:30 84 -> pipe:[26936] l-wx------. 1 root root 64 Jul 4 14:30 85 -> pipe:[26973] l-wx------. 1 root root 64 Jul 4 14:30 86 -> pipe:[27010] l-wx------. 1 root root 64 Jul 4 14:30 87 -> pipe:[27047] l-wx------. 1 root root 64 Jul 4 14:30 88 -> pipe:[27084] l-wx------. 1 root root 64 Jul 4 14:30 89 -> pipe:[27149] lrwx------. 1 root root 64 Jul 4 14:19 9 -> /var/lib/sss/db/ 5. Update sssd packages to sssd-1.13.3-22.el6_8.3.x86_64.rpm 6. Restart sssd process 7. Verify pipes created [root@vm-idm-003 fd]# ls -ltr | grep pipe l-wx------. 1 root root 64 Jul 4 14:50 8 -> pipe:[50646] lr-x------. 1 root root 64 Jul 4 14:50 7 -> pipe:[50646] l-wx------. 1 root root 64 Jul 4 14:50 5 -> pipe:[50651] lr-x------. 1 root root 64 Jul 4 14:50 4 -> pipe:[50651] [root@vm-idm-003 fd]# [root@vm-idm-003 fd]# date Mon Jul 4 14:54:21 IST 2016 [root@vm-idm-003 fd]# ls -ltr | grep pipe l-wx------. 1 root root 64 Jul 4 14:50 8 -> pipe:[50646] lr-x------. 1 root root 64 Jul 4 14:50 7 -> pipe:[50646] l-wx------. 1 root root 64 Jul 4 14:50 5 -> pipe:[50651] lr-x------. 1 root root 64 Jul 4 14:50 4 -> pipe:[50651] After 5 minutes, [root@vm-idm-003 fd]# date Mon Jul 4 14:58:02 IST 2016 [root@vm-idm-003 fd]# date Mon Jul 4 14:59:00 IST 2016 [root@vm-idm-003 fd]# ls -ltr | grep pipe | wc -l 4 [root@vm-idm-003 fd]# ls -ltr | grep pipe l-wx------. 1 root root 64 Jul 4 14:50 8 -> pipe:[50646] lr-x------. 1 root root 64 Jul 4 14:50 7 -> pipe:[50646] l-wx------. 1 root root 64 Jul 4 14:50 5 -> pipe:[50651] lr-x------. 1 root root 64 Jul 4 14:50 4 -> pipe:[50651] 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-2016:1407 |