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

Simo Sorce simo at redhat.com
Thu Sep 12 20:10:03 UTC 2013


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 
-- 
Simo Sorce * Red Hat, Inc * New York




More information about the sssd-devel mailing list