perl5 icon indicating copy to clipboard operation
perl5 copied to clipboard

Segfault when inheriting from class in unit syntax

Open johannessen opened this issue 1 year ago • 6 comments

Description

A class declared in the “unit” (or “statement”) syntax – i. e. not with a block – cannot be used as the superclass of another class. A segmentation fault occurs when this is attempted. This happens with v5.37.9 as well as blead at 49830b9d6df254629bb26062f7477b3b371dd1d2 (HEAD at time of this writing). The following combination triggers the bug:

class A;
class B :isa(A) { }

(The diagnostics generated by my OS include a stack trace and are appended at the end of this report.)

Steps to Reproduce

perl -Mfeature=class -e 'class A; class B :isa(A) {}'

Expected behaviour

Clean exit.

Perl configuration

Summary of my perl5 (revision 5 version 37 subversion 10) configuration:
  Commit id: 49830b9d6df254629bb26062f7477b3b371dd1d2
  Platform:
    osname=darwin
    osvers=19.6.0
    archname=darwin-2level
    uname='darwin solway.local 19.6.0 darwin kernel version 19.6.0: tue jun 21 21:18:39 pdt 2022; root:xnu-6153.141.66~1release_x86_64 x86_64 '
    config_args='-des -Doptimize=-g -Dusedevel'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
  Compiler:
    cc='cc'
    ccflags ='-fno-common -DPERL_DARWIN -mmacosx-version-min=10.15 -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    optimize='-g'
    cppflags='-fno-common -DPERL_DARWIN -mmacosx-version-min=10.15 -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='Apple LLVM 12.0.0 (clang-1200.0.32.27)'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags =' -mmacosx-version-min=10.15 -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/lib /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/lib /Library/Developer/CommandLineTools/usr/lib /usr/lib
    libs=-lpthread -lgdbm -ldbm -ldl -lm -lutil -lc
    perllibs=-lpthread -ldl -lm -lutil -lc
    libc=
    so=dylib
    useshrplib=false
    libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=bundle
    d_dlsymun=undef
    ccdlflags=' '
    cccdlflags=' '
    lddlflags=' -mmacosx-version-min=10.15 -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options:
    HAS_TIMES
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_HASH_FUNC_SIPHASH13
    PERL_HASH_USE_SBOX32
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_USE_DEVEL
    PERL_USE_SAFE_PUTENV
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
  Built under darwin
  Compiled at Mar  2 2023 17:22:56
  %ENV:
    PERLBREW_HOME="/Users/aj/.perlbrew"
    PERLBREW_PATH="/Users/aj/.perlbrew/bin"
    PERLBREW_ROOT="/Users/aj/.perlbrew"
    PERLBREW_SHELLRC_VERSION="0.92"
    PERLBREW_VERSION="0.92"
    PERL_CPANM_OPT="--from https://www.cpan.org/"
  @INC:
    /usr/local/lib/perl5/site_perl/5.37.10/darwin-2level
    /usr/local/lib/perl5/site_perl/5.37.10
    /usr/local/lib/perl5/5.37.10/darwin-2level
    /usr/local/lib/perl5/5.37.10

Diagnostic report

Process:               perl5.37.10 [18673]
Path:                  /usr/local/bin/perl5.37.10
Identifier:            perl5.37.10
Version:               0
Code Type:             X86-64 (Native)
Parent Process:        bash [17374]
Responsible:           Terminal [394]
User ID:               501

Date/Time:             2023-03-02 17:29:06.974 +0100
OS Version:            Mac OS X 10.15.7 (19H2026)
Report Version:        12
Bridge OS Version:     6.6 (19P6064)
Anonymous UUID:        BD30FBD8-DA90-50A6-237D-82B109CD6C8C

Sleep/Wake UUID:       C53EDE24-E6C8-4814-A46A-F0771E7FD0D5

Time Awake Since Boot: 600000 seconds
Time Since Wake:       2700 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x000000000000000c
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [18673]

VM Regions Near 0xc:
--> 
    __TEXT                 000000010460a000-0000000104a42000 [ 4320K] r-x/r-x SM=COW  /usr/local/bin/perl5.37.10

