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

Subscribers

People subscribed via source and target branches