Hello community,

here is the log from the commit of package memcached for openSUSE:Factory 
checked in at 2020-06-11 14:47:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/memcached (Old)
 and      /work/SRC/openSUSE:Factory/.memcached.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "memcached"

Thu Jun 11 14:47:31 2020 rev:47 rq:813310 version:1.6.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/memcached/memcached.changes      2020-04-25 
20:08:25.779560771 +0200
+++ /work/SRC/openSUSE:Factory/.memcached.new.3606/memcached.changes    
2020-06-11 14:47:51.837935184 +0200
@@ -1,0 +2,9 @@
+Sat Jun  6 05:37:41 UTC 2020 - Andreas Stieger <[email protected]>
+
+- update to 1.6.6:
+  * Fix crash on shutdown when handling signals with TLS enabled
+  * Disable aarch64 hw crc32 function for now
+  * Pull in BigEndian-compatible crc32c
+  * minimum libevent version is 2.x
+  
+-------------------------------------------------------------------

Old:
----
  memcached-1.6.5.tar.gz

New:
----
  memcached-1.6.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ memcached.spec ++++++
--- /var/tmp/diff_new_pack.5rxx5t/_old  2020-06-11 14:47:52.417936873 +0200
+++ /var/tmp/diff_new_pack.5rxx5t/_new  2020-06-11 14:47:52.421936885 +0200
@@ -28,7 +28,7 @@
 %endif
 
 Name:           memcached
-Version:        1.6.5
+Version:        1.6.6
 Release:        0
 Summary:        A high-performance, distributed memory object caching system
 License:        BSD-3-Clause
@@ -42,7 +42,7 @@
 BuildRequires:  autoconf
 BuildRequires:  automake
 BuildRequires:  cyrus-sasl-devel
-BuildRequires:  libevent-devel
+BuildRequires:  libevent-devel >= 2.0
 BuildRequires:  libtool
 %if %{with tls}
 BuildRequires:  openssl-devel >= 1.1.0

++++++ memcached-1.6.5.tar.gz -> memcached-1.6.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/README.md 
new/memcached-1.6.6/README.md
--- old/memcached-1.6.5/README.md       2020-04-04 04:14:26.000000000 +0200
+++ new/memcached-1.6.6/README.md       2020-05-13 05:24:24.000000000 +0200
@@ -19,7 +19,9 @@
 
 * libevent, https://www.monkey.org/~provos/libevent/ (libevent-dev)
 * libseccomp, (optional, experimental, linux) - enables process restrictions 
for
-  better security. Tested only on x86_64 architectures.
+  better security. Tested only on x86-64 architectures.
+* openssl, (optional) - enables TLS support. need relatively up to date
+  version.
 
 ## Environment
 
@@ -28,13 +30,17 @@
 don't swap.  memcached does non-blocking network I/O, but not disk.  (it
 should never go to disk, or you've lost the whole point of it)
 
+## Build status
+
+See https://build.memcached.org/ for multi-platform regression testing status.
+
 ## Bug reports
 
 Feel free to use the issue tracker on github.
 
 **If you are reporting a security bug** please contact a maintainer privately.
 We follow responsible disclosure: we handle reports privately, prepare a
-patch, allow notifications to vendor lists, then run a fix release and your
+patch, allow notifications to vendor lists. Then we push a fix release and your
 bug can be posted publicly with credit in our release notes and commit
 history.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/configure 
new/memcached-1.6.6/configure
--- old/memcached-1.6.5/configure       2020-04-13 20:46:27.000000000 +0200
+++ new/memcached-1.6.6/configure       2020-05-13 05:32:50.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for memcached 1.6.5.
+# Generated by GNU Autoconf 2.69 for memcached 1.6.6.
 #
 # Report bugs to <[email protected]>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='memcached'
 PACKAGE_TARNAME='memcached'
-PACKAGE_VERSION='1.6.5'
-PACKAGE_STRING='memcached 1.6.5'
+PACKAGE_VERSION='1.6.6'
+PACKAGE_STRING='memcached 1.6.6'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -761,7 +761,6 @@
 enable_option_checking
 enable_silent_rules
 enable_dependency_tracking
-enable_arm_crc32
 enable_extstore
 enable_seccomp
 enable_sasl
