Bug#839218: nama: FTBFS: Failed 1/7 test programs. 0/91 subtests failed.Bad plan. You planned 126 tests but ran 57.

Balint Reczey balint.reczey at canonical.com
Thu Mar 23 14:51:45 UTC 2017


Hi Niko,

On Wed, Mar 22, 2017 at 8:53 PM, Niko Tyni <ntyni at debian.org> wrote:
> On Tue, Mar 21, 2017 at 04:05:43PM +0100, Balint Reczey wrote:
>
>> It looks like not all regression are fixed after the re-implementation
>> and the one affecting nama is one of them.
>
> Some effort on a reduced test case would have been appreciated; the nama
> code base is rather big.

I worked on reducing the test, but I could not reach reasonable size and
thought someone familiar with Perl internals could potentially spot the
problem easily from the segfault/assert.

I just found a perl test reducer, I'll give it a try:
https://github.com/blekko/perl-reduce

>
> While I haven't made it to the bottom of this yet, I note that there's
> this code in lib/Audio/Nama/Effect.pm:
>
>                 my $perl_version = $^V;
>                 my ($minor_version) = $perl_version =~ /^v5\.(\d+)/;
>                 my @new_list = grep  { $_ ne $id  } @ops_list;
>                 #say "new_list: @new_list";
>                 if ($minor_version <= 14)
>                      {    $track->{ops}   = [ @new_list  ] }
>                 else { @{ $track->{ops} } =   @new_list    }
>
> and if I patch that to take the <= 14 code path, the segfault goes away
> here and all tests pass. What's the history behind this version check?

Funny story, it was added to work around a segfault in older perl:
https://github.com/bolangi/nama/commit/8ecdbd5ad0b8ac67b7e4adab2ee1100fbf29aa1f

The line you found looks very much like a corner case for the assignment
reimplementation.

Should I forward it to Perl upstream?

Cheers,
Balint




More information about the Perl-maintainers mailing list