Your message dated Sun, 04 May 2014 07:49:43 +0000
with message-id <[email protected]>
and subject line Bug#727554: fixed in libdr-tarantool-perl 0.43-1
has caused the Debian Bug report #727554,
regarding libdr-tarantool-perl: t/010-xs.t randomly segfaults
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
727554: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=727554
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: libdr-tarantool-perl
Version: 0.42-1
Severity: important
Tags: patch
User: [email protected]
Usertags: origin-ubuntu ubuntu-patch trusty
t/010-xs.t is unreliable (at least on i386) and randomly segfaults on
the Ubuntu build daemons. On investigation, this is because the last
block of tests construct packets containing random data after the
header, but this includes things like length fields, causing the parser
to sometimes jump off into space. It would be sufficient for the
purposes of this test to construct packets with generally-valid formats
and only fill random data into fields that are actually allowed to
contain arbitrary data. Would something like this patch be acceptable?
* Fix packet parsing tests to construct valid packets.
diff -Nru libdr-tarantool-perl-0.42/debian/patches/fix-pkt-parse-tests.patch
libdr-tarantool-perl-0.42/debian/patches/fix-pkt-parse-tests.patch
--- libdr-tarantool-perl-0.42/debian/patches/fix-pkt-parse-tests.patch
1970-01-01 01:00:00.000000000 +0100
+++ libdr-tarantool-perl-0.42/debian/patches/fix-pkt-parse-tests.patch
2013-10-24 09:35:13.000000000 +0100
@@ -0,0 +1,90 @@
+Description: Fix packet parsing tests to construct valid packets
+Author: Colin Watson <[email protected]>
+Forwarded: no
+Last-Update: 2013-10-24
+
+Index: b/t/010-xs.t
+===================================================================
+--- a/t/010-xs.t
++++ b/t/010-xs.t
+@@ -202,38 +202,71 @@
+
+ SKIP: {
+ # skip 'Devel tests $ENV{DEVEL_TEST}=0', 120 unless $ENV{DEVEL_TEST};
++
++# Pack an integer into an <int32_varint>, per the Tarantool binary protocol.
++sub pack_varint {
++ my $num = shift;
++ my $out = pack 'C', ($num & 0x7f);
++ $num >>= 7;
++ while ($num) {
++ $out .= pack 'C', (($num & 0x7f) | 0x80);
++ $num >>= 7;
++ }
++ return scalar reverse $out;
++}
++
++# Pack arbitrary data into a trivial <fq_tuple>, per the Tarantool binary
++# protocol.
++sub pack_fq_tuple {
++ my $body = shift;
++ my $len = length $body;
++ # <fq_tuple> ::= <size><tuple>
++ # <tuple> ::= <cardinality><field>+
++ # <field> ::= <int32_varint><data>
++ my $len_varint = pack_varint($len);
++ return pack 'LLa*a*',
++ 4 * length($len_varint) + $len,
++ 1,
++ $len_varint,
++ $body
++ ;
++}
++
+ for (1 .. 30) {
+ my $body = join '', map { chr int rand 256 } 1 .. (300 + int rand 300);
+ my $pkt =
+- pack 'LLLLa*',
++ pack 'LLLLLa*',
+ TNT_SELECT,
+- length $body,
++ 8 + length $body,
+ int rand 500,
+ 0,
+- $body
++ 1,
++ pack_fq_tuple($body)
+ ;
+ $res = DR::Tarantool::_pkt_parse_response( $pkt );
+ diag explain $res unless
+ is $res->{status}, 'buffer', "Broken package $_";
+ $pkt =
+- pack 'LLLLa*',
++ pack 'LLLLLa*',
+ TNT_SELECT,
+- 10 + length $body,
++ 8 + 10 + length $body,
+ int rand 500,
+ 0,
+- $body
++ 1,
++ pack_fq_tuple($body)
+ ;
+ $res = DR::Tarantool::_pkt_parse_response( $pkt );
+ diag explain $res unless
+ is $res->{status}, 'buffer', "Broken package $_, too long body";
+
+ $pkt =
+- pack 'LLLLa*',
++ pack 'LLLLLa*',
+ TNT_SELECT,
+- -10 + length $body,
++ 8 - 10 + length $body,
+ int rand 500,
+ 0,
+- $body
++ 1,
++ pack_fq_tuple($body)
+ ;
+ $res = DR::Tarantool::_pkt_parse_response( $pkt );
+ diag explain $res unless
diff -Nru libdr-tarantool-perl-0.42/debian/patches/series
libdr-tarantool-perl-0.42/debian/patches/series
--- libdr-tarantool-perl-0.42/debian/patches/series 1970-01-01
01:00:00.000000000 +0100
+++ libdr-tarantool-perl-0.42/debian/patches/series 2013-10-24
00:22:26.000000000 +0100
@@ -0,0 +1 @@
+fix-pkt-parse-tests.patch
Thanks,
--
Colin Watson [[email protected]]
--- End Message ---
--- Begin Message ---
Source: libdr-tarantool-perl
Source-Version: 0.43-1
We believe that the bug you reported is fixed in the latest version of
libdr-tarantool-perl, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Dmitry E. Oboukhov <[email protected]> (supplier of updated libdr-tarantool-perl
package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160
Format: 1.8
Date: Sun, 04 May 2014 10:52:41 +0400
Source: libdr-tarantool-perl
Binary: libdr-tarantool-perl
Architecture: source amd64
Version: 0.43-1
Distribution: unstable
Urgency: medium
Maintainer: Dmitry E. Oboukhov <[email protected]>
Changed-By: Dmitry E. Oboukhov <[email protected]>
Description:
libdr-tarantool-perl - perl driver for Tarantool
Closes: 727554
Changes:
libdr-tarantool-perl (0.43-1) unstable; urgency=medium
.
* EINTR doesn't throw exception with RealSyncClient driver.
* Fix randomly test segfaults, closes: #727554,
thanks to Colin Watson <[email protected]>.
Checksums-Sha1:
22687bfddffad4fa913ff8ee63dbf3ae287f6836 1337 libdr-tarantool-perl_0.43-1.dsc
6f878bf0ca6117a616026e8c2280c5e1562829dc 59070
libdr-tarantool-perl_0.43.orig.tar.gz
03b0ede2f4dc8b03403cb1a39e14865eca02fd75 3784
libdr-tarantool-perl_0.43-1.debian.tar.xz
9130a5b18f892d8505bd922118aef466fbc007d6 73278
libdr-tarantool-perl_0.43-1_amd64.deb
Checksums-Sha256:
b03480de2f35dbbfe081f767012992b6fc70165d309334de417f41cfba7d6457 1337
libdr-tarantool-perl_0.43-1.dsc
685963bfdf9664ef5cef3f0771aadf338c3809b9246c39089f0fab03bf0c4752 59070
libdr-tarantool-perl_0.43.orig.tar.gz
2915b60314bc9eaf75cb75cd6680bdf3b2b6a9ef1c457dabb22e3f1a67c1a355 3784
libdr-tarantool-perl_0.43-1.debian.tar.xz
37a5bde48f278e67a8f46ace3d1decbfbec8d7f052c15c9aed793c621b6ac6d7 73278
libdr-tarantool-perl_0.43-1_amd64.deb
Files:
66f5f6bda95ed870909c1b29a575e006 73278 perl extra
libdr-tarantool-perl_0.43-1_amd64.deb
03b9a32790b7a2553f77285271347675 1337 perl extra
libdr-tarantool-perl_0.43-1.dsc
156f6a85807e44f8d849f89fd7f8b1cf 59070 perl extra
libdr-tarantool-perl_0.43.orig.tar.gz
f96f3ea1795460edef656118d9f93b86 3784 perl extra
libdr-tarantool-perl_0.43-1.debian.tar.xz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEAREDAAYFAlNl7YMACgkQq4wAz/jiZTcGtgCg6ltaujp/RQGZqeIcj6FhCBif
7bIAnR7aXvckdS5Tjeg5zaEDJgPAdlEV
=pZhx
-----END PGP SIGNATURE-----
--- End Message ---