[SSSD] [PATCH] nss: Add option to disable memcache

Michal Židek mzidek at redhat.com
Fri Sep 13 12:31:50 UTC 2013


On 09/12/2013 10:10 PM, Simo Sorce wrote:
> On Thu, 2013-09-12 at 20:06 +0200, Michal Židek wrote:
>> On 09/12/2013 05:48 PM, Simo Sorce wrote:
>>> On Thu, 2013-09-12 at 11:23 +0200, Jakub Hrozek wrote:
>>>> On Wed, Sep 11, 2013 at 05:54:01PM -0400, Simo Sorce wrote:
>>>>> On Wed, 2013-09-11 at 20:19 +0200, Michal Židek wrote:
>>>>>> Hello,
>>>>>>
>>>>>> I would like to have this option in SSSD for debugging purposes.
>> It is
>>>>>> not documented, so it should be invisible for users (but I can
>> add it to
>>>>>> man pages as well, if someone thinks it is useful to have it
>> there).
>>>>>
>>>>> This would cause you to have stale mmap cache files on the system,
>>>>> wouldn't it make more sense to have an environment variable for
>> the
>>>>> client libraries instead and have them ignore the mmap cache when
>> you
>>>>> want to test something ?
>>>>
>>>> This sounds like a good idea.
>>>>
>>>>> It could also be documented as it may be a useful workaround
>> should a
>>>>> user find a bug that hits the mmap_cache and wants a temporary way
>> to
>>>>> avoid it even if with performance penalty for a specific
>> application.
>>>>>
>>>>> Something like SSS_NSS_USE_MEMCACHE=yes/no
>>>>>
>>>>> defaulting to yes, if no env var is found.
>>
>> Just found out that we have a check for _SSS_MC_SPECIAL in function
>> sss_nss_mc_get_ctx. It makes the function fail returning the EPERM
>> errno. I do not know what was the purpose of this variable, but it is
>> exactly what we need.
>>
>> Maybe we should just rename this variable, because it is not cleat
>> from
>> first glance, what it really does (see attached patch).
>
> Uhmmm I forgot why I added it, I guess for testing :)
>
>>>>
>>>> If I can speak for Michal -- we discussed that it might be nice to
>> be able
>>>> to temporarily disable the memcache somehow, but if there was a
>> documented
>>>> way, hitting memcache problems would simply disable it and don't
>> even
>>>> report a bug. Kind of like users switching SELinux to Permissive.
>>>
>>> Their choice.
>>> I think it is more valuable to have the option than not for fear of
>>> people not reporting bugs.
>>>
>>
>> Ok. I added the man page change in the second patch.
>>
>>> Simo.
>>>
>>
>> Patches are attached.
>>
>> Thanks
>> Michal
>>
>>
>>
>>
>>
>>
>>
>> differences
>> between files
>> attachment
>> (0001-Rename-_SSS_MC_SPECIAL.patch)
>>
>>  From 595c9892ad2079276855519e1fac086b9d52f685 Mon Sep 17 00:00:00 2001
>> From: Michal Zidek <mzidek at redhat.com>
>> Date: Thu, 12 Sep 2013 19:45:39 +0200
>> Subject: [PATCH 1/2] Rename _SSS_MC_SPECIAL
>>
>> If the environment variable _SSS_MC_SPECIAL is set to "NO", the
>> mmap cache is skipped in the client code. The name is not very
>> descriptive. This patch renames the variable to SSS_NSS_USE_MEMCACHE.
>> ---
>>   src/sss_client/nss_mc_common.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/sss_client/nss_mc_common.c
>> b/src/sss_client/nss_mc_common.c
>> index 5d36c47..a0a70ab 100644
>> --- a/src/sss_client/nss_mc_common.c
>> +++ b/src/sss_client/nss_mc_common.c
>> @@ -108,8 +108,8 @@ errno_t sss_nss_mc_get_ctx(const char *name,
>> struct sss_cli_mc_ctx *ctx)
>>       char *envval;
>>       int ret;
>>
>> -    envval = getenv("_SSS_MC_SPECIAL");
>> -    if (envval && strcmp(envval, "NO") == 0) {
>> +    envval = getenv("SSS_NSS_USE_MEMCACHE");
>> +    if (envval && strcasecmp(envval, "NO") == 0) {
>>           return EPERM;
>>       }
>>
>> --
>> 1.7.11.2
>
> ACK
>
>
>>
>>
>>
>>
>>
>>
>>
>> differences
>> between files
>> attachment
>> (0002-man-sssd-Add-note-about-SSS_NSS_USE_MEMCACHE.patch)
>>
>>  From f7d07757b00eec75716ae7b43403f206d81466b6 Mon Sep 17 00:00:00 2001
>> From: Michal Zidek <mzidek at redhat.com>
>> Date: Thu, 12 Sep 2013 19:51:55 +0200
>> Subject: [PATCH 2/2] man sssd: Add note about SSS_NSS_USE_MEMCACHE
>>
>> ---
>>   src/man/sssd.8.xml | 8 ++++++++
>>   1 file changed, 8 insertions(+)
>>
>> diff --git a/src/man/sssd.8.xml b/src/man/sssd.8.xml
>> index 0aba418..3a0fc01 100644
>> --- a/src/man/sssd.8.xml
>> +++ b/src/man/sssd.8.xml
>> @@ -187,6 +187,14 @@
>>           </variablelist>
>>       </refsect1>
>>
>> +    <refsect1 id='notes'>
>> +        <title>NOTES</title>
>> +        <para>
>> +            If the environment variable SSS_NSS_USE_MEMCACHE is set
>> to "NO",
>> +            the client applications will not use the fast in memory
>
> drop 'the' --^^^^ in front of client
>
> otherwise ACK
>
>>   cache.
>> +        </para>
>> +    </refsect1>
>> +
>>          <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
>> href="include/seealso.xml" />
>>
>>   </refentry>
>> --
>> 1.7.11.2

Thank you. New patches are attached.

Michal
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Rename-_SSS_MC_SPECIAL.patch
Type: text/x-patch
Size: 1028 bytes
Desc: not available
URL: <https://lists.fedorahosted.org/pipermail/sssd-devel/attachments/20130913/f8d03706/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-man-sssd-Add-note-about-SSS_NSS_USE_MEMCACHE.patch
Type: text/x-patch
Size: 861 bytes
Desc: not available
URL: <https://lists.fedorahosted.org/pipermail/sssd-devel/attachments/20130913/f8d03706/attachment-0001.bin>


More information about the sssd-devel mailing list