Application Specific Information:
dyld2 mode

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   perl5.37.10                   	0x00000001046392f8 Perl_ck_svconst + 24 (op.c:14658)
1   perl5.37.10                   	0x000000010461578c Perl_newSVOP + 348 (op.c:7582)
2   perl5.37.10                   	0x00000001047a6ef2 Perl_class_seal_stash + 690 (class.c:690)
3   perl5.37.10                   	0x00000001047a69a8 invoke_class_seal + 24 (class.c:316)
4   perl5.37.10                   	0x00000001048215ce Perl_leave_scope + 5198 (scope.c:1494)
5   perl5.37.10                   	0x000000010461a3ca Perl_block_end + 586 (op.c:4526)
6   perl5.37.10                   	0x00000001046a4828 Perl_yyparse + 6424 (perly.y:620)
7   perl5.37.10                   	0x0000000104643f4d S_parse_body + 4445 (perl.c:2608)
8   perl5.37.10                   	0x0000000104642209 perl_parse + 1849 (perl.c:1917)
9   perl5.37.10                   	0x000000010460b373 main + 163 (perlmain.c:106)
10  libdyld.dylib                 	0x00007fff68d72cc9 start + 1

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x0000000000000000  rcx: 0x00007fbe42c17498  rdx: 0x0000000000000000
  rdi: 0x00007fbe42c17498  rsi: 0x000000000000ffc7  rbp: 0x00007ffeeb5f4800  rsp: 0x00007ffeeb5f4800
   r8: 0x0000000000000004   r9: 0x00000000000005a3  r10: 0x0000000000008000  r11: 0x0000000000000080
  r12: 0x0000000000000000  r13: 0x0000000000000000  r14: 0x0000000000000000  r15: 0x0000000000000000
  rip: 0x00000001046392f8  rfl: 0x0000000000010246  cr2: 0x000000000000000c
  
Logical CPU:     0
Error Code:      0x00000004 (no mapping for user data read)
Trap Number:     14


