Hi all,
My feature-class branch PR is nearing readiness. All the CI machines
pass on it, except for the "ASAN (-DDEBUGGING)" one. Example
https://github.com/Perl/perl5/actions/runs/3918368246/jobs/6698783745
It has a single failure, in t/lib/croak.t:
FILE: lib/croak/class ; line 91
PROG:
use strict;
no warnings 'experimental::class';
use feature 'class';
class XXX {
field $x = $self + 1;
}
EXPECTED:
Global symbol "$self" requires explicit package name (did you forget to declare "my $self"?) at - line 5.
Execution of - aborted due to compilation errors.
EXIT STATUS: != 0
GOT:
Global symbol "$self" requires explicit package name (did you forget to declare "my $self"?) at - line 5.
Execution of - aborted due to compilation errors.
perl: op.c:599: void Perl_opslab_force_free(OPSLAB *): Assertion `savestack_count == slab->opslab_refcnt-1' failed.
Aborted (core dumped)
EXIT STATUS: 134
# Failed test 13 - test from lib/croak/class at line 91 at lib/croak/class line 91
In more detail, this is a croak test where it's *expecting* that the
perl under test throws an error. The error that comes back is what it
was expecting but has one additional detail:
perl: op.c:599: void Perl_opslab_force_free(OPSLAB *): Assertion `savestack_count == slab->opslab_refcnt-1' failed.
Aborted (core dumped)
At first glance it looks like it's complaining at op_free() time, when
it's failing to properly tidy up the optree after this failure. But
I've had a good stare around the code generally and I think I'm doing
all the right things. There doesn't seem to be anything missing.
For some context: There are two new optypes involved in the object
system - OP_METHSTART and OP_INITFIELD; both of which are of UNOP_AUX
type. Each one has an allocated aux vector, which gets freed. In each
case, the aux vector itself contains a bunch of integers and other
fields, but no other pointers that need freeing.
Can anyone see anything here I might have missed?
--
Paul "LeoNerd" Evans
leonerd@leonerd.org.uk | https://metacpan.org/author/PEVANS
http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/
My feature-class branch PR is nearing readiness. All the CI machines
pass on it, except for the "ASAN (-DDEBUGGING)" one. Example
https://github.com/Perl/perl5/actions/runs/3918368246/jobs/6698783745
It has a single failure, in t/lib/croak.t:
FILE: lib/croak/class ; line 91
PROG:
use strict;
no warnings 'experimental::class';
use feature 'class';
class XXX {
field $x = $self + 1;
}
EXPECTED:
Global symbol "$self" requires explicit package name (did you forget to declare "my $self"?) at - line 5.
Execution of - aborted due to compilation errors.
EXIT STATUS: != 0
GOT:
Global symbol "$self" requires explicit package name (did you forget to declare "my $self"?) at - line 5.
Execution of - aborted due to compilation errors.
perl: op.c:599: void Perl_opslab_force_free(OPSLAB *): Assertion `savestack_count == slab->opslab_refcnt-1' failed.
Aborted (core dumped)
EXIT STATUS: 134
# Failed test 13 - test from lib/croak/class at line 91 at lib/croak/class line 91
In more detail, this is a croak test where it's *expecting* that the
perl under test throws an error. The error that comes back is what it
was expecting but has one additional detail:
perl: op.c:599: void Perl_opslab_force_free(OPSLAB *): Assertion `savestack_count == slab->opslab_refcnt-1' failed.
Aborted (core dumped)
At first glance it looks like it's complaining at op_free() time, when
it's failing to properly tidy up the optree after this failure. But
I've had a good stare around the code generally and I think I'm doing
all the right things. There doesn't seem to be anything missing.
For some context: There are two new optypes involved in the object
system - OP_METHSTART and OP_INITFIELD; both of which are of UNOP_AUX
type. Each one has an allocated aux vector, which gets freed. In each
case, the aux vector itself contains a bunch of integers and other
fields, but no other pointers that need freeing.
Can anyone see anything here I might have missed?
--
Paul "LeoNerd" Evans
leonerd@leonerd.org.uk | https://metacpan.org/author/PEVANS
http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/