Accepting request 793906 from home:darix:branches:network:utilities
- update to version 1.6.5 https://github.com/memcached/memcached/wiki/ReleaseNotes165 - drop link_sasl.patch issue is fixed - update to version 1.6.4 https://github.com/memcached/memcached/wiki/ReleaseNotes163 https://github.com/memcached/memcached/wiki/ReleaseNotes164 - drop patches as they are included in the update: https://github.com/memcached/memcached/pull/634 https://github.com/memcached/memcached/pull/635 - added link_sasl.patch: it seems libsasl2 wasnt linked which lead to undefined references - disable extstore also on ppc(64) - limit tls support to 15 and above - disable lto until the 2 settings structs are resolved OBS-URL: https://build.opensuse.org/request/show/793906 OBS-URL: https://build.opensuse.org/package/show/network:utilities/memcached?expand=0&rev=73
This commit is contained in:
parent
395c662ab3
commit
52efec290c
59
634.patch
59
634.patch
@ -1,59 +0,0 @@
|
|||||||
From aba4ffb5fce37ba6d2977c190592fd35ad7f3462 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kanak Kshetri <kanakkshetri@fastmail.fm>
|
|
||||||
Date: Wed, 1 Apr 2020 07:34:16 -0500
|
|
||||||
Subject: [PATCH] testapp: Fix failure with -flto=auto
|
|
||||||
|
|
||||||
---
|
|
||||||
Makefile.am | 2 +-
|
|
||||||
testapp.c | 11 +++++------
|
|
||||||
2 files changed, 6 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Makefile.am b/Makefile.am
|
|
||||||
index 0d30161e7..d62facfce 100644
|
|
||||||
--- a/Makefile.am
|
|
||||||
+++ b/Makefile.am
|
|
||||||
@@ -4,7 +4,7 @@ noinst_PROGRAMS = memcached-debug sizes testapp timedrun
|
|
||||||
|
|
||||||
BUILT_SOURCES=
|
|
||||||
|
|
||||||
-testapp_SOURCES = testapp.c util.c util.h stats_prefix.c stats_prefix.h jenkins_hash.c murmur3_hash.c hash.c hash.h cache.c
|
|
||||||
+testapp_SOURCES = testapp.c util.c util.h stats_prefix.c stats_prefix.h jenkins_hash.c murmur3_hash.c hash.h cache.c
|
|
||||||
|
|
||||||
timedrun_SOURCES = timedrun.c
|
|
||||||
|
|
||||||
diff --git a/testapp.c b/testapp.c
|
|
||||||
index fffed794e..193adda86 100644
|
|
||||||
--- a/testapp.c
|
|
||||||
+++ b/testapp.c
|
|
||||||
@@ -21,6 +21,7 @@
|
|
||||||
#include "config.h"
|
|
||||||
#include "cache.h"
|
|
||||||
#include "hash.h"
|
|
||||||
+#include "jenkins_hash.h"
|
|
||||||
#include "stats_prefix.h"
|
|
||||||
#include "util.h"
|
|
||||||
#include "protocol_binary.h"
|
|
||||||
@@ -42,10 +43,7 @@ struct conn {
|
|
||||||
ssize_t (*write)(struct conn *c, const void *buf, size_t count);
|
|
||||||
};
|
|
||||||
|
|
||||||
-struct settings {
|
|
||||||
- char *hash_algorithm;
|
|
||||||
-};
|
|
||||||
-struct settings settings;
|
|
||||||
+hash_func hash;
|
|
||||||
|
|
||||||
static ssize_t tcp_read(struct conn *c, void *buf, size_t count);
|
|
||||||
static ssize_t tcp_write(struct conn *c, const void *buf, size_t count);
|
|
||||||
@@ -2306,8 +2304,9 @@ int main(int argc, char **argv)
|
|
||||||
enable_ssl = true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
- /* Stats prefix test is sensitive to the choice of hash function */
|
|
||||||
- hash_init(JENKINS_HASH);
|
|
||||||
+ /* Initialized directly instead of using hash_init to avoid pulling in
|
|
||||||
+ the definition of settings struct from memcached.h */
|
|
||||||
+ hash = jenkins_hash;
|
|
||||||
stats_prefix_init(':');
|
|
||||||
|
|
||||||
for (num_cases = 0; testcases[num_cases].description; num_cases++) {
|
|
120
635.patch
120
635.patch
@ -1,120 +0,0 @@
|
|||||||
From 5174ef33576f461d43f43b2019f5e10655b4c78f Mon Sep 17 00:00:00 2001
|
|
||||||
From: dormando <dormando@rydia.net>
|
|
||||||
Date: Wed, 25 Mar 2020 14:02:11 -0700
|
|
||||||
Subject: [PATCH] restart: fix rare segfault on shutdown
|
|
||||||
|
|
||||||
Client connections were being closed and cleaned up after worker
|
|
||||||
threads exit. In 2018 a patch went in to have the worker threads
|
|
||||||
actually free their event base when stopped. If your system is strict
|
|
||||||
enough (which is apparently none out of the dozen+ systems we've tested
|
|
||||||
against!) it will segfault on invalid memory.
|
|
||||||
|
|
||||||
This change leaves the workers hung while they wait for connections to
|
|
||||||
be centrally closed. I would prefer to have each worker thread close
|
|
||||||
its own connections for speed if nothing else, but we still need to
|
|
||||||
close the listener connections and any connections currently open in
|
|
||||||
side channels.
|
|
||||||
|
|
||||||
Much apprecation to darix for helping narrow this down, as it presented
|
|
||||||
as a wiped stack that only appeared in a specific build environment on
|
|
||||||
a specific linux distribution.
|
|
||||||
|
|
||||||
Hopefully with all of the valgrind noise fixes lately we can start
|
|
||||||
running it more regularly and spot these early.
|
|
||||||
---
|
|
||||||
memcached.c | 19 ++++++++++++-------
|
|
||||||
memcached.h | 3 +--
|
|
||||||
thread.c | 14 ++++++++++++++
|
|
||||||
3 files changed, 27 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/memcached.c b/memcached.c
|
|
||||||
index 2592b3f94..dd52dd04c 100644
|
|
||||||
--- a/memcached.c
|
|
||||||
+++ b/memcached.c
|
|
||||||
@@ -939,6 +939,18 @@ static void conn_close(conn *c) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
+// Since some connections might be off on side threads and some are managed as
|
|
||||||
+// listeners we need to walk through them all from a central point.
|
|
||||||
+// Must be called with all worker threads hung or in the process of closing.
|
|
||||||
+void conn_close_all(void) {
|
|
||||||
+ int i;
|
|
||||||
+ for (i = 0; i < max_fds; i++) {
|
|
||||||
+ if (conns[i] && conns[i]->state != conn_closed) {
|
|
||||||
+ conn_close(conns[i]);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
* Convert a state name to a human readable form.
|
|
||||||
*/
|
|
||||||
@@ -10126,13 +10138,6 @@ int main (int argc, char **argv) {
|
|
||||||
|
|
||||||
fprintf(stderr, "Gracefully stopping\n");
|
|
||||||
stop_threads();
|
|
||||||
- int i;
|
|
||||||
- // FIXME: make a function callable from threads.c
|
|
||||||
- for (i = 0; i < max_fds; i++) {
|
|
||||||
- if (conns[i] && conns[i]->state != conn_closed) {
|
|
||||||
- conn_close(conns[i]);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
if (memory_file != NULL) {
|
|
||||||
restart_mmap_close();
|
|
||||||
}
|
|
||||||
diff --git a/memcached.h b/memcached.h
|
|
||||||
index a3ddd88c1..bdc38bd9c 100644
|
|
||||||
--- a/memcached.h
|
|
||||||
+++ b/memcached.h
|
|
||||||
@@ -820,9 +820,8 @@ enum delta_result_type add_delta(conn *c, const char *key,
|
|
||||||
const int64_t delta, char *buf,
|
|
||||||
uint64_t *cas);
|
|
||||||
void accept_new_conns(const bool do_accept);
|
|
||||||
-conn *conn_from_freelist(void);
|
|
||||||
-bool conn_add_to_freelist(conn *c);
|
|
||||||
void conn_close_idle(conn *c);
|
|
||||||
+void conn_close_all(void);
|
|
||||||
item *item_alloc(char *key, size_t nkey, int flags, rel_time_t exptime, int nbytes);
|
|
||||||
#define DO_UPDATE true
|
|
||||||
#define DONT_UPDATE false
|
|
||||||
diff --git a/thread.c b/thread.c
|
|
||||||
index ed9765a48..e7f96dcba 100644
|
|
||||||
--- a/thread.c
|
|
||||||
+++ b/thread.c
|
|
||||||
@@ -204,6 +204,7 @@ void stop_threads(void) {
|
|
||||||
if (settings.verbose > 0)
|
|
||||||
fprintf(stderr, "asking workers to stop\n");
|
|
||||||
buf[0] = 's';
|
|
||||||
+ pthread_mutex_lock(&worker_hang_lock);
|
|
||||||
pthread_mutex_lock(&init_lock);
|
|
||||||
init_count = 0;
|
|
||||||
for (i = 0; i < settings.num_threads; i++) {
|
|
||||||
@@ -215,6 +216,8 @@ void stop_threads(void) {
|
|
||||||
wait_for_thread_registration(settings.num_threads);
|
|
||||||
pthread_mutex_unlock(&init_lock);
|
|
||||||
|
|
||||||
+ // All of the workers are hung but haven't done cleanup yet.
|
|
||||||
+
|
|
||||||
if (settings.verbose > 0)
|
|
||||||
fprintf(stderr, "asking background threads to stop\n");
|
|
||||||
|
|
||||||
@@ -236,6 +239,17 @@ void stop_threads(void) {
|
|
||||||
if (settings.verbose > 0)
|
|
||||||
fprintf(stderr, "stopped idle timeout thread\n");
|
|
||||||
|
|
||||||
+ // Close all connections then let the workers finally exit.
|
|
||||||
+ if (settings.verbose > 0)
|
|
||||||
+ fprintf(stderr, "closing connections\n");
|
|
||||||
+ conn_close_all();
|
|
||||||
+ pthread_mutex_unlock(&worker_hang_lock);
|
|
||||||
+ if (settings.verbose > 0)
|
|
||||||
+ fprintf(stderr, "reaping worker threads\n");
|
|
||||||
+ for (i = 0; i < settings.num_threads; i++) {
|
|
||||||
+ pthread_join(threads[i].thread_id, NULL);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (settings.verbose > 0)
|
|
||||||
fprintf(stderr, "all background threads stopped\n");
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:06720118c40689be0b85249b3dcb23c6e6d5e3ce53893aca9faced264145168b
|
|
||||||
size 536527
|
|
3
memcached-1.6.5.tar.gz
Normal file
3
memcached-1.6.5.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:1f4da3706fc13c33be9df97b2c1c8d7b0891d5f0dc88aebc603cb178e68b27df
|
||||||
|
size 539962
|
@ -1,7 +1,26 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Apr 13 19:08:36 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
|
||||||
|
|
||||||
|
- update to version 1.6.5
|
||||||
|
https://github.com/memcached/memcached/wiki/ReleaseNotes165
|
||||||
|
- drop link_sasl.patch issue is fixed
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Apr 13 12:00:31 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
|
||||||
|
|
||||||
|
- update to version 1.6.4
|
||||||
|
https://github.com/memcached/memcached/wiki/ReleaseNotes163
|
||||||
|
https://github.com/memcached/memcached/wiki/ReleaseNotes164
|
||||||
|
- drop patches as they are included in the update:
|
||||||
|
https://github.com/memcached/memcached/pull/634
|
||||||
|
https://github.com/memcached/memcached/pull/635
|
||||||
|
- added link_sasl.patch: it seems libsasl2 wasnt linked which lead
|
||||||
|
to undefined references
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Apr 1 23:59:38 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
|
Wed Apr 1 23:59:38 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
|
||||||
|
|
||||||
- disable extstore also on ppc(64)
|
- disable extstore also on ppc(64)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Apr 1 23:26:11 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
|
Wed Apr 1 23:26:11 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
|
||||||
@ -21,12 +40,12 @@ Thu Mar 26 01:22:59 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
|
|||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Mar 24 21:27:33 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
|
Tue Mar 24 21:27:33 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
|
||||||
|
|
||||||
- limit tls support to 15 and above
|
- limit tls support to 15 and above
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Mar 24 21:20:51 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
|
Tue Mar 24 21:20:51 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
|
||||||
|
|
||||||
- disable lto until the 2 settings structs are resolved
|
- disable lto until the 2 settings structs are resolved
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Mar 24 20:54:55 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
|
Tue Mar 24 20:54:55 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
Name: memcached
|
Name: memcached
|
||||||
Version: 1.6.2
|
Version: 1.6.5
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: A high-performance, distributed memory object caching system
|
Summary: A high-performance, distributed memory object caching system
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
@ -39,8 +39,6 @@ Source1: %{name}.init
|
|||||||
Source2: %{name}.sysconfig
|
Source2: %{name}.sysconfig
|
||||||
Source3: memcached-rpmlintrc
|
Source3: memcached-rpmlintrc
|
||||||
Source4: memcached.service
|
Source4: memcached.service
|
||||||
Patch: https://patch-diff.githubusercontent.com/raw/memcached/memcached/pull/635.patch
|
|
||||||
Patch1: https://patch-diff.githubusercontent.com/raw/memcached/memcached/pull/634.patch
|
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: cyrus-sasl-devel
|
BuildRequires: cyrus-sasl-devel
|
||||||
@ -90,8 +88,6 @@ This package contains development files
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch -p1
|
|
||||||
%patch1 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf -fi
|
autoreconf -fi
|
||||||
|
Loading…
Reference in New Issue
Block a user