Binary Images:
       0x10460a000 -        0x104a41fff +perl5.37.10 (0) <59993232-1A5D-3D47-8285-82020035316C> /usr/local/bin/perl5.37.10
       0x10e3e6000 -        0x10e478267  dyld (750.7) <9F48F7F8-94D0-3793-99B7-DDEF657EF956> /usr/lib/dyld
    0x7fff65d55000 -     0x7fff65d56fff  libSystem.B.dylib (1281.100.1) <5A20AE6C-BF4D-3689-B7D2-19F0721F6375> /usr/lib/libSystem.B.dylib
    0x7fff6603b000 -     0x7fff6608dfff  libc++.1.dylib (902.1) <59A8239F-C28A-3B59-B8FA-11340DC85EDC> /usr/lib/libc++.1.dylib
    0x7fff6608e000 -     0x7fff660a3ffb  libc++abi.dylib (902) <E692F14F-C65E-303B-9921-BB7E97D77855> /usr/lib/libc++abi.dylib
    0x7fff67bb7000 -     0x7fff67beafde  libobjc.A.dylib (787.1) <6DF81160-5E7F-3E31-AA1E-C875E3B98AF6> /usr/lib/libobjc.A.dylib
    0x7fff6816d000 -     0x7fff68170ffb  libutil.dylib (57.140.1) <6EC380B0-FBB1-3AE3-8A09-1851E128C70F> /usr/lib/libutil.dylib
    0x7fff68b54000 -     0x7fff68b59ff3  libcache.dylib (83) <AF488D13-9E89-35E0-B078-BE37CC5B8586> /usr/lib/system/libcache.dylib
    0x7fff68b5a000 -     0x7fff68b65fff  libcommonCrypto.dylib (60165.120.1) <C7912BE5-993E-3581-B2A0-6AABDC8C5562> /usr/lib/system/libcommonCrypto.dylib
    0x7fff68b66000 -     0x7fff68b6dfff  libcompiler_rt.dylib (101.2) <49B8F644-5705-3F16-BBE0-6FFF9B17C36E> /usr/lib/system/libcompiler_rt.dylib
    0x7fff68b6e000 -     0x7fff68b77ff7  libcopyfile.dylib (166.40.1) <3C481225-21E7-370A-A30E-0CCFDD64A92C> /usr/lib/system/libcopyfile.dylib
    0x7fff68b78000 -     0x7fff68c0afdb  libcorecrypto.dylib (866.140.2) <E9AAA2A6-D0D4-328A-BEA2-4DC5E513BA30> /usr/lib/system/libcorecrypto.dylib
    0x7fff68d17000 -     0x7fff68d57ff0  libdispatch.dylib (1173.100.2) <CD9C059C-91D9-30E8-8926-5B9CD0D5D4F5> /usr/lib/system/libdispatch.dylib
    0x7fff68d58000 -     0x7fff68d8efff  libdyld.dylib (750.7) <AB99C9EE-7127-3451-89AB-339F8F2CEE61> /usr/lib/system/libdyld.dylib
    0x7fff68d8f000 -     0x7fff68d8fffb  libkeymgr.dylib (30) <DB3337BE-01CA-3425-BD0C-87774FC0CDC0> /usr/lib/system/libkeymgr.dylib
    0x7fff68d9d000 -     0x7fff68d9dff7  liblaunch.dylib (1738.140.3) <E2CFD17D-F36C-3734-8F37-16798799EF9E> /usr/lib/system/liblaunch.dylib
    0x7fff68d9e000 -     0x7fff68da3ff7  libmacho.dylib (959.0.1) <AA613A9C-961A-3B67-B696-4622FA59FC4E> /usr/lib/system/libmacho.dylib
    0x7fff68da4000 -     0x7fff68da6ff3  libquarantine.dylib (110.40.6) <6CADF28C-2F20-3FA5-9FB9-49EAB0FD2489> /usr/lib/system/libquarantine.dylib
    0x7fff68da7000 -     0x7fff68da8ff7  libremovefile.dylib (48) <7C7EFC79-BD24-33EF-B073-06AED234593E> /usr/lib/system/libremovefile.dylib
    0x7fff68da9000 -     0x7fff68dc0ff3  libsystem_asl.dylib (377.60.4) <BDE4E1E6-BB8F-3EAC-A9CD-53B9FBD96554> /usr/lib/system/libsystem_asl.dylib
    0x7fff68dc1000 -     0x7fff68dc1ff7  libsystem_blocks.dylib (74) <0D53847E-AF5F-3ACF-B51F-A15DEA4DEC58> /usr/lib/system/libsystem_blocks.dylib
    0x7fff68dc2000 -     0x7fff68e49fff  libsystem_c.dylib (1353.100.4) <BCD3F031-4A3F-32CF-AB9A-D6EE7A7499D4> /usr/lib/system/libsystem_c.dylib
    0x7fff68e4a000 -     0x7fff68e4dffb  libsystem_configuration.dylib (1061.141.2) <393137B7-3631-3450-B6F4-95EECD3ADDFF> /usr/lib/system/libsystem_configuration.dylib
    0x7fff68e4e000 -     0x7fff68e51fff  libsystem_coreservices.dylib (114.1) <72857ADA-AA97-398B-B089-F50B2E89064B> /usr/lib/system/libsystem_coreservices.dylib
    0x7fff68e52000 -     0x7fff68e5afff  libsystem_darwin.dylib (1353.100.4) <19242BF1-BAF6-3DF0-AAD3-93E3E0870DBE> /usr/lib/system/libsystem_darwin.dylib
    0x7fff68e5b000 -     0x7fff68e62fff  libsystem_dnssd.dylib (1096.100.3) <EBB4C2C2-E031-3094-B40A-E67BF261D295> /usr/lib/system/libsystem_dnssd.dylib
    0x7fff68e63000 -     0x7fff68e64ffb  libsystem_featureflags.dylib (17) <29FD922A-EC2C-3F25-BCCC-B58D716E60EC> /usr/lib/system/libsystem_featureflags.dylib
    0x7fff68e65000 -     0x7fff68eb2ff7  libsystem_info.dylib (538.1) <D057695A-F11C-3863-971C-EA1EBF8662B1> /usr/lib/system/libsystem_info.dylib
    0x7fff68eb3000 -     0x7fff68edfff7  libsystem_kernel.dylib (6153.141.66) <FF081F3A-F653-3F8F-9E64-9F34792EEDB3> /usr/lib/system/libsystem_kernel.dylib
    0x7fff68ee0000 -     0x7fff68f27fff  libsystem_m.dylib (3178) <00F331F1-0D09-39B3-8736-1FE90E64E903> /usr/lib/system/libsystem_m.dylib
    0x7fff68f28000 -     0x7fff68f4ffff  libsystem_malloc.dylib (283.100.6) <8549294E-4C53-36EB-99F3-584A7393D8D5> /usr/lib/system/libsystem_malloc.dylib
    0x7fff68f50000 -     0x7fff68f5dffb  libsystem_networkextension.dylib (1095.140.2) <F06C65C5-2CBE-313C-96E1-A09240F9FE57> /usr/lib/system/libsystem_networkextension.dylib
    0x7fff68f5e000 -     0x7fff68f67ff7  libsystem_notify.dylib (241.100.2) <FA22F928-D91B-3AA5-96BB-3186AC0FB264> /usr/lib/system/libsystem_notify.dylib
    0x7fff68f68000 -     0x7fff68f70fef  libsystem_platform.dylib (220.100.1) <009A7C1F-313A-318E-B9F2-30F4C06FEA5C> /usr/lib/system/libsystem_platform.dylib
    0x7fff68f71000 -     0x7fff68f7bfff  libsystem_pthread.dylib (416.100.3) <62CB1A98-0B8F-31E7-A02B-A1139927F61D> /usr/lib/system/libsystem_pthread.dylib
    0x7fff68f7c000 -     0x7fff68f80ff3  libsystem_sandbox.dylib (1217.141.9) <75C7915D-19C4-3F32-B320-394BA4B18655> /usr/lib/system/libsystem_sandbox.dylib
    0x7fff68f81000 -     0x7fff68f83fff  libsystem_secinit.dylib (62.100.2) <F80872AA-E1FD-3D7E-8729-467656EC6561> /usr/lib/system/libsystem_secinit.dylib
    0x7fff68f84000 -     0x7fff68f8bffb  libsystem_symptoms.dylib (1238.120.2) <702D0910-5C34-3D43-9631-8BD215DE4FE1> /usr/lib/system/libsystem_symptoms.dylib
    0x7fff68f8c000 -     0x7fff68fa2ff2  libsystem_trace.dylib (1147.120.1) <BC141783-66D9-3137-A783-211B38E49ADB> /usr/lib/system/libsystem_trace.dylib
    0x7fff68fa4000 -     0x7fff68fa9ff7  libunwind.dylib (35.4) <42B7B509-BAFE-365B-893A-72414C92F5BF> /usr/lib/system/libunwind.dylib
    0x7fff68faa000 -     0x7fff68fdfffe  libxpc.dylib (1738.140.3) <8DA7D88F-AE2F-3BCF-8426-8D041E57A9AA> /usr/lib/system/libxpc.dylib

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 57482115
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=393.7M resident=0K(0%) swapped_out_or_unallocated=393.7M(100%)
Writable regions: Total=145.4M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=145.4M(100%)
 
                                VIRTUAL   REGION 
REGION TYPE                        SIZE    COUNT (non-coalesced) 
===========                     =======  ======= 
Kernel Alloc Once                    8K        1 
MALLOC                            17.1M        9 
MALLOC guard page                   24K        5 
MALLOC_MEDIUM (reserved)         120.0M        1         reserved VM address space (unallocated)
STACK GUARD                       56.0M        1 
Stack                             8192K        1 
__DATA                             645K       42 
__DATA_CONST                        84K        2 
__LINKEDIT                       384.9M        4 
__OBJC_RO                         32.3M        1 
__OBJC_RW                         1860K        2 
__TEXT                            9088K       41 
shared memory                        8K        2 
===========                     =======  ======= 
TOTAL                            629.7M      112 
TOTAL, minus reserved VM space   509.7M      112 

johannessen avatar Mar 02 '23 16:03 johannessen