Bug#926932: libdbd-mysql-perl: FTBFS (autobuilder hangs)

gregor herrmann gregoa at debian.org
Fri Apr 12 14:35:58 BST 2019


On Fri, 12 Apr 2019 11:51:53 +0000, Santiago Vila wrote:

> I tried to build this package in buster but it failed:

> Out of memory!
> Out of memory!
> # Looks like your test exited with 1 just after 25.
> t/40server_prepare.t .................... 
> 1..31
> ok 1 - connecting
> ok 2 - making slate clean
> ok 3 - creating table
> ok 4 - loading data
> ok 5
> ok 6
> ok 7 - binding parameter
> ok 8 - fetching data
> ok 9
> ok 10
> ok 11 - cleaning up
> ok 12 - making slate clean
> ok 13 - creating test table
> ok 14
> ok 15 - binding int
> ok 16 - binding smallint
> ok 17 - binding tinyint
> ok 18 - binding bigint
> ok 19 - inserting data
> ok 20
> ok 21 - cleaning up
> ok 22 - making slate clean
> ok 23 - creating test table
> ok 24
> ok 25 - insert t3
> Dubious, test returned 1 (wstat 256, 0x100)
> Failed 6/31 subtests 

> Out of memory!
> Out of memory!
> # Looks like your test exited with 1 just after 16.
> t/40server_prepare_crash.t .............. 
> 1..39
> ok 1
> ok 2
> ok 3
> ok 4
> ok 5
> ok 6
> ok 7
> ok 8
> ok 9
> ok 10
> ok 11
> ok 12
> ok 13
> ok 14
> ok 15
> ok 16
> Dubious, test returned 1 (wstat 256, 0x100)
> Failed 23/39 subtests 

