Bug#1057318: libgit-raw-perl: FTBFS: Failed 2/42 test programs. 15/1768 subtests failed.

gregor herrmann gregoa at debian.org
Sun Dec 3 16:14:12 GMT 2023


Control: tag -1 + confirmed

On Sun, 03 Dec 2023 12:24:10 +0100, Sebastian Ramacher wrote:

> Source: libgit-raw-perl
> Version: 0.90+ds-1
> Severity: serious
> Tags: ftbfs sid trixie
> Justification: fails to build from source (but built successfully in the past)
> X-Debbugs-Cc: sramacher at debian.org
> 
> https://buildd.debian.org/status/fetch.php?pkg=libgit-raw-perl&arch=amd64&ver=0.90%2Bds-1%2Bb1&stamp=1701602200&raw=0
> 
> Test Summary Report
> -------------------
> t/08-branch.t             (Wstat: 256 (exited 1) Tests: 34 Failed: 1)
>   Failed test:  17
>   Non-zero exit status: 1
> t/19-push.t               (Wstat: 3584 (exited 14) Tests: 80 Failed: 14)
>   Failed tests:  7, 10, 13, 16, 19, 22, 25, 28, 31, 52, 55
>                 58, 61, 64
>   Non-zero exit status: 14
> Files=42, Tests=1768,  9 wallclock secs ( 0.32 usr  0.10 sys +  7.37 cusr  1.78 csys =  9.57 CPU)

Yay, libgit2 1.7.1 broke Git-Raw again …


Some investigation:

1) t/08-branch.t is probably broken by this upstream change in libgit2:

* Fixes #6344: git_branch_move now renames the reflog instead of deleting
  by @arroz in https://github.com/libgit2/libgit2/pull/6345

t/08-branch.t ............... 
ok 1 - An object of class 'Git::Raw::Commit' isa 'Git::Raw::Commit'
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
ok 12 - An object of class 'Git::Raw::Commit' isa 'Git::Raw::Commit'
ok 13
ok 14
ok 15
ok 16
not ok 17

#   Failed test at t/08-branch.t line 54.
#          got: '2'
#     expected: '1'
ok 18
ok 19
ok 20 - An object of class 'Git::Raw::Signature' isa 'Git::Raw::Signature'
ok 21
ok 22
ok 23
ok 24
ok 25
ok 26
ok 27
ok 28
ok 29
ok 30
ok 31
ok 32
ok 33
ok 34
1..34
# Looks like you failed 1 test of 34.
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/34 subtests 

I checked that `git reflog some_branch' in t/test_repo has indeed 2
entries in sid (libgit2 1.7.1) and 1 entry in trixie (libgit 1.5.1).



2) t/19-push.t is a bit weird, I've seen varying counts of failing
tests, between 0 (!) and the 14 quoted above and just now 28, with
all kinds of numbers in the `got' output; e.g.:

t/19-push.t ................. 
ok 1
ok 2 - An object of class 'Git::Raw::Remote' isa 'Git::Raw::Remote'
ok 3
ok 4
ok 5
ok 6
not ok 7

#   Failed test at t/19-push.t line 34.
#          got: '2'
#     expected: '1'
ok 8
ok 9
not ok 10

#   Failed test at t/19-push.t line 34.
#          got: '3'
#     expected: '1'
ok 11
ok 12
not ok 13

#   Failed test at t/19-push.t line 34.
#          got: '4'
#     expected: '1'
ok 14
ok 15
not ok 16

#   Failed test at t/19-push.t line 34.
#          got: '16'
#     expected: '1'
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
ok 23
ok 24
ok 25
ok 26
ok 27
ok 28
ok 29
ok 30
ok 31
ok 32
ok 33
not ok 34

#   Failed test at t/19-push.t line 73.
#          got: '2'
#     expected: '1'
ok 35
ok 36
not ok 37

