Bug 867933 - invalidating the memcache with sss_cache doesn't work if the sssd is not running
Summary: invalidating the memcache with sss_cache doesn't work if the sssd is not running
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: sssd
Version: 6.4
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Jakub Hrozek
QA Contact: Kaushik Banerjee
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-10-18 15:29 UTC by Jakub Hrozek
Modified: 2020-05-02 17:01 UTC (History)
3 users (show)

Fixed In Version: sssd-1.9.2-7.el6
Doc Type: Bug Fix
Doc Text:
No Documentation Needed
Clone Of:
Environment:
Last Closed: 2013-02-21 09:37:48 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Github SSSD sssd issues 2626 None closed invalidating the memcache with sss_cache doesn't work if the sssd is not running 2020-09-08 18:42:14 UTC
Red Hat Product Errata RHSA-2013:0508 normal SHIPPED_LIVE Low: sssd security, bug fix and enhancement update 2013-02-20 21:30:10 UTC

Description Jakub Hrozek 2012-10-18 15:29:51 UTC
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/sssd/ticket/1584

Stef found this corner case while preparing for the test day. If the SSSD is not running, for instance because the machine has left the domain, the memory cache files are still around and the processes that started before the machine left the domain can still query users from the domain.

The memcache can't even be invalidated with sss_cache, because sss_cache only sends a signal to the NSS responder.

This is how we should fix it:
1. make the API to invalidate the cache public
2. in the sss_cache tool, carefully detect if the sss_nss process is running, for example by checking for the responder socket or the PID.
3. if the sss_nss process is running, proceed with sending the signal
4. if the sss_nss process is not running, invalidate the memcache.

We should also check if all of the above works with SELinux.

Comment 2 Kaushik Banerjee 2013-01-02 07:15:41 UTC
Verified in version 1.9.2-41.el6

Output from beaker automation run:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: [   LOG    ] :: inmemory04 bz867933 sss_cache invalidates the in-memory cache when sssd is stopped
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Stopping sssd: [  OK  ]
:: [   PASS   ] :: Running 'sss_cache -U --domain=LDAP'
:: [   PASS   ] :: Running 'sss_cache -G --domain=LDAP'
Starting sssd: [  OK  ]
[  OK  ]
:: [   PASS   ] :: Running 'service sssd start'
puser1:*:1001:1001:Posix User1:/export/puser1:
:: [   PASS   ] :: Running 'getent passwd puser1'
Group1:*:1001:
:: [   PASS   ] :: Running 'getent group Group1'
:: [   PASS   ] :: File '/var/log/sssd/sssd_LDAP.log' should contain 'Got request for '
:: [   PASS   ] :: File '/var/log/sssd/sssd_LDAP.log' should contain 'uid=puser1'
:: [   PASS   ] :: File '/var/log/sssd/sssd_LDAP.log' should contain 'cn=Group1'
'6e237c5d-13d2-44e1-9962-b79ee33bf01a'
inmemory04-bz867933-sss-cache-invalidates-the-in-memory-cache-when-sssd-is-stopped result: PASS

Comment 3 errata-xmlrpc 2013-02-21 09:37:48 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.

http://rhn.redhat.com/errata/RHSA-2013-0508.html


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