Merge ~paelzer/ubuntu/+source/memcached:fix-focal-ftbfs into ubuntu/+source/memcached:ubuntu/focal-devel

Proposed by Christian Ehrhardt 
Status: Merged
Merge reported by: Christian Ehrhardt 
Merged at revision: fb62da144ff384e3feb2803bf3602ae4341eeaa0
Proposed branch: ~paelzer/ubuntu/+source/memcached:fix-focal-ftbfs
Merge into: ubuntu/+source/memcached:ubuntu/focal-devel
Diff against target: 111 lines (+77/-1)
4 files modified
debian/changelog (+7/-0)
debian/control (+2/-1)
debian/patches/series (+1/-0)
debian/patches/stats_prefix-Remove-test-failure-due-to-non-determin.patch (+67/-0)
Reviewer Review Type Date Requested Status
Bryce Harrington (community) Approve
Canonical Server Pending
Canonical Server packageset reviewers Pending
Review via email: mp+378510@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

PPA: https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/3910/+packages
Ticket: https://bileto.ubuntu.com/#/ticket/3910
Tests: https://bileto.ubuntu.com/excuses/3910/focal.html
Bug: https://bugs.launchpad.net/ubuntu/+source/memcached/+bug/1861783

Don't stumble over the flask-limiter/python-limits tests.
Both of these packages exist in focal, but only in proposed atm.
Therefore the tests need to re-run with proposed-enabled for them.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :
Revision history for this message
Bryce Harrington (bryce) wrote :

LGTM, +1

* Changelog:
  - [-] old content and logical tag match as expected
  - [√] changelog entry correct version and targeted codename
  - [√] changelog entries correct
  - [√] update-maintainer has been run

* Actual changes:
  - [√] no upstream changes to consider
  - [-] no further upstream version to consider
  - [-] debian changes look safe

* Old Delta:
  - [-] dropped changes are ok to be dropped
  - [-] nothing else to drop
  - [√] changes forwarded upstream/debian (if appropriate)
    + https://github.com/memcached/memcached/issues/606

* New Delta:
  - [-] no new patches added
  - [√] patches match what was proposed upstream
    + https://github.com/kanak/memcached/commit/0ffde456cb21a7a03ee263f026edd565bb0f2123
  - [√] patches correctly included in debian/patches/series
  - [√] patches have correct DEP3 metadata

* Build/Test:
  - [√] build is ok
    + PPA built fine
    + Built locally in lxc using `debuild -uc -is -i`, incl. testsuite
  - [√] verified PPA package installs/uninstalls/purges
  - [√] autopkgtest against the PPA package passes
  - [√] sanity checks test fine

debuild built it fine, I did notice a couple errors but they appear non-fatal, and sound like non-issues for this fix, and so safe to ignore:
  E: memcached source: license-problem-non-free-RFC-BCP78 doc/protocol-binary-range.txt
  E: memcached source: license-problem-non-free-RFC-BCP78 doc/protocol-binary.txt

autopkgtest [18:43:43]: test client.pl: [-----------------------
netstat:
[*] memcached not listen udp
[*] stats OK
[*] Store key and value pair
 mykey:mycustomvalue stored
[*] Get mykey value
 mykey value found: 'mycustomvalue'
[*] Flush all keys
[*] Verify that mykey is missing
 mykey is not found (OK because of previous flush)
autopkgtest [18:43:44]: test client.pl: -----------------------]
autopkgtest [18:43:44]: test client.pl: - - - - - - - - - - results - - - - - - - - - -
client.pl PASS
autopkgtest [18:43:44]: @@@@@@@@@@@@@@@@@@@@ summary
daemon PASS
client.pl PASS

review: Approve
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Thanks for the extra checks!

Upstream released a new version before the fix for this got merged.
We could rebase onto that new version, but now also arm64 is broken.

Aarr - this isn't fun :-/

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Maybe I need to file a bug to Debian on top of the MP ...
=> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=950777

I rebased exactly what was approved and it works on top of 1.5.22 as well.
Doing an an upload of that now

To ssh://git.launchpad.net/~usd-import-team/ubuntu/+source/memcached
 * [new tag] upload/1.5.22-1ubuntu1 -> upload/1.5.22-1ubuntu1

Uploading to ubuntu (via ftp to upload.ubuntu.com):
  Uploading memcached_1.5.22-1ubuntu1.dsc: done.
  Uploading memcached_1.5.22-1ubuntu1.debian.tar.xz: done.
  Uploading memcached_1.5.22-1ubuntu1_source.buildinfo: done.
  Uploading memcached_1.5.22-1ubuntu1_source.changes: done.
