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).


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
>From 595c9892ad2079276855519e1fac086b9d52f685 Mon Sep 17 00:00:00 2001
From: Michal Zidek <[email protected]>
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

>From f7d07757b00eec75716ae7b43403f206d81466b6 Mon Sep 17 00:00:00 2001
From: Michal Zidek <[email protected]>
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 cache.
+        </para>
+    </refsect1>
+
 	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; href="include/seealso.xml" />
 
 </refentry>
-- 
1.7.11.2

_______________________________________________
sssd-devel mailing list
[email protected]
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to