#1074782 sqitch: autopkgtests failing with new MariaDB 11.4

#1074782#5
Date:
2024-07-03 01:34:44 UTC
From:
To:
MariaDB 1:11.4.2-1 was recently uploaded to Debian. MariaDB 11.4 and MySQL 8.4
are slowly diverging more and more.

As a result of the new version the sqitch autopkgtests are currently failing,
but the reason is a bit unclear.

Could you please assist in reading what the actual error in the logs is?

https://ci.debian.net/packages/s/sqitch/testing/amd64/48409017/

All tests seem to say 'ok' and searching for 'not ok' yields zero results.

Log ends with:

 Test Summary Report
 t/sqlite.t        (Wstat: 65280 (exited 255) Tests: 127 Failed: 0)
 Non-zero exit status: 255
   Parse errors: No plan found in TAP output
 Files=50, Tests=7508, 28 wallclock secs ( 0.50 usr  0.12 sys + 20.46 cusr  5.14 csys = 26.22 CPU)
 Result: FAIL

#1074782#12
Date:
2024-07-04 07:09:58 UTC
From:
To:
Hi Christian!

Could you help with https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1074782?

It might be the same root cause as for pdns in 1074780.

#1074782#17
Date:
2024-07-04 07:28:50 UTC
From:
To:
That's bad, and might cause (or already causes) issues with
lib{mysql,mariadb}-perl.

The test fails in t/sqlite.t which runs tests against SQLite so I'm
pretty sure there is no relationship to a new MariaDB or MySQL
version.

Going back up in the log and looking at the start of t/sqlite.t we
see:

 61s t/sqlite.t ..........
…
 61s UNIQUE constraint failed: events.change_id, events.committed_at
 61s DBD::SQLite::db do failed: UNIQUE constraint failed: events.change_id, events.committed_at
 61s Trace begun at /usr/share/perl5/App/Sqitch/Role/DBIEngine.pm line 613
 61s App::Sqitch::Role::DBIEngine::_log_event('App::Sqitch::Engine::sqlite=HASH(0x55a9edc41988)', 'deploy', 'App::Sqitch::Plan::Change=HASH(0x55a9ec5d79a8)') called at /usr/share/perl5/App/Sqitch/Role/DBIEngine.pm line 582
 61s App::Sqitch::Role::DBIEngine::log_deploy_change('App::Sqitch::Engine::sqlite=HASH(0x55a9edc41988)', 'App::Sqitch::Plan::Change=HASH(0x55a9ec5d79a8)') called at t/lib/DBIEngineTest.pm line 1603
 61s DBIEngineTest::__ANON__ at /usr/share/perl/5.38/Test/Builder.pm line 374
 61s eval {...} at /usr/share/perl/5.38/Test/Builder.pm line 374
 61s Test::Builder::subtest('Test::Builder=HASH(0x55a9eaaf0778)', 'live database', 'CODE(0x55a9edc2c158)') called at /usr/share/perl/5.38/Test/More.pm line 831
 61s Test::More::subtest('live database', 'CODE(0x55a9edc2c158)') called at t/lib/DBIEngineTest.pm line 1825
 61s DBIEngineTest::run('DBIEngineTest', 'class', 'App::Sqitch::Engine::sqlite', 'version_query', 'select \'SQLite \' || sqlite_version()', 'target_params', 'ARRAY(0x55a9edb0bc58)', 'alt_target_params', 'ARRAY(0x55a9edb0c528)', 'skip_unless', 'CODE(0x55a9ece79ea0)', 'engine_err_regex', 'Regexp=REGEXP(0x55a9edc17ae0)', 'init_error', 'Sqitch database /tmp/EWQTZjTBKx/sqitchtestk6jkt876.db already initialized', 'test_dbh', 'CODE(0x55a9ece82d30)', 'add_second_format', 'strftime(\'%%Y-%%m-%%d %%H:%%M:%%f\', strftime(\'%%J\', %s) + (1/86400.0))') called at t/sqlite.t line 403
 61s # Tests were run but no plan was declared and done_testing() was not seen.
 61s # Looks like your test exited with 255 just after 127.
 61s Dubious, test returned 255 (wstat 65280, 0xff00)
 61s All 127 subtests passed

Whatever is happening here, the failure is related to DBD::SQLite.

(That this failure isn't propagated up to the test (so no "not ok")
and that t/sqlite.t doesn't even finish (hence the "and done_testing() was not
seen") is not beautiful …)


Cheers,
gregor