#   Failed test at t/19-push.t line 73.
#          got: '12'
#     expected: '1'
ok 38
ok 39
ok 40
ok 41
ok 42
ok 43
ok 44
ok 45
ok 46
ok 47
ok 48
ok 49
ok 50
ok 51
ok 52
ok 53
# remote push tests require network
1..53
# Looks like you failed 6 tests of 53.
Dubious, test returned 6 (wstat 1536, 0x600)
Failed 6/53 subtests 


Maybe this is a timing issue?


What the test does is

#v+
    24	my $total_packed = 0;
    25	is $remote -> upload(['refs/heads/main:refs/heads/main'], {
    26			'callbacks' => {
    27				'pack_progress' => sub {
    28					my ($stage, $current, $total) = @_;
    29	
    30					ok ($stage == Git::Raw::Packbuilder->ADDING_OBJECTS ||
    31						$stage == Git::Raw::Packbuilder->DELTAFICATION);
    32					if ($stage == Git::Raw::Packbuilder->ADDING_OBJECTS)
    33					{
    34						is $current, 1;
    35						is $total, 0;
    36					}
    37					else
    38					{
    39						ok ($current <= $total);
    40						ok ($total > 0);
    41					}
    42					$total_packed++;
    43				}
    44			}
    45		}), 1;
    46	ok ($total_packed > 0);
#v-

and pack_progress is a callback which does

   pack_progress
       During the packing of new data, this will regularly be called
       with the progress of the pack operation. Be aware that this is
       called inline with pack building operations, so performance
       may be affected. The callback receives the following integers:
       $stage, $current and $total.


With some `diag()' sprinkled in I get:

t/19-push.t ................. 
ok 1
ok 2 - An object of class 'Git::Raw::Remote' isa 'Git::Raw::Remote'
# pack_progress: stage 0, current: 1, total: 0
ok 3
ok 4
ok 5
# pack_progress: stage 0, current: 2, total: 0
ok 6
not ok 7

#   Failed test at t/19-push.t line 35.
#          got: '2'
#     expected: '1'
ok 8
# pack_progress: stage 0, current: 3, total: 0
ok 9
not ok 10

#   Failed test at t/19-push.t line 35.
#          got: '3'
#     expected: '1'
ok 11
# pack_progress: stage 0, current: 4, total: 0
ok 12
not ok 13

#   Failed test at t/19-push.t line 35.
#          got: '4'
#     expected: '1'
ok 14
# pack_progress: stage 0, current: 5, total: 0
ok 15
not ok 16

#   Failed test at t/19-push.t line 35.
#          got: '5'
#     expected: '1'
ok 17
# pack_progress: stage 0, current: 6, total: 0
ok 18
not ok 19

#   Failed test at t/19-push.t line 35.
#          got: '6'
#     expected: '1'
ok 20
# pack_progress: stage 0, current: 7, total: 0
ok 21
not ok 22

#   Failed test at t/19-push.t line 35.
#          got: '7'
#     expected: '1'
ok 23
# pack_progress: stage 0, current: 8, total: 0
ok 24
not ok 25

#   Failed test at t/19-push.t line 35.
#          got: '8'
#     expected: '1'
ok 26
# pack_progress: stage 0, current: 9, total: 0
ok 27
not ok 28

#   Failed test at t/19-push.t line 35.
#          got: '9'
#     expected: '1'
ok 29
# pack_progress: stage 0, current: 11, total: 0
ok 30
not ok 31

#   Failed test at t/19-push.t line 35.
#          got: '11'
#     expected: '1'
ok 32
# pack_progress: stage 0, current: 16, total: 0
ok 33
not ok 34

#   Failed test at t/19-push.t line 35.
#          got: '16'
#     expected: '1'
ok 35
# pack_progress: stage 1, current: 0, total: 16
ok 36
ok 37
ok 38
ok 39
ok 40
ok 41
# pack_progress: stage 1, current: 1, total: 16
# pack_progress: stage 1, current: 3, total: 16
ok 42
ok 43
ok 44
# pack_progress: stage 1, current: 16, total: 16



Cheers,
gregor

-- 
 .''`.  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
   `-   
-------------- 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/20231203/8f0db21a/attachment.sig>


More information about the pkg-perl-maintainers mailing list