does not work / does not pass own tests on Artful 17.10

Bug #1733655 reported by Konstantin Pavlov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
libcache-memcached-fast-perl (Ubuntu)
New
Undecided
Unassigned

Bug Description

We've noticed test failures with http://hg.nginx.org/nginx-tests/file/tip/upstream_hash_memcached.t failing on new Ubuntu 17.10, while still passing on Ubuntu 17.04.

On Ubuntu 17.10: libcache-memcached-fast-perl 0.23-1build3 (failing)
On Ubuntu 17.04: libcache-memcached-fast-perl 0.23-1build2 (working nicely)

The problem seems to be in inability to connect to the memcached server.

I've reproduced the issue by simply rebuilding the package on Ubuntu 17.10, the following is done when doing make tests and apparently it does not fail (while it certainly should IMO):

cd src && make test_dynamic LIBPERL_A="libperl.a" LINKTYPE="dynamic" OPTIMIZE="-g -O2 -fdebug-prefix-map=/home/thresh/libcache-memcached-fast-perl-0.23=. -fstack-protector-strong -Wformat -Werror=format-security -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include" LD="x86_64-linux-gnu-gcc" PREFIX="/usr" PASTHRU_DEFINE=' ' PASTHRU_INC=' '
make[2]: Entering directory '/home/thresh/libcache-memcached-fast-perl-0.23/src'
No tests defined for Cache::Memcached::Fast::libclient extension.
make[2]: Leaving directory '/home/thresh/libcache-memcached-fast-perl-0.23/src'
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.t
t/00-load.t .......
1..1
ok 1 - use Cache::Memcached::Fast;
# Testing Cache::Memcached::Fast 0.23, Perl 5.026000, /usr/bin/perl
ok
t/01-connect.t ....
1..0 # SKIP No server is running at localhost:11211, 127.0.0.1:11211
skipped: No server is running at localhost:11211, 127.0.0.1:11211
t/02-isa.t ........
1..0 # SKIP Not connected
skipped: Not connected
t/big_value.t .....
1..0 # SKIP Not connected
skipped: Not connected
t/commands.t ......
1..0 # SKIP Not connected
skipped: Not connected
t/key_ref.t .......
1..0 # SKIP Not connected
skipped: Not connected
t/magic.t .........
1..0 # SKIP Not connected
skipped: Not connected
t/namespace.t .....
1..0 # SKIP Not connected
skipped: Not connected
t/noreply.t .......
1..0 # SKIP Not connected
skipped: Not connected
t/nowait.t ........
1..0 # SKIP Not connected
skipped: Not connected
t/pod-coverage.t ..
1..0 # SKIP Test::Pod::Coverage 1.08 required for testing POD coverage
skipped: Test::Pod::Coverage 1.08 required for testing POD coverage
t/pod.t ...........
1..0 # SKIP Test::Pod 1.22 required for testing POD
skipped: Test::Pod 1.22 required for testing POD
t/serialize.t .....
1..0 # SKIP Not connected
skipped: Not connected
t/threads.t .......
1..0 # SKIP Not connected
skipped: Not connected
t/utf8.t ..........
1..0 # SKIP Not connected
skipped: Not connected
All tests successful.
Files=15, Tests=1, 1 wallclock secs ( 0.06 usr 0.02 sys + 1.19 cusr 0.18 csys = 1.45 CPU)
Result: PASS
true
make[1]: Leaving directory '/home/thresh/libcache-memcached-fast-perl-0.23'

This is quite different to e.g. 17.04 where tests actually run:

cd src && make -f Makefile all LIBPERL_A="libperl.a" LINKTYPE="dynamic" OPTIMIZE="-g -O2 -fdebug-prefix-map=/home/thresh/libcache-memcached-fast-perl-0.23=. -fstack-protector-strong -Wformat -Werror=format-security -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include" LD="x86_64-linux-gnu-gcc" PREFIX="/usr"
make[2]: Entering directory '/home/thresh/libcache-memcached-fast-perl-0.23/src'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/thresh/libcache-memcached-fast-perl-0.23/src'
echo "Running Mkbootstrap for Cache::Memcached::Fast ()"
Running Mkbootstrap for Cache::Memcached::Fast ()
"/usr/bin/perl" \
 "-MExtUtils::Mkbootstrap" \
 -e "Mkbootstrap('Fast','');"
touch "Fast.bs"
chmod 644 "Fast.bs"
true
true
true
PERL_DL_NONLAZY=1 PERL_USE_UNSAFE_INC=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.t
t/00-load.t .......
1..1
ok 1 - use Cache::Memcached::Fast;
# Testing Cache::Memcached::Fast 0.23, Perl 5.024001, /usr/bin/perl
ok
t/01-connect.t .... # Connected to 2 memcached servers, lowest version 1.4.33 Ubuntu