@@ -1336,7 +1335,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures memcached 1.6.5 to adapt to many kinds of systems.
+\`configure' configures memcached 1.6.6 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1407,7 +1406,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of memcached 1.6.5:";;
+     short | recursive ) echo "Configuration of memcached 1.6.6:";;
    esac
   cat <<\_ACEOF
 
@@ -1421,7 +1420,6 @@
                           do not reject slow dependency extractors
   --disable-dependency-tracking
                           speeds up one-time build
-  --enable-arm-crc32      Enable ARMv8 CRC32 instructions
   --disable-extstore      Disable external storage (extstore)
   --enable-seccomp        Enable seccomp restrictions EXPERIMENTAL
   --enable-sasl           Enable SASL authentication
@@ -1517,7 +1515,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-memcached configure 1.6.5
+memcached configure 1.6.6
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2169,7 +2167,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by memcached $as_me 1.6.5, which was
+It was created by memcached $as_me 1.6.6, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3104,7 +3102,7 @@
 
 # Define the identity of the package.
  PACKAGE='memcached'
- VERSION='1.6.5'
+ VERSION='1.6.6'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4906,11 +4904,6 @@
 
 
 
-# Check whether --enable-arm_crc32 was given.
-if test "${enable_arm_crc32+set}" = set; then :
-  enableval=$enable_arm_crc32;
-fi
-
 
 # Check whether --enable-extstore was given.
 if test "${enable_extstore+set}" = set; then :
@@ -7844,7 +7837,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by memcached $as_me 1.6.5, which was
+This file was extended by memcached $as_me 1.6.6, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -7910,7 +7903,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-memcached config.status 1.6.5
+memcached config.status 1.6.6
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/configure.ac 
new/memcached-1.6.6/configure.ac
--- old/memcached-1.6.5/configure.ac    2020-04-13 20:39:14.000000000 +0200
+++ new/memcached-1.6.6/configure.ac    2020-05-13 05:24:24.000000000 +0200
@@ -82,8 +82,10 @@
 AM_PROG_CC_C_O
 AC_PROG_INSTALL
 
-AC_ARG_ENABLE(arm_crc32,
-  [AS_HELP_STRING([--enable-arm-crc32], [Enable ARMv8 CRC32 instructions])])
+dnl ARM crc32 optimization is disabled until we have hardware for an automated
+dnl regression test.
+dnl AC_ARG_ENABLE(arm_crc32,
+dnl  [AS_HELP_STRING([--enable-arm-crc32], [Enable ARMv8 CRC32 instructions])])
 
 AC_ARG_ENABLE(extstore,
   [AS_HELP_STRING([--disable-extstore], [Disable external storage 
(extstore)])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/crc32c.c new/memcached-1.6.6/crc32c.c
--- old/memcached-1.6.5/crc32c.c        2020-04-04 04:14:26.000000000 +0200
+++ new/memcached-1.6.6/crc32c.c        2020-05-13 05:24:24.000000000 +0200
@@ -1,6 +1,6 @@
 /* crc32c.c -- compute CRC-32C using the Intel crc32 instruction
- * Copyright (C) 2013 Mark Adler
- * Version 1.1  1 Aug 2013  Mark Adler
+ * Copyright (C) 2013, 2015 Mark Adler
+ * Version 1.3  31 Dec 2015  Mark Adler
  */
 
 /*
@@ -31,19 +31,16 @@
 /* Version history:
    1.0  10 Feb 2013  First version
    1.1   1 Aug 2013  Correct comments on why three crc instructions in parallel
+   1.2   1 Nov 2015  Add const qualifier to avoid compiler warning
+                     Load entire input into memory (test code)
+                     Argument gives number of times to repeat (test code)
+                     Argument < 0 forces software implementation (test code)
+   1.3  31 Dec 2015  Check for Intel architecture using compiler macro
+                     Support big-endian processors in software calculation
+                     Add header for external use
  */
 
-/* This version has been modified by dormando for inclusion in memcached */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <unistd.h>
 #include <pthread.h>
-#include "config.h"
-#if defined(__linux__) && defined(__aarch64__)
-#include <sys/auxv.h>
-#endif
 #include "crc32c.h"
 
 crc_func crc32c;
@@ -51,133 +48,19 @@
 /* CRC-32C (iSCSI) polynomial in reversed bit order. */
 #define POLY 0x82f63b78
 
-/* Table for a quadword-at-a-time software crc. */
-static pthread_once_t crc32c_once_sw = PTHREAD_ONCE_INIT;
-static uint32_t crc32c_table[8][256];
-
-/* Construct table for software CRC-32C calculation. */
-static void crc32c_init_sw(void)
-{
-    uint32_t n, crc, k;
-
-    for (n = 0; n < 256; n++) {
-        crc = n;
-        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
-        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
-        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
-        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
-        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
-        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
-        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
-        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
-        crc32c_table[0][n] = crc;
-    }
-    for (n = 0; n < 256; n++) {
-        crc = crc32c_table[0][n];
-        for (k = 1; k < 8; k++) {
-            crc = crc32c_table[0][crc & 0xff] ^ (crc >> 8);
-            crc32c_table[k][n] = crc;
-        }
-    }
-}
-
-/* Table-driven software version as a fall-back.  This is about 15 times slower
-   than using the hardware instructions.  This assumes little-endian integers,
-   as is the case on Intel processors that the assembler code here is for. */
-static uint32_t crc32c_sw(uint32_t crci, const void *buf, size_t len)
-{
-    const unsigned char *next = buf;
-    uint64_t crc;
-
-    pthread_once(&crc32c_once_sw, crc32c_init_sw);
-    crc = crci ^ 0xffffffff;
-    while (len && ((uintptr_t)next & 7) != 0) {
-        crc = crc32c_table[0][(crc ^ *next++) & 0xff] ^ (crc >> 8);
-        len--;
-    }
-    while (len >= 8) {
-        crc ^= *(uint64_t *)next;
-        crc = crc32c_table[7][crc & 0xff] ^
-              crc32c_table[6][(crc >> 8) & 0xff] ^
-              crc32c_table[5][(crc >> 16) & 0xff] ^
-              crc32c_table[4][(crc >> 24) & 0xff] ^
-              crc32c_table[3][(crc >> 32) & 0xff] ^
-              crc32c_table[2][(crc >> 40) & 0xff] ^
-              crc32c_table[1][(crc >> 48) & 0xff] ^
-              crc32c_table[0][crc >> 56];
-        next += 8;
-        len -= 8;
-    }
-    while (len) {
-        crc = crc32c_table[0][(crc ^ *next++) & 0xff] ^ (crc >> 8);
-        len--;
-    }
-    return (uint32_t)crc ^ 0xffffffff;
-}
-
-/* Hardware CRC support for aarch64 platform */
-#if defined(__linux__) && defined(__aarch64__) && defined(ARM_CRC32)
+uint32_t crc32c_sw(uint32_t crc, void const *buf, size_t len);
+uint32_t crc32c_sw_little(uint32_t crc, void const *buf, size_t len);
+uint32_t crc32c_sw_big(uint32_t crc, void const *buf, size_t len);
+#ifdef __x86_64__
 
-#define CRC32CX(crc, value) __asm__("crc32cx %w[c], %w[c], 
%x[v]":[c]"+r"(crc):[v]"r"(+value))
-#define CRC32CW(crc, value) __asm__("crc32cw %w[c], %w[c], 
%w[v]":[c]"+r"(crc):[v]"r"(+value))
-#define CRC32CH(crc, value) __asm__("crc32ch %w[c], %w[c], 
%w[v]":[c]"+r"(crc):[v]"r"(+value))
-#define CRC32CB(crc, value) __asm__("crc32cb %w[c], %w[c], 
%w[v]":[c]"+r"(crc):[v]"r"(+value))
-
-#ifndef HWCAP_CRC32
-#define HWCAP_CRC32             (1 << 7)
-#endif /* HWCAP for crc32 */
-
-static uint32_t crc32c_hw_aarch64(uint32_t crc, const void* buf, size_t len)
-{
-        const uint8_t* p_buf = buf;
-        uint64_t crc64bit = crc;
-        for (size_t i = 0; i < len / sizeof(uint64_t); i++) {
-                CRC32CX(crc64bit, *(uint64_t*) p_buf);
-                p_buf += sizeof(uint64_t);
-        }
-
-        uint32_t crc32bit = (uint32_t) crc64bit;
-        len &= sizeof(uint64_t) - 1;
-        switch (len) {
-        case 7:
-                CRC32CB(crc32bit, *p_buf++);
-        case 6:
-                CRC32CH(crc32bit, *(uint16_t*) p_buf);
-                p_buf += 2;
-        case 4:
-                CRC32CW(crc32bit, *(uint32_t*) p_buf);
-                break;
-        case 3:
-                CRC32CB(crc32bit, *p_buf++);
-        case 2:
-                CRC32CH(crc32bit, *(uint16_t*) p_buf);
-                break;
-        case 5:
-                CRC32CW(crc32bit, *(uint32_t*) p_buf);
-                p_buf += 4;
-        case 1:
-                CRC32CB(crc32bit, *p_buf);
-                break;
-        case 0:
-                break;
-        }
-
-        return crc32bit;
-}
-#endif
-
-/* Apply if the platform is intel */
-#if defined(__X86_64__)||defined(__x86_64__)||defined(__ia64__)
+/* Hardware CRC-32C for Intel and compatible processors. */
 
 /* Multiply a matrix times a vector over the Galois field of two elements,
    GF(2).  Each element is a bit in an unsigned integer.  mat must have at
    least as many entries as the power of two for most significant one bit in
    vec. */
-static inline uint32_t gf2_matrix_times(uint32_t *mat, uint32_t vec)
-{
-    uint32_t sum;
-
-    sum = 0;
+static inline uint32_t gf2_matrix_times(uint32_t *mat, uint32_t vec) {
+    uint32_t sum = 0;
     while (vec) {
         if (vec & 1)
             sum ^= *mat;
@@ -189,11 +72,8 @@
 
 /* Multiply a matrix by itself over GF(2).  Both mat and square must have 32
    rows. */
-static inline void gf2_matrix_square(uint32_t *square, uint32_t *mat)
-{
-    int n;
-
-    for (n = 0; n < 32; n++)
+static inline void gf2_matrix_square(uint32_t *square, uint32_t *mat) {
+    for (unsigned n = 0; n < 32; n++)
         square[n] = gf2_matrix_times(mat, mat[n]);
 }
 
@@ -202,16 +82,13 @@
    largest power of two less than len.  The result for len == 0 is the same as
    for len == 1.  A version of this routine could be easily written for any
    len, but that is not needed for this application. */
-static void crc32c_zeros_op(uint32_t *even, size_t len)
-{
-    int n;
-    uint32_t row;
+static void crc32c_zeros_op(uint32_t *even, size_t len) {
     uint32_t odd[32];       /* odd-power-of-two zeros operator */
 
     /* put operator for one zero bit in odd */
     odd[0] = POLY;              /* CRC-32C polynomial */
-    row = 1;
-    for (n = 1; n < 32; n++) {
+    uint32_t row = 1;
+    for (unsigned n = 1; n < 32; n++) {
         odd[n] = row;
         row <<= 1;
     }
@@ -235,19 +112,17 @@
     } while (len);
 
     /* answer ended up in odd -- copy to even */
-    for (n = 0; n < 32; n++)
+    for (unsigned n = 0; n < 32; n++)
         even[n] = odd[n];
 }
 
 /* Take a length and build four lookup tables for applying the zeros operator
    for that length, byte-by-byte on the operand. */
-static void crc32c_zeros(uint32_t zeros[][256], size_t len)
-{
-    uint32_t n;
+static void crc32c_zeros(uint32_t zeros[][256], size_t len) {
     uint32_t op[32];
 
     crc32c_zeros_op(op, len);
-    for (n = 0; n < 256; n++) {
+    for (unsigned n = 0; n < 256; n++) {
         zeros[0][n] = gf2_matrix_times(op, n);
         zeros[1][n] = gf2_matrix_times(op, n << 8);
         zeros[2][n] = gf2_matrix_times(op, n << 16);
@@ -256,8 +131,7 @@
 }
 
 /* Apply the zeros operator table to crc. */
-static inline uint32_t crc32c_shift(uint32_t zeros[][256], uint32_t crc)
-{
+static inline uint32_t crc32c_shift(uint32_t zeros[][256], uint32_t crc) {
     return zeros[0][crc & 0xff] ^ zeros[1][(crc >> 8) & 0xff] ^
            zeros[2][(crc >> 16) & 0xff] ^ zeros[3][crc >> 24];
 }
@@ -278,27 +152,23 @@
 static uint32_t crc32c_short[4][256];
 
 /* Initialize tables for shifting crcs. */
-static void crc32c_init_hw(void)
-{
+static void crc32c_init_hw(void) {
     crc32c_zeros(crc32c_long, LONG);
     crc32c_zeros(crc32c_short, SHORT);
 }
 
 /* Compute CRC-32C using the Intel hardware instruction. */
-static uint32_t crc32c_hw(uint32_t crc, const void *buf, size_t len)
-{
-    const unsigned char *next = buf;
-    const unsigned char *end;
-    uint64_t crc0, crc1, crc2;      /* need to be 64 bits for crc32q */
-
+static uint32_t crc32c_hw(uint32_t crc, void const *buf, size_t len) {
     /* populate shift tables the first time through */
     pthread_once(&crc32c_once_hw, crc32c_init_hw);
 
     /* pre-process the crc */
-    crc0 = crc ^ 0xffffffff;
+    crc = ~crc;
+    uint64_t crc0 = crc;            /* 64-bits for crc32q instruction */
 
     /* compute the crc for up to seven leading bytes to bring the data pointer
        to an eight-byte boundary */
+    unsigned char const *next = buf;
     while (len && ((uintptr_t)next & 7) != 0) {
         __asm__("crc32b\t" "(%1), %0"
                 : "=r"(crc0)
@@ -312,9 +182,9 @@
        Westmere, Sandy Bridge, and Ivy Bridge architectures, which have a
        throughput of one crc per cycle, but a latency of three cycles */
     while (len >= LONG*3) {
-        crc1 = 0;
-        crc2 = 0;
-        end = next + LONG;
+        uint64_t crc1 = 0;
+        uint64_t crc2 = 0;
+        unsigned char const * const end = next + LONG;
         do {
             __asm__("crc32q\t" "(%3), %0\n\t"
                     "crc32q\t" LONGx1 "(%3), %1\n\t"
@@ -332,9 +202,9 @@
     /* do the same thing, but now on SHORT*3 blocks for the remaining data less
        than a LONG*3 block */
     while (len >= SHORT*3) {
-        crc1 = 0;
-        crc2 = 0;
-        end = next + SHORT;
+        uint64_t crc1 = 0;
+        uint64_t crc2 = 0;
+        unsigned char const * const end = next + SHORT;
         do {
             __asm__("crc32q\t" "(%3), %0\n\t"
                     "crc32q\t" SHORTx1 "(%3), %1\n\t"
@@ -351,14 +221,16 @@
 
     /* compute the crc on the remaining eight-byte units less than a SHORT*3
        block */
-    end = next + (len - (len & 7));
-    while (next < end) {
-        __asm__("crc32q\t" "(%1), %0"
-                : "=r"(crc0)
-                : "r"(next), "0"(crc0));
-        next += 8;
+    {
+        unsigned char const * const end = next + (len - (len & 7));
+        while (next < end) {
+            __asm__("crc32q\t" "(%1), %0"
+                    : "=r"(crc0)
+                    : "r"(next), "0"(crc0));
+            next += 8;
+        }
+        len &= 7;
     }
-    len &= 7;
 
     /* compute the crc for up to seven trailing bytes */
     while (len) {
@@ -370,7 +242,7 @@
     }
 
     /* return a post-processed crc */
-    return (uint32_t)crc0 ^ 0xffffffff;
+    return ~crc0;
 }
 
 /* Check for SSE 4.2.  SSE 4.2 was first supported in Nehalem processors
@@ -389,27 +261,172 @@
         (have) = (ecx >> 20) & 1; \
     } while (0)
 
-#endif
 /* Compute a CRC-32C.  If the crc32 instruction is available, use the hardware
    version.  Otherwise, use the software version. */
 void crc32c_init(void) {
-    #if defined(__X86_64__)||defined(__x86_64__)||defined(__ia64__)
     int sse42;
-    SSE42(sse42);
 
+    SSE42(sse42);
     if (sse42) {
         crc32c = crc32c_hw;
-    } else
-    #endif
-    /* Check if CRC instructions supported by aarch64 */
-    #if defined(__linux__) && defined(__aarch64__) && defined(ARM_CRC32)
-    unsigned long hwcap = getauxval(AT_HWCAP);
-
-    if (hwcap & HWCAP_CRC32) {
-        crc32c = crc32c_hw_aarch64;
-    } else
-    #endif
-    {
+    } else {
         crc32c = crc32c_sw;
     }
 }
+
+#else /* !__x86_64__ */
+
+void crc32c_init(void) {
+    crc32c = crc32c_sw;
+}
+
+#endif
+
+/* Construct table for software CRC-32C little-endian calculation. */
+static pthread_once_t crc32c_once_little = PTHREAD_ONCE_INIT;
+static uint32_t crc32c_table_little[8][256];
+static void crc32c_init_sw_little(void) {
+    for (unsigned n = 0; n < 256; n++) {
+        uint32_t crc = n;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc32c_table_little[0][n] = crc;
+    }
+    for (unsigned n = 0; n < 256; n++) {
+        uint32_t crc = crc32c_table_little[0][n];
+        for (unsigned k = 1; k < 8; k++) {
+            crc = crc32c_table_little[0][crc & 0xff] ^ (crc >> 8);
+            crc32c_table_little[k][n] = crc;
+        }
+    }
+}
+
+/* Compute a CRC-32C in software assuming a little-endian architecture,
+   constructing the required table if that hasn't already been done. */
+uint32_t crc32c_sw_little(uint32_t crc, void const *buf, size_t len) {
+    unsigned char const *next = buf;
+
+    pthread_once(&crc32c_once_little, crc32c_init_sw_little);
+    crc = ~crc;
+    while (len && ((uintptr_t)next & 7) != 0) {
+        crc = crc32c_table_little[0][(crc ^ *next++) & 0xff] ^ (crc >> 8);
+        len--;
+    }
+    if (len >= 8) {
+        uint64_t crcw = crc;
+        do {
+            crcw ^= *(uint64_t const *)next;
+            crcw = crc32c_table_little[7][crcw & 0xff] ^
+                   crc32c_table_little[6][(crcw >> 8) & 0xff] ^
+                   crc32c_table_little[5][(crcw >> 16) & 0xff] ^
+                   crc32c_table_little[4][(crcw >> 24) & 0xff] ^
+                   crc32c_table_little[3][(crcw >> 32) & 0xff] ^
+                   crc32c_table_little[2][(crcw >> 40) & 0xff] ^
+                   crc32c_table_little[1][(crcw >> 48) & 0xff] ^
+                   crc32c_table_little[0][crcw >> 56];
+            next += 8;
+            len -= 8;
+        } while (len >= 8);
+        crc = crcw;
+    }
+    while (len) {
+        crc = crc32c_table_little[0][(crc ^ *next++) & 0xff] ^ (crc >> 8);
+        len--;
+    }
+    return ~crc;
+}
+
+/* Swap the bytes in a uint64_t.  (Only for big-endian.) */
+#if defined(__has_builtin) || (defined(__GNUC__) && \
+    (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))
+#  define swap __builtin_bswap64
+#else
+static inline uint64_t swap(uint64_t x) {
+    x = ((x << 8) & 0xff00ff00ff00ff00) | ((x >> 8) & 0xff00ff00ff00ff);
+    x = ((x << 16) & 0xffff0000ffff0000) | ((x >> 16) & 0xffff0000ffff);
+    return (x << 32) | (x >> 32);
+}
+#endif
+
+/* Construct tables for software CRC-32C big-endian calculation. */
+static pthread_once_t crc32c_once_big = PTHREAD_ONCE_INIT;
+static uint32_t crc32c_table_big_byte[256];
+static uint64_t crc32c_table_big[8][256];
+static void crc32c_init_sw_big(void) {
+    for (unsigned n = 0; n < 256; n++) {
+        uint32_t crc = n;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc = crc & 1 ? (crc >> 1) ^ POLY : crc >> 1;
+        crc32c_table_big_byte[n] = crc;
+    }
+    for (unsigned n = 0; n < 256; n++) {
+        uint32_t crc = crc32c_table_big_byte[n];
+        crc32c_table_big[0][n] = swap(crc);
+        for (unsigned k = 1; k < 8; k++) {
+            crc = crc32c_table_big_byte[crc & 0xff] ^ (crc >> 8);
+            crc32c_table_big[k][n] = swap(crc);
+        }
+    }
+}
+
+/* Compute a CRC-32C in software assuming a big-endian architecture,
+   constructing the required tables if that hasn't already been done. */
+uint32_t crc32c_sw_big(uint32_t crc, void const *buf, size_t len) {
+    unsigned char const *next = buf;
+
+    pthread_once(&crc32c_once_big, crc32c_init_sw_big);
+    crc = ~crc;
+    while (len && ((uintptr_t)next & 7) != 0) {
+        crc = crc32c_table_big_byte[(crc ^ *next++) & 0xff] ^ (crc >> 8);
+        len--;
+    }
+    if (len >= 8) {
+        uint64_t crcw = swap(crc);
+        do {
+            crcw ^= *(uint64_t const *)next;
+            crcw = crc32c_table_big[0][crcw & 0xff] ^
+                   crc32c_table_big[1][(crcw >> 8) & 0xff] ^
+                   crc32c_table_big[2][(crcw >> 16) & 0xff] ^
+                   crc32c_table_big[3][(crcw >> 24) & 0xff] ^
+                   crc32c_table_big[4][(crcw >> 32) & 0xff] ^
+                   crc32c_table_big[5][(crcw >> 40) & 0xff] ^
+                   crc32c_table_big[6][(crcw >> 48) & 0xff] ^
+                   crc32c_table_big[7][(crcw >> 56)];
+            next += 8;
+            len -= 8;
+        } while (len >= 8);
+        crc = swap(crcw);
+    }
+    while (len) {
+        crc = crc32c_table_big_byte[(crc ^ *next++) & 0xff] ^ (crc >> 8);
+        len--;
+    }
+    return ~crc;
+}
+
+/* Table-driven software CRC-32C.  This is about 15 times slower than using the
+   hardware instructions.  Determine the endianess of the processor and proceed
+   accordingly.  Ideally the endianess will be determined at compile time, in
+   which case the unused functions and tables for the other endianess will be
+   removed by the optimizer.  If not, then the proper routines and tables will
+   be used, even if the endianess is changed mid-stream.  (Yes, there are
+   processors that permit that -- go figure.) */
+uint32_t crc32c_sw(uint32_t crc, void const *buf, size_t len) {
+    static int const little = 1;
+    if (*(char const *)&little)
+        return crc32c_sw_little(crc, buf, len);
+    else
+        return crc32c_sw_big(crc, buf, len);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/crc32c.h new/memcached-1.6.6/crc32c.h
--- old/memcached-1.6.5/crc32c.h        2020-04-04 04:14:26.000000000 +0200
+++ new/memcached-1.6.6/crc32c.h        2020-05-13 05:24:24.000000000 +0200
@@ -1,6 +1,17 @@
 #ifndef CRC32C_H
 #define    CRC32C_H
 
+
+// crc32c.h -- header for crc32c.c
+// Copyright (C) 2015 Mark Adler
+// See crc32c.c for the license.
+
+#include <stdint.h>
+
+// Return the CRC-32C of buf[0..len-1] given the starting CRC crc.  This can be
+// used to calculate the CRC of a sequence of bytes a chunk at a time, using
+// the previously returned crc in the next call.  The first call must be with
+// crc == 0.  crc32c() uses the Intel crc32 hardware instruction if available.
 typedef uint32_t (*crc_func)(uint32_t crc, const void *buf, size_t len);
 extern crc_func crc32c;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/doc/Makefile 
new/memcached-1.6.6/doc/Makefile
--- old/memcached-1.6.5/doc/Makefile    2020-04-13 20:46:30.000000000 +0200
+++ new/memcached-1.6.6/doc/Makefile    2020-05-13 05:32:52.000000000 +0200
@@ -192,10 +192,10 @@
 PACKAGE = memcached
 PACKAGE_BUGREPORT = [email protected]
 PACKAGE_NAME = memcached
-PACKAGE_STRING = memcached 1.6.5
+PACKAGE_STRING = memcached 1.6.6
 PACKAGE_TARNAME = memcached
 PACKAGE_URL = 
-PACKAGE_VERSION = 1.6.5
+PACKAGE_VERSION = 1.6.6
 PATH_SEPARATOR = :
 PROFILER = /usr/bin/gcov
 PROFILER_FLAGS = -fprofile-arcs -ftest-coverage
@@ -203,7 +203,7 @@
 SET_MAKE = 
 SHELL = /bin/bash
 STRIP = 
-VERSION = 1.6.5
+VERSION = 1.6.6
 XML2RFC = /usr/bin/xml2rfc
 XSLTPROC = /usr/bin/xsltproc
 abs_builddir = /home/dormando/d/p/danga/git/memcached/doc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/doc/protocol.txt 
new/memcached-1.6.6/doc/protocol.txt
--- old/memcached-1.6.5/doc/protocol.txt        2020-04-12 22:39:36.000000000 
+0200
+++ new/memcached-1.6.6/doc/protocol.txt        2020-05-13 05:24:24.000000000 
+0200
@@ -897,6 +897,8 @@
 The meta no-op command exists solely to return a static response code. It
 takes no flags, no arguments.
 
+"mn\r\n"
+
 This returns the static response:
 
 "MN\r\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/memcached.c 
new/memcached-1.6.6/memcached.c
--- old/memcached-1.6.5/memcached.c     2020-04-12 22:39:36.000000000 +0200
+++ new/memcached-1.6.6/memcached.c     2020-05-13 05:24:24.000000000 +0200
@@ -181,7 +181,7 @@
  * can block the listener via a condition.
  */
 static volatile bool allow_new_conns = true;
-static bool stop_main_loop = false;
+static int stop_main_loop = NOT_STOP;
 static struct event maxconnsevent;
 static void maxconns_handler(const evutil_socket_t fd, const short which, void 
*arg) {
     struct timeval t = {.tv_sec = 0, .tv_usec = 10000};
@@ -8279,8 +8279,8 @@
 }
 
 static void sig_handler(const int sig) {
+    stop_main_loop = EXIT_NORMALLY;
     printf("Signal handled: %s.\n", strsignal(sig));
-    exit(EXIT_SUCCESS);
 }
 
 static void sighup_handler(const int sig) {
@@ -8289,7 +8289,7 @@
 
 static void sig_usrhandler(const int sig) {
     printf("Graceful shutdown signal handled: %s.\n", strsignal(sig));
-    stop_main_loop = true;
+    stop_main_loop = GRACE_STOP;
 }
 
 #ifndef HAVE_SIGIGNORE
@@ -8381,13 +8381,9 @@
     const char *ever = event_get_version();
     if (ever != NULL) {
         if (strncmp(ever, "1.", 2) == 0) {
-            /* Require at least 1.3 (that's still a couple of years old) */
-            if (('0' <= ever[2] && ever[2] < '3') && !isdigit(ever[3])) {
-                fprintf(stderr, "You are using libevent %s.\nPlease upgrade to"
-                        " a more recent version (1.3 or newer)\n",
-                        event_get_version());
-                return false;
-            }
+            fprintf(stderr, "You are using libevent %s.\nPlease upgrade to 2.x"
+                        " or newer\n", event_get_version());
+            return false;
         }
     }
 
@@ -10106,6 +10102,7 @@
             /* Only rescues non-COLD items if below this threshold */
             settings.ext_drop_under = storage_file->page_count / 4;
         }
+        // FIXME: temporarily removed.
         crc32c_init();
         /* Init free chunks to zero. */
         for (int x = 0; x < MAX_NUMBER_OF_SLAB_CLASSES; x++) {
@@ -10309,9 +10306,20 @@
         }
     }
 
-    fprintf(stderr, "Gracefully stopping\n");
+    switch (stop_main_loop) {
+        case GRACE_STOP:
+            fprintf(stderr, "Gracefully stopping\n");
+        break;
+        case EXIT_NORMALLY:
+            // Don't need to print anything to STDERR for a normal shutdown.
+        break;
+        default:
+            fprintf(stderr, "Exiting on error\n");
+        break;
+    }
+
     stop_threads();
-    if (memory_file != NULL) {
+    if (memory_file != NULL && stop_main_loop == GRACE_STOP) {
         restart_mmap_close();
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/memcached.h 
new/memcached-1.6.6/memcached.h
--- old/memcached-1.6.5/memcached.h     2020-04-04 04:14:26.000000000 +0200
+++ new/memcached-1.6.6/memcached.h     2020-05-13 05:24:24.000000000 +0200
@@ -233,6 +233,12 @@
     RESUME_WORKER_THREADS
 };
 
+enum stop_reasons {
+    NOT_STOP,
+    GRACE_STOP,
+    EXIT_NORMALLY
+};
+
 #define IS_TCP(x) (x == tcp_transport)
 #define IS_UDP(x) (x == udp_transport)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/memcached.spec 
new/memcached-1.6.6/memcached.spec
--- old/memcached-1.6.5/memcached.spec  2020-04-13 20:46:26.000000000 +0200
+++ new/memcached-1.6.6/memcached.spec  2020-05-13 05:32:49.000000000 +0200
@@ -28,7 +28,7 @@
 %endif
 
 Name:           memcached
-Version:        1.6.5
+Version:        1.6.6
 Release:        1%{?dist}
 Summary:        High Performance, Distributed Memory Object Cache
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/t/README-TLS.md 
new/memcached-1.6.6/t/README-TLS.md
--- old/memcached-1.6.5/t/README-TLS.md 1970-01-01 01:00:00.000000000 +0100
+++ new/memcached-1.6.6/t/README-TLS.md 2020-05-13 05:24:24.000000000 +0200
@@ -0,0 +1,29 @@
+# Certificates creation process
+
+## Create certificate authority key and certificate
+```
+$ openssl genrsa -out cakey.pem 2048
+$ openssl req -x509 -new -nodes -key cakey.pem -sha256 -days 1825 -out 
cacert.pem \
+-subj "/CN=Test Root Certificate 
Authority/ST=CA/C=US/[email protected]/O=Test/OU=Test Department"
+```
+## Create server key and certificate
+```
+$ openssl genrsa -out server_key.pem 2048
+$ openssl req -new -sha256 -key server_key.pem -subj \
+"/C=US/ST=CA/O=Test/OU=Subunit of Test 
Organization/CN=test.com/[email protected]" \
+-out server_crt.csr
+$ openssl x509 -req -in server_crt.csr -CA cacert.pem -CAkey cakey.pem \
+-CAcreateserial -out server_cert.pem -days 1825 -sha256
+```
+## Create client key and certificate
+```
+$ openssl genrsa -out client_key.pem 2048
+$ openssl req -new -sha256 -key client_key.pem -subj \
+"/C=US/ST=CA/O=Test Client/OU=Subunit of Test 
Organization/CN=client.test.com/[email protected]" \
+-out client_crt.csr
+$ openssl x509 -req -in client_crt.csr -CA cacert.pem -CAkey cakey.pem \
+-CAcreateserial -out client_cert.pem -days 1825 -sha256
+```
+
+**NOTES**: *.csr files are certificate signing requests which are needed in 
order to sign certificates with signing authority.
+-CAcreateserial option creates one file which we do not need but openssl does. 
You can delete it after you are done.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/t/cacert.pem 
new/memcached-1.6.6/t/cacert.pem
--- old/memcached-1.6.5/t/cacert.pem    2020-04-12 03:28:14.000000000 +0200
+++ new/memcached-1.6.6/t/cacert.pem    2020-05-13 05:24:24.000000000 +0200
@@ -1,22 +1,24 @@
 -----BEGIN CERTIFICATE-----
-MIIDqzCCApOgAwIBAgIJAOFc3ZmVKolRMA0GCSqGSIb3DQEBBQUAMIGLMSgwJgYD
-VQQDDB9UZXN0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQswCQYDVQQIDAJD
-QTELMAkGA1UEBhMCVVMxHDAaBgkqhkiG9w0BCQEWDXJvb3RAdGVzdC5jb20xDTAL
-BgNVBAoMBFRlc3QxGDAWBgNVBAsMD1Rlc3QgRGVwYXJ0bWVudDAeFw0xOTAxMDcx
-ODIzMjlaFw0yNDAxMDYxODIzMjlaMIGLMSgwJgYDVQQDDB9UZXN0IFJvb3QgQ2Vy
-dGlmaWNhdGUgQXV0aG9yaXR5MQswCQYDVQQIDAJDQTELMAkGA1UEBhMCVVMxHDAa
-BgkqhkiG9w0BCQEWDXJvb3RAdGVzdC5jb20xDTALBgNVBAoMBFRlc3QxGDAWBgNV
-BAsMD1Rlc3QgRGVwYXJ0bWVudDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAJQcDfenVed0uJCykaWowL2qGUs9e5gyjGo9URoNhI5LDYSSq3ebxZGfbi1T
-BcC7oL5OI/B0lCShPR9sJjKFkQ60vs43ltmkTLNSGoKLnxXMlBjdpCxweDDAMiF3
-p/vCG2hUa7auOkMWMYIkM81rcQsRB0qj0ilt3zcTsS860oKGzNrtPeAcz3KxbYWI
-nJEhQVy3S4U59b7mm3cGz3/3m2NUjn+b8sA7J8F9K5mnFkCUCRva6zte6qmL2ruH
-sGRav9ICLGxDqiJoic6Y2ReffgU77RDJO+sTuJme+VeTDE77vBIHvCVCSG+e0RSs
-L+6nQYDtjHH5bLgoSXq9D3hgxEsCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkq
-hkiG9w0BAQUFAAOCAQEARWcYJvkleq+qfOPPI1eQAuBf5OZwz8mthsBvMfsQMCLk
-+wSxdlJvJyvPoFgZBv8YbTde2b40lQe94gTsGDUXGEkOsERrjt/jqHxO9X8n7a+z
-M/okeSSYnam0Zcl1M9sa5L7BVXbGh/sE9j/bXrAhz64np5P773dZTLTPYjBf2Grp
-NheCsGDtJbegJqn7pp5MfAKcyzLxnZAE0cilSVKZB7R3urISJVdwiRtkprJL7IwQ
-oIu+XhUgdZbx7TQQnjTkq3COSIIof5+5oqFnhzTqfSgi/06dWWvCwl17Mz+vCMZ9
-1MA8L4cR+iNdJYlCQPbk30laJx1akfqnpv7qTXq7nQ==
+MIID+TCCAuGgAwIBAgIUdoaMai7jgEXI5Q1OWcMPoE/VtpIwDQYJKoZIhvcNAQEL
+BQAwgYsxKDAmBgNVBAMMH1Rlc3QgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkx
+CzAJBgNVBAgMAkNBMQswCQYDVQQGEwJVUzEcMBoGCSqGSIb3DQEJARYNcm9vdEB0
+ZXN0LmNvbTENMAsGA1UECgwEVGVzdDEYMBYGA1UECwwPVGVzdCBEZXBhcnRtZW50
+MB4XDTIwMDQyNzA2MzM0NVoXDTI1MDQyNjA2MzM0NVowgYsxKDAmBgNVBAMMH1Rl
+c3QgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxCzAJBgNVBAgMAkNBMQswCQYD
+VQQGEwJVUzEcMBoGCSqGSIb3DQEJARYNcm9vdEB0ZXN0LmNvbTENMAsGA1UECgwE
+VGVzdDEYMBYGA1UECwwPVGVzdCBEZXBhcnRtZW50MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAunYFlfIfYcp7RS1+oO4x9z1C1t9FiHr+XjCrY+QI6C/r
+FSWqD4nA5LgV9youq4isYFQoXYTmtxZciggZ+wEbclAC6Dz2ZWFbYWoyUY6qAf2M
+D3rz3VNxfAVuhvs0AcQDG/0UG+EakndfC2MDD2BZkiGLFm29PubP0aHafVRzk2L4
+vXb0NXes3qXT6wZeg0ST0qAS0gnVC9AILYiGP/s8x7iyFoGaVmm8KSwpQHghfPME
+2qU6C8sqcezsxccFZzoFWM6C+HZJi2i6vr6jXwWe0aLdZSnhkFXhiHHc1ffdZfcS
+GZpRbx32EqBnr4W7iT59XjC19HLgO3TlwqZG53tbdQIDAQABo1MwUTAdBgNVHQ4E
+FgQUT1kDDTXj0kZ+xS8covSbuV1iZ4wwHwYDVR0jBBgwFoAUT1kDDTXj0kZ+xS8c
+ovSbuV1iZ4wwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEArpon
+m4GxIVqlVanpdFoWcRAhS+lGuxClaJPI/VjmCaOb6ORyrHnk7eCwKXgDgsWcM87N
+tiakQH4Y2zHCN3HVkIjWgwrNLkdwSPYykYsWGxc+tgonYkNqyo0gMk8fDT/pwLzO
+LcnvKS0HIoYYDuCbeZsyv48kDjSplAD1Ybl3+4lZ544O7SW6+5tSTwTgg4py93yc
+WHBTDdjNMUqLarpgYA0RKVQoyJe9wLpNd3kWctobkKGBOP7/9THWTqMRFW7TUWO2
+yjxMbklUSH7W2jA/2KzF4IdN6G8Bn52vd+nWU29g4rfmLKZvQZPhvjjGdsE59Xq3
+EVAvVnZm52Ne+YlbRg==
 -----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/t/cakey.pem 
new/memcached-1.6.6/t/cakey.pem
--- old/memcached-1.6.5/t/cakey.pem     2019-12-14 00:56:48.000000000 +0100
+++ new/memcached-1.6.6/t/cakey.pem     2020-05-13 05:24:24.000000000 +0200
@@ -1,30 +1,30 @@
 -----BEGIN ENCRYPTED PRIVATE KEY-----
-MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIigxGWoxgfJACAggA
-MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECHgfMUpgAX2tBIIEyFcJT6kFw1TH
-kmwmbtB+MPW3+zUxoKZuP+L7UCaMHQPHcQ4/AThVNPPhXa++/lgL0P1q33SBhqsm
-HK5nRfzEe75bQIFoZ1FFg3YGaAB4KUPm5vJ4XhmyzCEiUvp75mgiw38fkL5ZCPqW
-eitNKgyAYEl9zIrF1cRyN/s6O6mPR8NOPbVL2ZtCGGvy/LN+mhlolvuMFySEEI+s
-nzu5682LU7QQOzLFB/q3Vqrt2tafzoIHYtj8YYVsPMO6bWkoKx1BWyTCuesFOLTN
-agnXx3AKtmD8Q0C3vvdmpqNnWw1iP1Vc4r/BZwmD2MFXUh8cExBGRaPIfUr41BoR
-p1bHqtcAsbipuU7qQ6wjnLyuqAvFQxy1LCBGNyBrzMMD25+lXh9BoeS9H5L+WW0N
-pcAPA5FoD1RQc27ZXVf0kRGEy8Vj/UsE3Pf74Z8u16bC+6ojAUvvvc49ERm0t85O
-T5rP9ql3sITtg4EvNdNhHtYdJGVkZQ7H8T9G1OXEf4dE/vqYNnqhtFm+5CyWb8Vk
-Rly2XFbBs4I4UnVIi0Nt0ybIqqwAvvKAU5kSOIEy6Q9mvUYyvBZrhY5Va2KEwaTU
-ig2yjWxWFoOArE1UVu2kJaslaOKqAr9OPqW510+6G9s+lREm7EYqUd6Ut1cwcXUv
-/s1fdx/As6U6qApH9+TC0XqNm5yXNCuADVtK2PmOoanczpEXZTZGijylGFDROQQj
-bofjoB0hiN80Xc+II0zClGwXwZz43Xy4uVIMbvMBi3yp03ct1RMwORPCGkiH/1uV
-iazsfV4DAD8KdGmgUL57WfnMPZJCEfqpM4YrM7rKu3Md8v8hKyFGUAdeNsCFTwwY
-g2E6NXWbtqGrUFC/r/70/axfijWRoyPaLcBoourc5HcZ+K/TmmY+uOxKBcJsfS/t
-HiRZ5l48sva+lZVWN6KNG5N93pa3TqgCCfp56VPOo3o3kj4XAJ3aMK6RsK3QrGi7
-TTXlv/hKFYW3GUJ0IGNfinnARbdMoD6ww8nQLe3Id3HKzqh7xfQb4xJZpQhpSXVS
-KJmf5H80GHQnJq54Xwi7daYmxpTS+yNHuxKq+ryBqO7WeotNkOCbG6Flc/GBO6a3
-7rbSOTmqpyJPTRPQEf1ogHNgCG9txPIbZRAi9PPJVn/gV/dKttUpj5OGI9fjDaSK
-ILEwLuokdRwTAGeFRIkucKnvA0pzXQkZRMG4D4kYzxskutUQVvKFAsqvEkb2c6qL
-j8MjKYfYZqxG44o68aOk8H42vR6lkemclj6byvLfnqbZPUka3MUnrG8oPI+vNLlg
-N57QpU2Kw5joBf1oCSROTXEv3BT/JYE3qQ2T6q/NGgG0s8aXbROh/7HaZJrENmoD
-pDJZp+bSGn6On6vmDu98F3fyubKgg611tA5pyDdWE4MSvJBGKHc2/HmqgxbLtK1c
-gn2BBefAi+Qqzc+XSeJxh2nlAx7ohvgEcodO3Vqb9eSoPviMHyO9bap8QIFJqTNW
-QK6rMqtou0QTEcXp5cIlVRW59zZHKEPpNpJ08fNtxB5n/Ngo+vo86LLVUysfbwkY
-p7GK4kraBGhU3rEXzuFBXn1Cr7015VrAC8mLafKqar7OLhLduHDRPxGidXJc6oxE
-2PpJudZFhS6P+0M5AkMq2Q==
+MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQII8yP9NBTVEACAggA
+MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECOLCMMR2QyzdBIIEyMf2/xsaOdiV
+LijpsozRrg7iABViWNW6jD1yfth5zsqVEhdhKgXGWXmOp6GtPh6HH59C9PuVl02g
+T5kdvI3sCQ45ypJ0+voo4vN+gOU9sFaMZ2AirUFypPwwyuui8BcjVwvdoqioQTp/
+kCI16R4CZtKLbbUHK3YQeYp8IEi87AQbdUK/kYRKJVfmAM0DmvJoTqLozwaX7G2f
+I70dJff8clCP5RYlEcD9y4+OMhiR8cWXbiHjG098KwE2ciavbBWN5S3jmKaefp0O
+G5X0k2uXlLSvnC67yqbH41n67LPBBH79w5n3I2XeSszDTNCnr+RUCd514nOEZXJJ
+1VQI0NdpMD5RmHBBkvc/DS5Bu5lnPqZO1w2JwfhpjjsbmB29ZKmuEof1E0Z5DcWV
+EhZgwdZG/7kzSQqbVQYNVwfLJloQE2FSibGUVZQuXrGzWvznAEhoY5FnjCSz/1JY
+JWlMHVWWW56sfA+vSXS1sbm1vJzMaB1w/dap9mzxiWvOgRlu9LzNXfzc3z7wPG1f
+OMDk/JzwSK36ijq+sdsywaEwgaCFpsLXgB2GfNnJ5IfEfL71hjGqpjAkM1tQf7sA
+bz0hY4qnmPjCStwdyujvsXz5JbeJFDK7DIyHW4Efoj1PVchOEqDq7NU6x0NWmcnP
+unpRV61BvKAkiYBBk0TJnuHBeQeP1kHmuj1Ez2SIhP43qr8fcnvOyAsCYDI+ig7G
+iCuinAiq2pwsruBOAFMc019C1ILgNkZrjOrnBsi/gzyEjPBAj143mopuHA05nr8S
+SsJbclEw1oPmpek6eGJujIwlDgx1tOb0gErCzfvHwUcZ/ivr8WKl4ptkXS8LaSNs
+1yv44MGprz3qbnwmJUtvUces3UFdmrbZomsJutXWFCHxsuWjRXGbIWqCmlhvmTy/
+Wamzw/f7z6vcCYU9AJPxYNkyfy9JlK4HnoI/ol+59+wQhh8uPYpLAkXVM1mhJ/NZ
+3HdfUHovZNIn7l0L0Pfvzy1ZMAY9Lu40wlV6ZOZvSSlCG68BZF3xN0aIwW0cXBpI
+gxRlteDK9EqlOOr02xMc+W1CxGW/a5T4YoIN6IY5nbhD4xCZFO63KeJsC5TPNXPm
+z2SHoFqTsN82COoCysIdqCfegcrZltnm440C8vhRdgPMgnJnU0bcMzRrmndOHXaz
++GsX+/WCVdKLGGpMWCpAET24gA/KF6QuzcRUvDUKrAwr6ZIlumc3daXTSU1cJLcV
+uxvWIMoZ9IZCmImTPuzkI74BCqf2Si6G4n5dM3JB8blY9AmsxeOioI+EkGFLGWkp
+wii3rSon9umzsLWSAuS/is6iVk7R5CMYAPa1mdec3do2/8NbKgX7miCxBLYuO9L8
+ObRtxLtv9xVLtwmGh5EE3vsp7+KWE1kTkrYYEfZW8Yhtxb7f8rfQi7EX8n05XHt1
+4iNjKy8dT6F8J8p4Vh/SYc/tJDZw2C66rBrDfR6UuEk1BrrTT96SeNXqUetzwkIP
+Ak+r5+HuhwQqgQsvYF90D8QgiJ5+XPDIRVbdeCG5NaW1gza5WJ5Y1qmflGiy9nve
+rctwKxuKXIwl0GT0WZZxeeefAC2BQ6Wl2uvA8jpS8VT24MwI6Nazu5d72VPvs0tw
+TIRsDH+GQXfzwu9tJ4QcQg==
 -----END ENCRYPTED PRIVATE KEY-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/t/client_crt.pem 
new/memcached-1.6.6/t/client_crt.pem
--- old/memcached-1.6.5/t/client_crt.pem        2019-12-14 00:56:48.000000000 
+0100
+++ new/memcached-1.6.6/t/client_crt.pem        2020-05-13 05:24:24.000000000 
+0200
@@ -1,68 +1,72 @@
 Certificate:
     Data:
-        Version: 3 (0x2)
-        Serial Number: 2 (0x2)
-    Signature Algorithm: sha1WithRSAEncryption
-        Issuer: CN=Test Root Certificate Authority, ST=CA, 
C=US/[email protected], O=Test, OU=Test Department
+        Version: 1 (0x0)
+        Serial Number:
+            71:a5:f7:f3:8f:7e:0a:d7:79:ce:b6:eb:01:60:ac:00:c3:76:5a:9f
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: CN = Test Root Certificate Authority, ST = CA, C = US, 
emailAddress = [email protected], O = Test, OU = Test Department
         Validity
-            Not Before: Jan  7 19:26:14 2019 GMT
-            Not After : Jan  6 19:26:14 2024 GMT
-        Subject: CN=client.test.com, ST=CA, 
C=US/[email protected], O=Test Client, OU=Subunit of Test 
Organization
+            Not Before: Apr 27 06:57:23 2020 GMT
+            Not After : Apr 26 06:57:23 2025 GMT
+        Subject: C = US, ST = CA, O = Test Client, OU = Subunit of Test 
Organization, CN = client.test.com, emailAddress = [email protected]
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
-                Public-Key: (1024 bit)
+                RSA Public-Key: (2048 bit)
                 Modulus:
-                    00:a6:a4:24:19:14:9e:96:0a:3e:b8:14:7b:e9:04:
-                    ca:a0:ef:61:1a:e6:63:84:51:34:10:58:9e:f2:6f:
-                    9d:27:64:e5:a9:32:02:e2:fb:f0:c5:47:d0:b2:8f:
-                    f4:19:71:2a:de:f8:de:ae:cb:0b:41:cf:cc:76:63:
-                    9b:4a:9b:12:50:5f:b9:b4:fc:e3:fd:05:85:7f:a7:
-                    1c:ad:ec:d1:40:70:fa:4c:51:88:a3:d4:e5:49:b2:
-                    72:7c:2e:4d:c5:00:ae:40:96:15:84:34:5f:99:75:
-                    7b:6a:00:d3:ec:a0:7d:82:d3:71:a3:79:cc:d4:4c:
-                    3b:50:49:d0:9b:27:e4:0b:cb
+                    00:9e:9a:94:cc:21:a4:01:ec:9d:c4:37:41:8c:62:
+                    f6:05:f2:f0:b2:89:a5:8c:62:40:78:7d:91:6e:15:
+                    76:97:c0:0e:e0:d1:12:77:cf:51:42:f9:6e:1a:eb:
+                    9a:24:c6:5c:5d:0b:8c:04:5f:4f:9c:f2:be:03:9f:
+                    e2:b9:07:21:eb:7f:7d:0e:31:b2:c4:3c:86:d7:83:
+                    bc:75:b6:02:d6:6b:37:da:70:ed:14:83:59:dd:18:
+                    8f:06:55:20:26:d3:fc:3c:9a:0c:a2:66:14:a5:5f:
+                    b8:cc:9f:76:cb:f1:47:61:6b:0e:9e:58:ba:f7:58:
+                    89:64:39:08:23:cb:77:86:29:a9:55:79:52:4f:b7:
+                    92:36:8e:3e:c2:c6:2f:ea:25:86:8b:88:91:16:90:
+                    c8:ca:36:15:97:56:2f:7c:a9:a7:32:04:9b:af:71:
+                    a8:34:6d:5b:b7:3e:a5:6d:90:c3:71:c7:b3:c1:7e:
+                    88:3c:fe:1a:58:22:be:a5:1b:92:69:d1:d9:42:21:
+                    62:33:11:05:d0:92:d8:af:53:c3:f3:3a:17:49:dc:
+                    b8:5b:22:5a:4d:37:0c:fe:bf:c2:ca:ae:db:50:ab:
+                    3c:c5:b4:43:64:18:ef:3e:cf:7b:b2:b7:f0:0c:80:
+                    6f:bd:25:34:31:e4:77:e4:8c:73:6f:72:3f:2c:32:
+                    10:27
                 Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Basic Constraints:
-                CA:FALSE
-            X509v3 Key Usage:
-                Digital Signature, Non Repudiation, Key Encipherment
-            X509v3 Subject Alternative Name:
-                DNS:client.test.com, DNS:alt.client.test.com
-    Signature Algorithm: sha1WithRSAEncryption
-         4f:11:ff:ed:05:e2:80:75:bd:e0:b3:f3:21:34:65:50:67:ff:
-         3c:45:88:58:58:77:9a:6e:f6:1e:74:f9:cb:02:e1:31:e0:52:
-         d9:f9:63:e5:fb:01:d2:83:df:20:c1:77:a7:15:da:18:3a:e0:
-         ea:e0:66:ab:41:21:9e:36:9c:36:28:1c:cb:20:43:94:94:e8:
-         9b:0d:3d:2a:ac:20:48:5b:b8:c0:45:0d:5c:30:91:be:ba:67:
-         b9:f6:bd:64:08:ab:af:35:a1:db:dd:54:e8:32:c9:3a:95:34:
-         26:8f:a1:1b:a1:a2:32:47:a0:e0:a4:11:06:dc:d2:67:87:1a:
-         51:50:bc:09:26:e3:1c:e7:83:a5:69:48:92:6c:87:94:46:f6:
-         b2:45:55:6f:5e:f2:6b:c8:9d:65:61:31:83:09:71:60:71:d5:
-         9c:44:65:27:f6:3f:fd:fb:40:30:47:02:b1:6f:5a:ff:7a:c5:
-         83:e0:80:52:53:a7:2c:24:71:51:81:df:3f:2f:1d:42:df:bc:
-         86:b4:0c:18:64:8d:33:a7:c0:e8:f2:9e:f5:0b:92:c4:4d:f7:
-         4b:2f:13:8d:81:25:f3:47:f5:72:71:c2:62:3d:36:09:3c:ec:
-         d1:15:6d:15:77:28:c6:de:f9:73:5d:5b:a0:a4:0f:f2:50:a0:
-         00:20:87:fa
+    Signature Algorithm: sha256WithRSAEncryption
+         aa:c0:5a:6b:d6:2f:24:b1:fe:01:3a:78:a7:6d:19:82:d3:1a:
+         40:8e:6b:c3:9e:8e:8d:e0:8a:25:28:8e:92:b4:8e:05:ac:a1:
+         65:7c:a0:7e:89:82:e3:17:41:16:ec:95:76:83:5b:a9:36:eb:
+         fb:6e:d6:37:73:ab:46:23:9d:c9:99:72:1c:0c:25:e8:e7:22:
+         4c:20:b0:05:3a:95:57:ce:1f:93:82:3f:2b:e6:72:b7:67:d3:
+         83:ce:73:8d:fb:69:64:d5:a6:52:3a:6e:a2:0d:15:05:79:c1:
+         60:d8:03:4a:f6:d6:63:f7:f4:43:92:4f:eb:2f:53:44:9b:c8:
+         33:7b:9a:a2:10:54:71:cd:4c:6a:a0:51:4c:4a:d6:26:cb:21:
+         14:f0:54:2a:e8:b5:b9:cc:b2:6f:17:75:de:04:cd:70:52:00:
+         c6:93:66:b4:c3:f3:8e:73:c9:4f:0a:b0:3b:11:36:88:77:d4:
+         b6:5b:a2:ea:db:df:90:b1:d9:a5:86:a7:74:82:60:10:b2:c1:
+         32:3b:a7:b9:87:61:66:96:37:e3:62:ff:7a:56:e4:ec:7c:73:
+         16:c8:16:a2:81:49:19:39:7b:3f:f2:a1:e2:58:8f:ef:c8:2d:
+         b5:a3:c6:22:d1:22:91:d9:6e:9a:2c:87:56:52:d0:e9:a6:fe:
+         e6:44:4f:8e
 -----BEGIN CERTIFICATE-----
-MIIDZTCCAk2gAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBizEoMCYGA1UEAwwfVGVz
-dCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eTELMAkGA1UECAwCQ0ExCzAJBgNV
-BAYTAlVTMRwwGgYJKoZIhvcNAQkBFg1yb290QHRlc3QuY29tMQ0wCwYDVQQKDARU
-ZXN0MRgwFgYDVQQLDA9UZXN0IERlcGFydG1lbnQwHhcNMTkwMTA3MTkyNjE0WhcN
-MjQwMTA2MTkyNjE0WjCBljEYMBYGA1UEAwwPY2xpZW50LnRlc3QuY29tMQswCQYD
-VQQIDAJDQTELMAkGA1UEBhMCVVMxIzAhBgkqhkiG9w0BCQEWFHJvb3RAY2xpZW50
-LnRlc3QuY29tMRQwEgYDVQQKDAtUZXN0IENsaWVudDElMCMGA1UECwwcU3VidW5p
-dCBvZiBUZXN0IE9yZ2FuaXphdGlvbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
-gYEApqQkGRSelgo+uBR76QTKoO9hGuZjhFE0EFie8m+dJ2TlqTIC4vvwxUfQso/0
-GXEq3vjerssLQc/MdmObSpsSUF+5tPzj/QWFf6ccrezRQHD6TFGIo9TlSbJyfC5N
-xQCuQJYVhDRfmXV7agDT7KB9gtNxo3nM1Ew7UEnQmyfkC8sCAwEAAaNLMEkwCQYD
-VR0TBAIwADALBgNVHQ8EBAMCBeAwLwYDVR0RBCgwJoIPY2xpZW50LnRlc3QuY29t
-ghNhbHQuY2xpZW50LnRlc3QuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQBPEf/tBeKA
-db3gs/MhNGVQZ/88RYhYWHeabvYedPnLAuEx4FLZ+WPl+wHSg98gwXenFdoYOuDq
-4GarQSGeNpw2KBzLIEOUlOibDT0qrCBIW7jARQ1cMJG+ume59r1kCKuvNaHb3VTo
-Msk6lTQmj6EboaIyR6DgpBEG3NJnhxpRULwJJuMc54OlaUiSbIeURvayRVVvXvJr
-yJ1lYTGDCXFgcdWcRGUn9j/9+0AwRwKxb1r/esWD4IBSU6csJHFRgd8/Lx1C37yG
-tAwYZI0zp8Do8p71C5LETfdLLxONgSXzR/VyccJiPTYJPOzRFW0VdyjG3vlzXVug
-pA/yUKAAIIf6
+MIIDqjCCApICFHGl9/OPfgrXec626wFgrADDdlqfMA0GCSqGSIb3DQEBCwUAMIGL
+MSgwJgYDVQQDDB9UZXN0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQswCQYD
+VQQIDAJDQTELMAkGA1UEBhMCVVMxHDAaBgkqhkiG9w0BCQEWDXJvb3RAdGVzdC5j
+b20xDTALBgNVBAoMBFRlc3QxGDAWBgNVBAsMD1Rlc3QgRGVwYXJ0bWVudDAeFw0y
+MDA0MjcwNjU3MjNaFw0yNTA0MjYwNjU3MjNaMIGWMQswCQYDVQQGEwJVUzELMAkG
+A1UECAwCQ0ExFDASBgNVBAoMC1Rlc3QgQ2xpZW50MSUwIwYDVQQLDBxTdWJ1bml0
+IG9mIFRlc3QgT3JnYW5pemF0aW9uMRgwFgYDVQQDDA9jbGllbnQudGVzdC5jb20x
+IzAhBgkqhkiG9w0BCQEWFHJvb3RAY2xpZW50LnRlc3QuY29tMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnpqUzCGkAeydxDdBjGL2BfLwsomljGJAeH2R
+bhV2l8AO4NESd89RQvluGuuaJMZcXQuMBF9PnPK+A5/iuQch6399DjGyxDyG14O8
+dbYC1ms32nDtFINZ3RiPBlUgJtP8PJoMomYUpV+4zJ92y/FHYWsOnli691iJZDkI
+I8t3himpVXlST7eSNo4+wsYv6iWGi4iRFpDIyjYVl1YvfKmnMgSbr3GoNG1btz6l
+bZDDccezwX6IPP4aWCK+pRuSadHZQiFiMxEF0JLYr1PD8zoXSdy4WyJaTTcM/r/C
+yq7bUKs8xbRDZBjvPs97srfwDIBvvSU0MeR35Ixzb3I/LDIQJwIDAQABMA0GCSqG
+SIb3DQEBCwUAA4IBAQCqwFpr1i8ksf4BOninbRmC0xpAjmvDno6N4IolKI6StI4F
+rKFlfKB+iYLjF0EW7JV2g1upNuv7btY3c6tGI53JmXIcDCXo5yJMILAFOpVXzh+T
+gj8r5nK3Z9ODznON+2lk1aZSOm6iDRUFecFg2ANK9tZj9/RDkk/rL1NEm8gze5qi
+EFRxzUxqoFFMStYmyyEU8FQq6LW5zLJvF3XeBM1wUgDGk2a0w/OOc8lPCrA7ETaI
+d9S2W6Lq29+Qsdmlhqd0gmAQssEyO6e5h2FmljfjYv96VuTsfHMWyBaigUkZOXs/
+8qHiWI/vyC21o8Yi0SKR2W6aLIdWUtDppv7mRE+O
 -----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/t/client_key.pem 
new/memcached-1.6.6/t/client_key.pem
--- old/memcached-1.6.5/t/client_key.pem        2019-12-14 00:56:48.000000000 
+0100
+++ new/memcached-1.6.6/t/client_key.pem        2020-05-13 05:24:24.000000000 
+0200
@@ -1,15 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/t/lib/MemcachedTest.pm 
new/memcached-1.6.6/t/lib/MemcachedTest.pm
--- old/memcached-1.6.5/t/lib/MemcachedTest.pm  2020-04-12 22:39:36.000000000 
+0200
+++ new/memcached-1.6.6/t/lib/MemcachedTest.pm  2020-05-13 05:24:24.000000000 
+0200
@@ -2,6 +2,7 @@
 use strict;
 use IO::Socket::INET;
 use IO::Socket::UNIX;
+use POSIX ":sys_wait_h";
 use Exporter 'import';
 use Carp qw(croak);
 use vars qw(@EXPORT);
@@ -248,6 +249,11 @@
     return system("$exe -h");
 }
 
+# -1 if the pid is actually dead.
+sub is_running {
+    return waitpid($_[0], WNOHANG) >= 0 ? 1 : 0;
+}
+
 sub new_memcached {
     my ($args, $passed_port) = @_;
     my $port = $passed_port;
@@ -306,23 +312,43 @@
     my $exe = get_memcached_exe();
 
     unless ($childpid) {
-        #print STDERR "RUN: $exe $args\n";
-        exec "$builddir/timedrun 600 $exe $args";
+        my $valgrind = "";
+        my $valgrind_args = "--quiet --error-exitcode=1 
--exit-on-first-error=yes";
+        if ($ENV{VALGRIND_ARGS}) {
+            $valgrind_args = $ENV{VALGRIND_ARGS};
+        }
+        if ($ENV{VALGRIND_TEST}) {
+            $valgrind = "valgrind $valgrind_args";
+            # NOTE: caller file stuff.
+            $valgrind .= " $ENV{VALGRIND_EXTRA_ARGS}";
+        }
+        my $cmd = "$builddir/timedrun 600 $valgrind $exe $args";
+        #print STDERR "RUN: $cmd\n\n";
+        exec $cmd;
         exit; # never gets here.
     }
 
     # unix domain sockets
     if ($args =~ /-s (\S+)/) {
-        sleep 1;
+        # A slow/emulated/valgrinded/etc system may take longer than a second
+        # for the unix socket to appear.
         my $filename = $1;
-        my $conn = IO::Socket::UNIX->new(Peer => $filename) ||
-            croak("Failed to connect to unix domain socket: $! '$filename'");
-
-        return Memcached::Handle->new(pid  => $childpid,
-                                      conn => $conn,
-                                      domainsocket => $filename,
-                                      host => $host,
-                                      port => $port);
+        for (1..20) {
+            sleep 1;
+            my $conn = IO::Socket::UNIX->new(Peer => $filename);
+
+            if ($conn) {
+                return Memcached::Handle->new(pid  => $childpid,
+                                              conn => $conn,
+                                              domainsocket => $filename,
+                                              host => $host,
+                                              port => $port);
+            } else {
+                croak("Failed to connect to unix socket: memcached not 
running") unless is_running($childpid);
+                sleep 1;
+            }
+        }
+        croak("Failed to connect to unix domain socket: $! '$filename'") if $@;
     }
 
     # try to connect / find open port, only if we're not using unix domain
@@ -347,7 +373,8 @@
                                           host => $host,
                                           port => $port);
         }
-        select undef, undef, undef, 0.10;
+        croak("Failed to connect: memcached not running") unless 
is_running($childpid);
+        select undef, undef, undef, 0.25;
     }
     croak("Failed to startup/connect to memcached server.");
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/t/lru-crawler.t 
new/memcached-1.6.6/t/lru-crawler.t
--- old/memcached-1.6.5/t/lru-crawler.t 2020-04-04 04:14:26.000000000 +0200
+++ new/memcached-1.6.6/t/lru-crawler.t 2020-05-13 05:24:24.000000000 +0200
@@ -88,10 +88,20 @@
 
 print $sock "lru_crawler disable\r\n";
 is(scalar <$sock>, "OK\r\n", "disabled lru crawler");
-{
+my $settings_match = 0;
+# TODO: we retry a few times since the settings value is changed
+# outside of a memory barrier, but the thread is stopped before the OK is
+# returned.
+# At some point better handling of the setings synchronization should happen.
+for (1 .. 10) {
     my $stats = mem_stats($server->sock, ' settings');
-    is($stats->{lru_crawler}, "no");
+    if ($stats->{lru_crawler} eq "no") {
+        $settings_match = 1;
+        last;
+    }
+    sleep 1;
 }
+is($settings_match, 1, "settings output matches crawler state");
 
 $server->stop;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/t/maxconns.t 
new/memcached-1.6.6/t/maxconns.t
--- old/memcached-1.6.5/t/maxconns.t    2019-04-28 02:18:53.000000000 +0200
+++ new/memcached-1.6.6/t/maxconns.t    2020-05-13 05:24:24.000000000 +0200
@@ -5,12 +5,16 @@
 use strict;
 use warnings;
 
-use Test::More tests => 11;
+use Test::More;
 
 use FindBin qw($Bin);
 use lib "$Bin/lib";
 use MemcachedTest;
 
+plan skip_all => "maxconns test does not work";
+exit 0;
+
+plan tests => 6;
 
 # start up a server with 10 maximum connections
 my $server = new_memcached('-c 100');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/t/restart.t 
new/memcached-1.6.6/t/restart.t
--- old/memcached-1.6.5/t/restart.t     2020-04-12 22:39:36.000000000 +0200
+++ new/memcached-1.6.6/t/restart.t     2020-05-13 05:24:24.000000000 +0200
@@ -90,7 +90,7 @@
 
 diag "Data that should expire while stopped.";
 {
-    print $sock "set low1 0 8 2\r\nbo\r\n";
+    print $sock "set low1 0 5 2\r\nbo\r\n";
     like(scalar <$sock>, qr/STORED/, "stored low ttl item");
     # This one should stay.
     print $sock "set low2 0 20 2\r\nmo\r\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/t/server_crt.pem 
new/memcached-1.6.6/t/server_crt.pem
--- old/memcached-1.6.5/t/server_crt.pem        2020-04-12 03:28:14.000000000 
+0200
+++ new/memcached-1.6.6/t/server_crt.pem        2020-05-13 05:24:24.000000000 
+0200
@@ -1,67 +1,72 @@
 Certificate:
     Data:
-        Version: 3 (0x2)
-        Serial Number: 1 (0x1)
-    Signature Algorithm: sha1WithRSAEncryption
-        Issuer: CN=Test Root Certificate Authority, ST=CA, 
C=US/[email protected], O=Test, OU=Test Department
+        Version: 1 (0x0)
+        Serial Number:
+            71:a5:f7:f3:8f:7e:0a:d7:79:ce:b6:eb:01:60:ac:00:c3:76:5a:a0
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: CN = Test Root Certificate Authority, ST = CA, C = US, 
emailAddress = [email protected], O = Test, OU = Test Department
         Validity
-            Not Before: Jan  7 18:25:01 2019 GMT
-            Not After : Jan  6 18:25:01 2024 GMT
-        Subject: CN=test.com, ST=CA, C=US/[email protected], O=Test, 
OU=Subunit of Test Organization
+            Not Before: Apr 27 07:01:42 2020 GMT
+            Not After : Apr 26 07:01:42 2025 GMT
+        Subject: C = US, ST = CA, O = Test, OU = Subunit of Test Organization, 
CN = test.com, emailAddress = [email protected]
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
-                Public-Key: (1024 bit)
+                RSA Public-Key: (2048 bit)
                 Modulus:
-                    00:ca:76:35:79:91:e8:a2:ee:ef:f4:35:7e:29:85:
-                    75:90:65:5a:60:f8:a0:d9:ef:68:d1:61:79:69:d7:
-                    e2:7b:f1:67:71:65:50:31:4e:9a:f8:6f:27:e9:05:
-                    0b:0e:76:95:24:9b:c2:bf:90:e5:6b:45:fd:e3:54:
-                    ac:d5:62:90:4e:37:de:8f:ae:96:f6:b3:57:eb:ad:
-                    b8:44:13:5d:a7:34:76:c1:26:49:91:67:3e:5e:52:
-                    68:c1:1c:7f:91:c7:9e:01:e2:be:a7:a8:eb:3f:44:
-                    6d:c7:c5:82:4b:97:d9:3f:c0:51:99:1b:20:df:12:
-                    a3:e6:bb:66:45:6d:b4:e1:07
+                    00:d6:cc:70:e1:24:a6:11:49:80:d2:44:4b:60:b7:
+                    5b:7b:ff:ed:2a:ba:dd:e5:88:4d:d9:d1:5a:c0:24:
+                    42:e7:40:ab:4d:cd:f1:b9:e3:8c:b6:93:2f:5a:e6:
+                    eb:45:36:f3:5e:e2:8e:1a:5d:ba:fd:b5:f7:66:d7:
+                    23:20:df:08:b5:70:45:43:01:03:47:7b:6e:2b:6c:
+                    1b:d8:b6:20:be:7c:45:49:be:17:a1:00:68:a8:11:
+                    f3:1f:15:c3:0e:39:6b:16:ee:05:36:0e:07:4d:c3:
+                    28:f6:9b:9c:66:e2:b5:56:76:38:fd:12:db:41:fa:
+                    e4:02:67:64:54:a4:7d:28:9f:37:4e:e2:12:19:7f:
+                    79:14:17:e5:dd:c0:12:7c:33:52:ff:df:82:08:3b:
+                    61:b5:c6:59:50:49:93:87:20:97:45:52:33:4b:95:
+                    08:0c:6f:29:23:74:e3:dc:22:19:d4:b6:79:e6:1d:
+                    4f:07:75:47:d9:25:ee:05:97:cc:78:84:b9:64:36:
+                    9b:d2:b9:f9:2c:0f:40:e8:e9:16:cf:17:f5:3b:fb:
+                    56:a5:80:1a:29:93:90:0b:d6:4c:9a:8f:8e:d9:dd:
+                    9c:9d:06:da:a1:db:bc:44:14:b0:93:80:8c:3d:37:
+                    e7:c3:4b:04:01:81:4b:f9:78:d0:b4:ed:51:78:24:
+                    fd:cd
                 Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Basic Constraints:
-                CA:FALSE
-            X509v3 Key Usage:
-                Digital Signature, Non Repudiation, Key Encipherment
-            X509v3 Subject Alternative Name:
-                DNS:test.com, DNS:alt.test.com
-    Signature Algorithm: sha1WithRSAEncryption
-         61:c1:18:b4:04:79:05:0e:b9:79:2f:0e:3f:aa:f1:36:e3:90:
-         b9:c6:99:25:53:4a:06:64:52:92:29:c5:09:41:a6:16:74:1b:
-         3c:4e:81:32:c2:d8:54:e0:1e:08:45:cf:f1:d0:ad:ea:11:1a:
-         b5:cf:7c:98:8a:dd:c1:01:e4:d0:f5:8e:60:fa:7f:e7:74:2d:
-         91:43:81:bd:95:92:41:66:84:8b:8c:70:d7:2f:d4:2f:37:82:
-         8f:9a:ef:c0:7d:c5:56:56:92:7a:00:b6:30:65:37:4c:6c:7a:
-         ba:cc:e2:dc:73:e9:f5:2c:3c:3e:31:67:ee:3d:b7:78:96:89:
-         ba:be:4f:85:a2:a8:83:3e:53:20:f0:bf:29:50:dc:23:38:58:
-         d8:33:f5:7b:4a:12:df:2b:34:4c:1c:f1:76:6b:86:95:74:43:
-         29:f7:68:f0:ca:04:08:89:ac:97:7d:05:14:a0:ca:81:56:5c:
-         dd:c3:56:a3:53:01:0a:01:5c:55:b4:39:10:1b:be:47:19:58:
-         a1:f2:e6:0c:08:95:b0:35:4e:6c:81:6d:b9:cf:0e:5c:70:ff:
-         f3:b4:a7:95:69:1a:58:b7:ac:cc:2c:79:47:7e:20:17:cc:36:
-         be:2c:10:11:31:28:63:dd:6f:8d:8d:e9:11:ea:ca:fc:10:0a:
-         e0:ae:53:db
+    Signature Algorithm: sha256WithRSAEncryption
+         14:1e:2a:7a:94:1d:c7:9a:69:c1:51:af:57:d0:b5:53:51:2f:
+         bb:a5:a6:fa:28:c4:02:a9:74:83:b8:3e:ce:26:44:dd:e7:71:
+         ef:3e:f6:20:91:da:f3:af:87:c4:c1:dc:6d:64:ee:64:86:98:
+         07:45:8c:23:2e:b3:7a:ed:c4:dd:3a:5c:ab:20:ff:16:7d:66:
+         53:45:7e:d5:ff:fb:dd:47:e6:25:a1:3c:97:27:db:04:f5:f4:
+         de:bb:f2:18:ac:99:a6:b3:39:b4:c0:08:f9:53:6a:22:b5:64:
+         8c:2a:81:8c:2a:4e:1c:45:ca:94:68:7a:c1:0f:5d:c2:09:37:
+         f4:d5:5a:bf:63:62:dd:e1:e3:37:8f:2f:11:8d:e4:91:1b:43:
+         d2:a1:ea:14:7b:f9:b1:4e:97:2f:7e:71:2a:0c:67:a4:46:89:
+         93:19:04:d4:93:a5:b3:97:ea:54:0d:4d:f0:89:cd:a7:f2:96:
+         84:4c:80:9e:66:c2:33:ec:3d:4d:25:5f:ce:10:f5:e5:7e:a3:
+         b7:fe:02:5a:8e:c3:31:1a:55:a8:96:54:03:c4:f2:5b:55:63:
+         d7:e6:db:96:a5:47:a2:80:88:52:25:04:c9:15:fa:ad:b8:dd:
+         34:89:8d:af:96:36:08:56:c6:a7:66:f4:ee:b8:4a:75:af:30:
+         54:0e:64:b4
 -----BEGIN CERTIFICATE-----
-MIIDQjCCAiqgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBizEoMCYGA1UEAwwfVGVz
-dCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eTELMAkGA1UECAwCQ0ExCzAJBgNV
-BAYTAlVTMRwwGgYJKoZIhvcNAQkBFg1yb290QHRlc3QuY29tMQ0wCwYDVQQKDARU
-ZXN0MRgwFgYDVQQLDA9UZXN0IERlcGFydG1lbnQwHhcNMTkwMTA3MTgyNTAxWhcN
-MjQwMTA2MTgyNTAxWjCBgTERMA8GA1UEAwwIdGVzdC5jb20xCzAJBgNVBAgMAkNB
-MQswCQYDVQQGEwJVUzEcMBoGCSqGSIb3DQEJARYNcm9vdEB0ZXN0LmNvbTENMAsG
-A1UECgwEVGVzdDElMCMGA1UECwwcU3VidW5pdCBvZiBUZXN0IE9yZ2FuaXphdGlv
-bjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAynY1eZHoou7v9DV+KYV1kGVa
-YPig2e9o0WF5adfie/FncWVQMU6a+G8n6QULDnaVJJvCv5Dla0X941Ss1WKQTjfe
-j66W9rNX6624RBNdpzR2wSZJkWc+XlJowRx/kceeAeK+p6jrP0Rtx8WCS5fZP8BR
-mRsg3xKj5rtmRW204QcCAwEAAaM9MDswCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAw
-IQYDVR0RBBowGIIIdGVzdC5jb22CDGFsdC50ZXN0LmNvbTANBgkqhkiG9w0BAQUF
-AAOCAQEAYcEYtAR5BQ65eS8OP6rxNuOQucaZJVNKBmRSkinFCUGmFnQbPE6BMsLY
-VOAeCEXP8dCt6hEatc98mIrdwQHk0PWOYPp/53QtkUOBvZWSQWaEi4xw1y/ULzeC
-j5rvwH3FVlaSegC2MGU3TGx6uszi3HPp9Sw8PjFn7j23eJaJur5PhaKogz5TIPC/
-KVDcIzhY2DP1e0oS3ys0TBzxdmuGlXRDKfdo8MoECImsl30FFKDKgVZc3cNWo1MB
-CgFcVbQ5EBu+RxlYofLmDAiVsDVObIFtuc8OXHD/87SnlWkaWLeszCx5R34gF8w2
-viwQETEoY91vjY3pEerK/BAK4K5T2w==
+MIIDlTCCAn0CFHGl9/OPfgrXec626wFgrADDdlqgMA0GCSqGSIb3DQEBCwUAMIGL
+MSgwJgYDVQQDDB9UZXN0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQswCQYD
+VQQIDAJDQTELMAkGA1UEBhMCVVMxHDAaBgkqhkiG9w0BCQEWDXJvb3RAdGVzdC5j
+b20xDTALBgNVBAoMBFRlc3QxGDAWBgNVBAsMD1Rlc3QgRGVwYXJ0bWVudDAeFw0y
+MDA0MjcwNzAxNDJaFw0yNTA0MjYwNzAxNDJaMIGBMQswCQYDVQQGEwJVUzELMAkG
+A1UECAwCQ0ExDTALBgNVBAoMBFRlc3QxJTAjBgNVBAsMHFN1YnVuaXQgb2YgVGVz
+dCBPcmdhbml6YXRpb24xETAPBgNVBAMMCHRlc3QuY29tMRwwGgYJKoZIhvcNAQkB
+Fg1yb290QHRlc3QuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+1sxw4SSmEUmA0kRLYLdbe//tKrrd5YhN2dFawCRC50CrTc3xueOMtpMvWubrRTbz
+XuKOGl26/bX3ZtcjIN8ItXBFQwEDR3tuK2wb2LYgvnxFSb4XoQBoqBHzHxXDDjlr
+Fu4FNg4HTcMo9pucZuK1VnY4/RLbQfrkAmdkVKR9KJ83TuISGX95FBfl3cASfDNS
+/9+CCDthtcZZUEmThyCXRVIzS5UIDG8pI3Tj3CIZ1LZ55h1PB3VH2SXuBZfMeIS5
+ZDab0rn5LA9A6OkWzxf1O/tWpYAaKZOQC9ZMmo+O2d2cnQbaodu8RBSwk4CMPTfn
+w0sEAYFL+XjQtO1ReCT9zQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAUHip6lB3H
+mmnBUa9X0LVTUS+7pab6KMQCqXSDuD7OJkTd53HvPvYgkdrzr4fEwdxtZO5khpgH
+RYwjLrN67cTdOlyrIP8WfWZTRX7V//vdR+YloTyXJ9sE9fTeu/IYrJmmszm0wAj5
+U2oitWSMKoGMKk4cRcqUaHrBD13CCTf01Vq/Y2Ld4eM3jy8RjeSRG0PSoeoUe/mx
+TpcvfnEqDGekRomTGQTUk6Wzl+pUDU3wic2n8paETICeZsIz7D1NJV/OEPXlfqO3
+/gJajsMxGlWollQDxPJbVWPX5tuWpUeigIhSJQTJFfqtuN00iY2vljYIVsanZvTu
+uEp1rzBUDmS0
 -----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/t/server_key.pem 
new/memcached-1.6.6/t/server_key.pem
--- old/memcached-1.6.5/t/server_key.pem        2020-04-12 03:28:14.000000000 
+0200
+++ new/memcached-1.6.6/t/server_key.pem        2020-05-13 05:24:24.000000000 
+0200
@@ -1,15 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.5/version.m4 
new/memcached-1.6.6/version.m4
--- old/memcached-1.6.5/version.m4      2020-04-13 20:46:26.000000000 +0200
+++ new/memcached-1.6.6/version.m4      2020-05-13 05:32:49.000000000 +0200
@@ -1 +1 @@
-m4_define([VERSION_NUMBER], [1.6.5])
+m4_define([VERSION_NUMBER], [1.6.6])


Reply via email to