HTTP/1.1 -1 Read error in cache disk data: SuccessContent-Type: text/csv; charset="utf-8" Last-Modified: Sat, 22 Jan 2022 03:06:25 GMT Content-length: 2021 Connection: Close Proxy-Connection: Close X-Cache: HIT from web1.osuosl.org Server: ProxyTrack 0.5 (HTTrack 3.49.2) id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc,lang,patch,platform 956,Singleton PMCs with the active_destroy flag set cause segfaults when collected,darbelo,,"Here's an example dynpmc, called SegFaulty, drop the attached .pmc into src/dynpmcs/ and add it to the Makefile there (a simple s/dynlexpad/segfaulty/g should suffice) to build it. Parrot will segfault when the pmc is collected. Not setting PObj_active_destroy_SET(SELF) on the PMC avoids the segfault. As an example: {{{ $ pwd /home/darbelo/parrot/trunk/src/dynpmc $ cat example.pir .sub segfault :main $P0 = loadlib 'segfaulty' $P1 = new ""SegFaulty"" say 'Nothing wrong here.' .end $ ../../parrot example.pir Nothing wrong here. Segmentation fault (core dumped) }}} Examining that core dump with gdb yields the following backtrace: {{{ (gdb) bt #0 0x00000002050f61f0 in ?? () #1 0x00000002079a9395 in Parrot_pmc_destroy (interp=0x20178a400, pmc=0x20b5042d0) at src/pmc.c:113 #2 0x000000020795b24c in free_pmc_in_pool (interp=0x20178a400, pool_unused=0x202d35b00, p=0x20b5042d0) at src/gc/mark_sweep.c:781 #3 0x000000020795a68d in Parrot_gc_sweep_pool (interp=0x20178a400, pool=0x202d35b00) at src/gc/mark_sweep.c:342 #4 0x0000000207959715 in gc_ms_finalize (interp=0x20178a400, arena_base=0x202d35400) at src/gc/gc_ms.c:234 #5 0x00000002079594f7 in gc_ms_mark_and_sweep (interp=0x20178a400, flags=4) at src/gc/gc_ms.c:160 #6 0x0000000207956c3d in Parrot_gc_mark_and_sweep (interp=0x20178a400, flags=4) at src/gc/api.c:805 #7 0x0000000207968e99 in Parrot_really_destroy (interp=0x20178a400, exit_code_unused=0, arg_unused=0x0) at src/interp/inter_create.c:350 #8 0x0000000207947734 in Parrot_exit (interp=0x20178a400, status=0) at src/exit.c:91 #9 0x0000000000400ecf in main (argc=1, argv=0x7f7ffffddfc8) at src/main.c:65 }}} ",bug,closed,normal,,GC,trunk,medium,fixed,gc segfault dynpmcs,,,,all NotF