> Out of memory!
> Out of memory!
> # Tests were run but no plan was declared and done_testing() was not seen.
> # Looks like your test exited with 1 just after 106.
> t/50chopblanks.t ........................ 
> ok 1 - drop table if exists dbd_mysql_t50chopblanks
> ok 2 - create table dbd_mysql_t50chopblanks
> ok 3
> ok 4
> ok 5 - insert into dbd_mysql_t50chopblanks values (1 , '', '', '', '', '', '', '', '', '')
> ok 6 - select c_varchar, c_text, c_tinytext, c_mediumtext, c_longtext, b_blob, b_tinyblob, b_mediumblob, b_longblob from dbd_mysql_t50chopblanks where id = 1
> ok 7
> ok 8 - NoChopBlanks: c_varchar should not have blanks chopped
> ok 9 - NoChopBlanks: c_text should not have blanks chopped
> ok 10 - NoChopBlanks: c_tinytext should not have blanks chopped
> ok 11 - NoChopBlanks: c_mediumtext should not have blanks chopped
> ok 12 - NoChopBlanks: c_longtext should not have blanks chopped
> ok 13 - NoChopBlanks: b_blob should not have blanks chopped
> ok 14 - NoChopBlanks: b_tinyblob should not have blanks chopped
> ok 15 - NoChopBlanks: b_mediumblob should not have blanks chopped
> ok 16 - NoChopBlanks: b_longblob should not have blanks chopped
> ok 17
> ok 18
> ok 19 - ChopBlanks: c_varchar should have blanks chopped
> ok 20 - ChopBlanks: c_text should have blanks chopped
> ok 21 - ChopBlanks: c_tinytext should have blanks chopped
> ok 22 - ChopBlanks: c_mediumtext should have blanks chopped
> ok 23 - ChopBlanks: c_longtext should have blanks chopped
> ok 24 - ChopBlanks: b_blob should not have blanks chopped
> ok 25 - ChopBlanks: b_tinyblob should not have blanks chopped
> ok 26 - ChopBlanks: b_mediumblob should not have blanks chopped
> ok 27 - ChopBlanks: b_longblob should not have blanks chopped
> ok 28 - insert into dbd_mysql_t50chopblanks values (2 , ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ')
> ok 29 - select c_varchar, c_text, c_tinytext, c_mediumtext, c_longtext, b_blob, b_tinyblob, b_mediumblob, b_longblob from dbd_mysql_t50chopblanks where id = 2
> ok 30
> ok 31 - NoChopBlanks: c_varchar should not have blanks chopped
> ok 32 - NoChopBlanks: c_text should not have blanks chopped
> ok 33 - NoChopBlanks: c_tinytext should not have blanks chopped
> ok 34 - NoChopBlanks: c_mediumtext should not have blanks chopped
> ok 35 - NoChopBlanks: c_longtext should not have blanks chopped
> ok 36 - NoChopBlanks: b_blob should not have blanks chopped
> ok 37 - NoChopBlanks: b_tinyblob should not have blanks chopped
> ok 38 - NoChopBlanks: b_mediumblob should not have blanks chopped
> ok 39 - NoChopBlanks: b_longblob should not have blanks chopped
> ok 40
> ok 41
> ok 42 - ChopBlanks: c_varchar should have blanks chopped
> ok 43 - ChopBlanks: c_text should have blanks chopped
> ok 44 - ChopBlanks: c_tinytext should have blanks chopped
> ok 45 - ChopBlanks: c_mediumtext should have blanks chopped
> ok 46 - ChopBlanks: c_longtext should have blanks chopped
> ok 47 - ChopBlanks: b_blob should not have blanks chopped
> ok 48 - ChopBlanks: b_tinyblob should not have blanks chopped
> ok 49 - ChopBlanks: b_mediumblob should not have blanks chopped
> ok 50 - ChopBlanks: b_longblob should not have blanks chopped
> ok 51 - insert into dbd_mysql_t50chopblanks values (3 , ' a b c ', ' a b c ', ' a b c ', ' a b c ', ' a b c ', ' a b c ', ' a b c ', ' a b c ', ' a b c ')
> ok 52 - select c_varchar, c_text, c_tinytext, c_mediumtext, c_longtext, b_blob, b_tinyblob, b_mediumblob, b_longblob from dbd_mysql_t50chopblanks where id = 3
> ok 53
> ok 54 - NoChopBlanks: c_varchar should not have blanks chopped
> ok 55 - NoChopBlanks: c_text should not have blanks chopped
> ok 56 - NoChopBlanks: c_tinytext should not have blanks chopped
> ok 57 - NoChopBlanks: c_mediumtext should not have blanks chopped
> ok 58 - NoChopBlanks: c_longtext should not have blanks chopped
> ok 59 - NoChopBlanks: b_blob should not have blanks chopped
> ok 60 - NoChopBlanks: b_tinyblob should not have blanks chopped
> ok 61 - NoChopBlanks: b_mediumblob should not have blanks chopped
> ok 62 - NoChopBlanks: b_longblob should not have blanks chopped
> ok 63
> ok 64
> ok 65 - ChopBlanks: c_varchar should have blanks chopped
> ok 66 - ChopBlanks: c_text should have blanks chopped
> ok 67 - ChopBlanks: c_tinytext should have blanks chopped
> ok 68 - ChopBlanks: c_mediumtext should have blanks chopped
> ok 69 - ChopBlanks: c_longtext should have blanks chopped
> ok 70 - ChopBlanks: b_blob should not have blanks chopped
> ok 71 - ChopBlanks: b_tinyblob should not have blanks chopped
> ok 72 - ChopBlanks: b_mediumblob should not have blanks chopped
> ok 73 - ChopBlanks: b_longblob should not have blanks chopped
> ok 74 - insert into dbd_mysql_t50chopblanks values (4 , 'blah', 'blah', 'blah', 'blah', 'blah', 'blah', 'blah', 'blah', 'blah')
> ok 75 - select c_varchar, c_text, c_tinytext, c_mediumtext, c_longtext, b_blob, b_tinyblob, b_mediumblob, b_longblob from dbd_mysql_t50chopblanks where id = 4
> ok 76
> ok 77 - NoChopBlanks: c_varchar should not have blanks chopped
> ok 78 - NoChopBlanks: c_text should not have blanks chopped
> ok 79 - NoChopBlanks: c_tinytext should not have blanks chopped
> ok 80 - NoChopBlanks: c_mediumtext should not have blanks chopped
> ok 81 - NoChopBlanks: c_longtext should not have blanks chopped
> ok 82 - NoChopBlanks: b_blob should not have blanks chopped
> ok 83 - NoChopBlanks: b_tinyblob should not have blanks chopped
> ok 84 - NoChopBlanks: b_mediumblob should not have blanks chopped
> ok 85 - NoChopBlanks: b_longblob should not have blanks chopped
> ok 86
> ok 87
> ok 88 - ChopBlanks: c_varchar should have blanks chopped
> ok 89 - ChopBlanks: c_text should have blanks chopped
> ok 90 - ChopBlanks: c_tinytext should have blanks chopped
> ok 91 - ChopBlanks: c_mediumtext should have blanks chopped
> ok 92 - ChopBlanks: c_longtext should have blanks chopped
> ok 93 - ChopBlanks: b_blob should not have blanks chopped
> ok 94 - ChopBlanks: b_tinyblob should not have blanks chopped
> ok 95 - ChopBlanks: b_mediumblob should not have blanks chopped
> ok 96 - ChopBlanks: b_longblob should not have blanks chopped
> ok 97
> ok 98
> ok 99 - drop dbd_mysql_t50chopblanks
> ok 100
> ok 101 - drop table if exists dbd_mysql_t50chopblanks
> ok 102 - create table dbd_mysql_t50chopblanks
> ok 103
> ok 104
> ok 105 - insert into dbd_mysql_t50chopblanks values (1 , '', '', '', '', '', '', '', '', '')
> ok 106 - select c_varchar, c_text, c_tinytext, c_mediumtext, c_longtext, b_blob, b_tinyblob, b_mediumblob, b_longblob from dbd_mysql_t50chopblanks where id = 1
> Dubious, test returned 1 (wstat 256, 0x100)
> All 106 subtests passed 

> Out of memory!
> Out of memory!
> # Looks like your test exited with 1 just after 22.
> t/55utf8.t .............................. 
> 1..32
> ok 1
> ok 2
> ok 3 - testing quoting of utf 8 string
> ok 4 - testing quoting of blob
> ok 5 - INSERT query INSERT INTO dbd_mysql_t55utf8 (name, bincol, shape, binutf, profile)
> #     VALUES (?, ?, ST_GeomFromText('Point(132865 501937)'), ?, ?)
> # 
> # 
> ok 6
> ok 7
> ok 8
> ok 9
> ok 10
> ok 11 - blob was made utf8!.
> ok 12 - shape was made utf8!.
> ok 13 - compare ??dam eq ??dam
> ok 14
> ok 15
> ok 16
> ok 17
> ok 18
> ok 19 - testing quoting of utf 8 string
> ok 20 - testing quoting of blob
> ok 21 - INSERT query INSERT INTO dbd_mysql_t55utf8 (name, bincol, shape, binutf, profile)
> #     VALUES (?, ?, ST_GeomFromText('Point(132865 501937)'), ?, ?)
> # 
> # 
> ok 22
> Dubious, test returned 1 (wstat 256, 0x100)
> Failed 10/32 subtests 

> Out of memory!
> Out of memory!
> # Looks like your test exited with 1 just after 3.
> t/99_bug_server_prepare_blob_null.t ..... 
> 1..11
> ok 1
> ok 2
> ok 3
> Dubious, test returned 1 (wstat 256, 0x100)
> Failed 8/11 subtests 

> Test Summary Report
> -------------------
> t/40server_prepare.t                  (Wstat: 256 Tests: 25 Failed: 0)
>   Non-zero exit status: 1
>   Parse errors: Bad plan.  You planned 31 tests but ran 25.
> t/40server_prepare_crash.t            (Wstat: 256 Tests: 16 Failed: 0)
>   Non-zero exit status: 1
>   Parse errors: Bad plan.  You planned 39 tests but ran 16.
> t/50chopblanks.t                      (Wstat: 256 Tests: 106 Failed: 0)
>   Non-zero exit status: 1
>   Parse errors: No plan found in TAP output
> t/55utf8.t                            (Wstat: 256 Tests: 22 Failed: 0)
>   Non-zero exit status: 1
>   Parse errors: Bad plan.  You planned 32 tests but ran 22.
> t/99_bug_server_prepare_blob_null.t   (Wstat: 256 Tests: 3 Failed: 0)
>   Non-zero exit status: 1
>   Parse errors: Bad plan.  You planned 11 tests but ran 3.


> Most probably this failure is triggered because of some change in some
> build-dependency, because the same version used to work ok in buster
> until approximately 2019-03-10 (last date where I have a successful build).

The tests fail with "Out of memory!".
We've had this before once on ci.d.n., a retry there worked. (In this
case it was both mysql and mariadb; autopkgtests tries against both.)
[0]

> I know this failure does not happen on reproducible-builds, but the
> hang is 100% reproducible here, 

It doesn't happen on reproducible-builds, on the buildds, in ci.d.n
(with one exception) -- but I have no doubt that it can happen if the
machine runs out of memory …

FWIW, I can reproduce the exact test failure with

-       dh_auto_test
+       ( ulimit -d 512000 ; \
+       dh_auto_test ; \
+       ulimit -d unlimited )

(also with higher values; but not with ulimit -m 512000)


Not sure where this all leaves us …


Cheers,
gregor

[0] https://ci.debian.net/data/autopkgtest/testing/amd64/libd/libdbd-mysql-perl/2090036/log.gz 

-- 
 .''`.  https://info.comodo.priv.at -- Debian Developer https://www.debian.org
 : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D  85FA BB3A 6801 8649 AA06
 `. `'  Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
   `-   NP: Rolling Stones: Fiji
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: Digital Signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-perl-maintainers/attachments/20190412/cb846a90/attachment.sig>


More information about the pkg-perl-maintainers mailing list