1..2
ok 1 - connected
ok 2 - server_versions still works after disconnect_all
ok
t/02-isa.t ........
1..1
ok 1 - An object of class 'Cache::Memcached::Fast' isa 'Cache::Memcached::Fast'
ok
t/big_value.t .....
1..13
ok 1 - Store value uncompressed
ok 2 - Fetch
ok 3 - Values equal to or greater than THRESHOLD should be rejected by module
ok 4 - Values greater than 1MB should be rejected by server
ok 5
ok 6
ok 7 - Store compressed value
ok 8 - Store compressed value
ok 9 - Fetch and uncompress
ok 10 - Fetch and uncompress
ok 11 - Delete
ok 12 - Delete
ok 13 - Delete
ok
t/commands.t ......
1..91
ok 1 - Add
ok 2 - Fetch
ok 3 - Set
ok 4 - Fetch
ok 5 - Replace
ok 6 - Fetch
ok 7 - replace with numeric
ok 8 - Incr
ok 9 - Fetch
ok 10 - Incr
ok 11 - Incr no_such_key
ok 12 - Incr no_such_key returns defined value
ok 13 - Fetch
ok 14 - Decr
ok 15 - Fetch
ok 16 - Decr
ok 17 - Fetch
ok 18 - Decr below zero
ok 19 - Decr below zero returns true value
ok 20 - Fetch
ok 21 - get_multi() with empty list
ok 22 - A reference of type 'HASH' isa 'HASH'
ok 23
ok 24
ok 25
ok 26
ok 27 - A reference of type 'HASH' isa 'HASH'
ok 28
ok 29
ok 30 - A reference of type 'HASH' isa 'HASH'
ok 31 - Number of entries in result
ok 32
ok 33 - Store
ok 34 - Append
ok 35 - Fetch
ok 36 - Prepend
ok 37 - Fetch
ok 38 - Gets
ok 39 - A reference of type 'ARRAY' isa 'ARRAY'
ok 40 - Gets result is an array of two elements
ok 41 - CAS opaque defined
ok 42 - Match value
ok 43 - First update success
ok 44 - Second update failure
ok 45 - Fetch
ok 46 - A reference of type 'HASH' isa 'HASH'
ok 47 - Number of entries in result
ok 48
ok 49 - A reference of type 'HASH' isa 'HASH'
ok 50
ok 51
ok 52
ok 53
ok 54
ok 55
ok 56
ok 57
ok 58 - A reference of type 'HASH' isa 'HASH'
ok 59
ok 60 - Store
ok 61 - Touch expiration_time : undef -> $expire
ok 62 - Expired
ok 63 - Store
ok 64 - Touch expire_time : $expire -> undef
ok 65 - Not Expired
ok 66 - Touch no-such-key
ok 67
ok 68
ok 69
ok 70
ok 71 - Expired
ok 72 - Not Expired
ok 73 - A reference of type 'HASH' isa 'HASH'
ok 74
ok 75
ok 76
ok 77
ok 78 - Expired
ok 79 - Not Expired
ok 80 - A reference of type 'HASH' isa 'HASH'
ok 81
ok 82
ok 83 - replace_multi to reset to numeric
ok 84
ok 85
ok 86
ok 87
ok 88
ok 89
ok 90
ok 91
ok
t/key_ref.t .......
1..5
ok 1 - Store
ok 2 - Fetch
ok 3 - Access with the old key
ok 4 - Access with modified key
ok 5 - Delete
ok
t/magic.t .........
1..9
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7 # skip Skipping Readonly tests because the module is not present
ok 8 # skip Skipping Readonly tests because the module is not present
ok 9 # skip Skipping Readonly tests because the module is not present
ok
t/namespace.t .....
1..2
ok 1
ok 2
ok
t/noreply.t .......
1..3
ok 1 - A reference of type 'HASH' isa 'HASH'
ok 2 - Number of entries in result
ok 3
ok
t/nowait.t ........
1..5
ok 1 - A reference of type 'HASH' isa 'HASH'
ok 2 - Fetched all keys
ok 3 - Match results
ok 4
ok 5
ok
t/pod-coverage.t ..
1..0 # SKIP Test::Pod::Coverage 1.08 required for testing POD coverage
skipped: Test::Pod::Coverage 1.08 required for testing POD coverage
t/pod.t ...........
1..0 # SKIP Test::Pod 1.22 required for testing POD
skipped: Test::Pod 1.22 required for testing POD
t/serialize.t .....
1..12
ok 1 - Check that is_deeply works
ok 2 - Serialize and store
ok 3 - Fetch
ok 4 - De-serialization
ok 5 - A reference of type 'HASH' isa 'HASH'
ok 6 - Fetch
ok 7 - De-serialization
ok 8 - Prepend garbage
ok 9 - Check that fetch fails
ok 10 - A reference of type 'HASH' isa 'HASH'
ok 11 - Check that fetch fails
ok 12 - Delete
ok
t/threads.t .......
1..10
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok
t/utf8.t ..........
1..1
ok 1
ok
All tests successful.
Files=15, Tests=155, 13 wallclock secs ( 0.07 usr 0.03 sys + 0.94 cusr 0.13 csys = 1.17 CPU)
Result: PASS
true

Revision history for this message
Konstantin Pavlov (thresh) wrote :

There is also an upstream bug on that: https://github.com/JRaspass/Cache-Memcached-Fast/issues/12

Their conclusion is that perl is broken on current Ubuntu.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.