Successfully uploaded packages.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/debian/changelog b/debian/changelog
2index 0775bd3..3a00fed 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -1,3 +1,10 @@
6+memcached (1.5.21-1ubuntu1) focal; urgency=medium
7+
8+ * d/p/stats_prefix-Remove-test-failure-due-to-non-determin.patch: fix FTFBS
9+ on s390x (LP: #1861783)
10+
11+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Tue, 04 Feb 2020 10:02:44 +0100
12+
13 memcached (1.5.21-1) unstable; urgency=medium
14
15 * New upstream release.
16diff --git a/debian/control b/debian/control
17index c2b1691..caf9830 100644
18--- a/debian/control
19+++ b/debian/control
20@@ -1,7 +1,8 @@
21 Source: memcached
22 Section: web
23 Priority: optional
24-Maintainer: Chris Lamb <lamby@debian.org>
25+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
26+XSBC-Original-Maintainer: Chris Lamb <lamby@debian.org>
27 Build-Depends:
28 adduser,
29 debhelper-compat (= 12),
30diff --git a/debian/patches/series b/debian/patches/series
31index 5f3753c..dd01f20 100644
32--- a/debian/patches/series
33+++ b/debian/patches/series
34@@ -3,3 +3,4 @@
35 0003-Uses-retry-to-wait-up-to-5-seconds-for-the-killed-pr.patch
36 0004-Don-t-run-some-upstream-tests.patch
37 0005-Source-etc-default-memcached-in-etc-init.d-memcached.patch
38+stats_prefix-Remove-test-failure-due-to-non-determin.patch
39diff --git a/debian/patches/stats_prefix-Remove-test-failure-due-to-non-determin.patch b/debian/patches/stats_prefix-Remove-test-failure-due-to-non-determin.patch
40new file mode 100644
41index 0000000..5792fb0
42--- /dev/null
43+++ b/debian/patches/stats_prefix-Remove-test-failure-due-to-non-determin.patch
44@@ -0,0 +1,67 @@
45+From 0ffde456cb21a7a03ee263f026edd565bb0f2123 Mon Sep 17 00:00:00 2001
46+From: Kanak Kshetri <kanakkshetri@fastmail.fm>
47+Date: Fri, 31 Jan 2020 07:33:15 -0600
48+Subject: [PATCH] stats_prefix: Remove test failure due to non-determinism
49+
50+If you have multiple keys, the order in which they are dumped is
51+non-deterministic because it is iterating over a hash table used by
52+prefix stats.
53+
54+Fix the assertions by searching for expected lines in output instead
55+of checking that the strings are exactly the same.
56+
57+Origin: upstream, https://github.com/memcached/memcached/commit/0ffde456cb21a7a03ee263f026edd565bb0f2123
58+Last-Update: 2020-02-04
59+
60+---
61+ testapp.c | 26 +++++++++++++-------------
62+ 1 file changed, 13 insertions(+), 13 deletions(-)
63+
64+diff --git a/testapp.c b/testapp.c
65+index b670708e..9819172e 100644
66+--- a/testapp.c
67++++ b/testapp.c
68+@@ -347,13 +347,13 @@ static enum test_return test_stats_prefix_dump(void) {
69+ assert(strcmp(expected, stats_prefix_dump(&length)) == 0);
70+ assert(strlen(expected) == length);
71+
72+- /* The order of results might change if we switch hash functions. */
73+ stats_prefix_record_delete("def:123", 7);
74+- expected = "PREFIX abc get 2 hit 1 set 1 del 1\r\n"
75+- "PREFIX def get 0 hit 0 set 0 del 1\r\n"
76+- "END\r\n";
77+- assert(strcmp(expected, stats_prefix_dump(&length)) == 0);
78+- assert(strlen(expected) == length);
79++ /* NOTE: The prefixes can be dumped in any order, so verification
80++ does not just check that the strings are exactly the same as before. */
81++ const char *actual = stats_prefix_dump(&length);
82++ assert(strstr(actual, "PREFIX abc get 2 hit 1 set 1 del 1\r\n") != NULL);
83++ assert(strstr(actual, "PREFIX def get 0 hit 0 set 0 del 1\r\n") != NULL);
84++ assert(strstr(actual, "END\r\n") != NULL);
85+
86+ /* Find a key that hashes to the same bucket as "abc" */
87+ bool found_match = false;
88+@@ -367,13 +367,13 @@ static enum test_return test_stats_prefix_dump(void) {
89+ }
90+ assert(found_match);
91+ stats_prefix_record_set(tmp, strlen(tmp));
92+- snprintf(tmp, sizeof(tmp),
93+- "PREFIX %d get 0 hit 0 set 1 del 0\r\n"
94+- "PREFIX abc get 2 hit 1 set 1 del 1\r\n"
95+- "PREFIX def get 0 hit 0 set 0 del 1\r\n"
96+- "END\r\n", keynum);
97+- assert(strcmp(tmp, stats_prefix_dump(&length)) == 0);
98+- assert(strlen(tmp) == length);
99++
100++ actual = stats_prefix_dump(&length);
101++ assert(strstr(actual, "PREFIX abc get 2 hit 1 set 1 del 1\r\n") != NULL);
102++ assert(strstr(actual, "PREFIX def get 0 hit 0 set 0 del 1\r\n") != NULL);
103++ assert(strstr(actual, "END\r\n") != NULL);
104++ snprintf(tmp, sizeof(tmp), "PREFIX %d get 0 hit 0 set 1 del 0\r\n", keynum);
105++ assert(strstr(actual, tmp) != NULL);
106+
107+ return TEST_PASS;
108+ }
109+--
110+2.25.0
111+

Subscribers

People subscribed via source and target branches