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(a)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(a)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