Blame SOURCES/memcached-issue685.patch

6dacf3
commit 48c2d30efef24270ea94fa133945b8ecd3a015e3
6dacf3
Author: Tomas Korbar <tkorbar@redhat.com>
6dacf3
Date:   Wed May 20 15:28:10 2020 +0200
6dacf3
6dacf3
    Do not join lru and slab maintainer threads if they do not exist
6dacf3
    
6dacf3
    If no_modern option was supplied then these threads did not run
6dacf3
    but memcached still attempted to join them, which resulted in a
6dacf3
    segfault.
6dacf3
    
6dacf3
    resolve #685
6dacf3
6dacf3
diff --git a/thread.c b/thread.c
6dacf3
index f162d26..abbfca1 100644
6dacf3
--- a/thread.c
6dacf3
+++ b/thread.c
6dacf3
@@ -226,12 +226,16 @@ void stop_threads(void) {
6dacf3
     stop_item_crawler_thread(CRAWLER_WAIT);
6dacf3
     if (settings.verbose > 0)
6dacf3
         fprintf(stderr, "stopped lru crawler\n");
6dacf3
-    stop_lru_maintainer_thread();
6dacf3
-    if (settings.verbose > 0)
6dacf3
-        fprintf(stderr, "stopped maintainer\n");
6dacf3
-    stop_slab_maintenance_thread();
6dacf3
-    if (settings.verbose > 0)
6dacf3
-        fprintf(stderr, "stopped slab mover\n");
6dacf3
+    if (settings.lru_maintainer_thread) {
6dacf3
+        stop_lru_maintainer_thread();
6dacf3
+        if (settings.verbose > 0)
6dacf3
+            fprintf(stderr, "stopped maintainer\n");
6dacf3
+    }
6dacf3
+    if (settings.slab_reassign) {
6dacf3
+        stop_slab_maintenance_thread();
6dacf3
+        if (settings.verbose > 0)
6dacf3
+            fprintf(stderr, "stopped slab mover\n");
6dacf3
+    }
6dacf3
     logger_stop();
6dacf3
     if (settings.verbose > 0)
6dacf3
         fprintf(stderr, "stopped logger thread\n");