Skip Menu |

This queue is for tickets about the Type-Tiny CPAN distribution.

Report information
The Basics
Id: 124067
Status: resolved
Priority: 0/
Queue: Type-Tiny

People
Owner: Nobody in particular
Requestors: ANDK [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in:
  • 1.002001
  • 1.002002
  • 1.003_002
Fixed in: (no value)



Subject: 00-begin.t fails with -DDEBUGGING perls
I take perl 5.26.1 compiled with -DDEBUGGING and with Type::Tiny::XS installed and then let the test run with AUTOMATED_TESTING=1 and test Type-Tiny-1.002001, only 00-begin.t. Indeed I see the output: # **** ANDK BROKEN TESTING ENVIRONMENT DETECTED I remove the AUTOMATED_TESTING=1 and I see: perl: inline.h:147: S_POPMARK: Assertion `(PL_markstack_ptr > PL_markstack) || !"MARK underflow"' failed. Would be interesting to see what others get with the same test setup.
On 2018-01-13 02:33:26, ANDK wrote: Show quoted text
> I take perl 5.26.1 compiled with -DDEBUGGING and with Type::Tiny::XS > installed and then let the test run with AUTOMATED_TESTING=1 and test > Type-Tiny-1.002001, only 00-begin.t. Indeed I see the output: > > # **** ANDK BROKEN TESTING ENVIRONMENT DETECTED > > I remove the AUTOMATED_TESTING=1 and I see: > > perl: inline.h:147: S_POPMARK: Assertion `(PL_markstack_ptr > > PL_markstack) || !"MARK underflow"' failed. > > Would be interesting to see what others get with the same test setup.
On a FreeBSD 12 system with normally compiled perls (i.e. without -DDEBUGGING) I get segmentation faults in t/00-begin.t if - Type::Tiny::XS is installed - perl >= 5.22.4 (no segfaults with 5.18.4 or 5.14.4, I don't have 5.20.x on this system) I don't see this kind of error on older FreeBSD systems, or on Linux systems, with normal perls. I also see a SIGABRT with a debugging perl 5.24.0 on debian/jessie. The backtrace here: #0 0x00007f7d77f95067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007f7d77f96448 in __GI_abort () at abort.c:89 #2 0x00007f7d77f8e266 in __assert_fail_base ( fmt=0x7f7d780c6f18 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x600b20 "(PL_markstack_ptr > PL_markstack) || !\"MARK underflow\"", file=file@entry=0x66f580 "util.c", line=line@entry=5611, function=function@entry=0x6726a0 <__PRETTY_FUNCTION__.17339> "Perl_xs_handshake") at assert.c:92 #3 0x00007f7d77f8e312 in __GI___assert_fail ( assertion=assertion@entry=0x600b20 "(PL_markstack_ptr > PL_markstack) || !\"MARK underflow\"", file=file@entry=0x66f580 "util.c", line=line@entry=5611, function=function@entry=0x6726a0 <__PRETTY_FUNCTION__.17339> "Perl_xs_handshake") at assert.c:101 #4 0x00000000004df50c in Perl_xs_handshake (key=key@entry=224395367, v_my_perl=v_my_perl@entry=0x1ab3860, file=file@entry=0x7f7d774041d2 "Util.c") at util.c:5611 #5 0x00007f7d773ff053 in boot_Type__Tiny__XS__Util (cv=cv@entry=0x1ab3860) at Util.c:845 #6 0x00007f7d77403f10 in boot_Type__Tiny__XS (cv=0x1ab3860) at XS.xs:772 #7 0x000000000050bbb5 in Perl_pp_entersub () at pp_hot.c:3987 #8 0x00000000004d5ce2 in Perl_runops_debug () at dump.c:2239 #9 0x0000000000451a00 in S_run_body (oldscope=1) at perl.c:2478 #10 perl_run (my_perl=<optimized out>) at perl.c:2406 #11 0x0000000000421205 in main (argc=3, argv=0x7ffdda8fa868, env=0x7ffdda8fa888) at perlmain.c:116
The weirdest thing is that you're managing to get Type::Tiny::XS installed at all if just checking its version number is giving you a segfault.
Just to confirm that the issue is unchanged: $^X=/home/sand/src/perl/repoperls/installed-perls/host/k93msid/v5.26.2/fc43/bin/perl Type-Tiny-XS-0.014: http://www.cpantesters.org/cpan/report/bc2f31aa-63d6-11e8-bf8e-cd5e4564fd0c Type-Tiny-1.002002: http://www.cpantesters.org/cpan/report/2dec9f30-6765-11e8-9e68-995f92041a07
Thanks for the update. All that test does with Type::Tiny::XS is load it and check $VERSION. How it can fail and all the others pass is hurting my fragile little mind. I'm currently installing a debug version of Perl 5.24.4 with perlbrew. Hopefully I'll get to the bottom of this.
Okay, this is weird. $module = 'Type::Tiny::XS'; eval "require $module"; # crash eval "use $module"; # this is just fine
I think this should be fixed in 1.003_004. Let me know if you still have issues with it.
Fixed in 1.004000.