perl 5.18.1 + EV?

Darin McBride darin.mcbride at shaw.ca
Tue Oct 22 01:56:56 CEST 2013


On Monday October 21 2013 9:15:22 PM Marc Lehmann wrote:
> On Mon, Oct 21, 2013 at 11:45:29AM -0600, Darin McBride 
<darin.mcbride at shaw.ca> wrote:
> > Ah, that's it for AE::DBI - global destruction.  Put some braces in, and
> > that particular problem went away.  That should make it easier to
> > replicate the original Coro problem, which definitely was not during
> > global destruction.
> I spent the day upgrading to perl 5.18.1, got annoyed that the p5ps still
> didn't fix the makefiles to allow parallel builds, found and reported two
> core perl bugs, but so far, all our EV and Coro-heavy programs work (only a
> few hours, and not yet in production though).
> 
> So it's rpobably something that your code specifically triggers.

Yes.  I have an object hierarchy going: Moose -> X -> Y -> Z.  If I do that, 
it works, but if I remove "Y" from the list, then it dies.  I'm going to 
continue looking at that to see if I can pare it down to not using any of my 
hierarchy and just something you can use/see.

> > And then, once I do that, I might want to move back to 5.16.3, just so
> > this
> > all works until you've had a chance to get it all going again.  Which is
> > unfortunate, but that's just the way things go.
> 
> A testcase would be the next step :)

Here's one:

$ dev_perl -MCoro -MAnyEvent::DBI -de 1

Loading DB routines from perl5db.pl version 1.39_10
Editor support available.

Enter h or 'h h' for help, or 'man perldebug' for more help.

panic: sv_len_utf8 cache 22 real 13 for AnyEvent::log at 
/home/dmcbride/tmp/isas/perl/opt/IBM/mibe/perl/lib/5.18.1/perl5db.pl line 
4112.
BEGIN failed--compilation aborted at 
/home/dmcbride/tmp/isas/perl/opt/IBM/mibe/perl/lib/site_perl/5.18.1/x86_64-
linux-thread-multi/AnyEvent/Util.pm line 419.
Compilation failed in require at 
/home/dmcbride/tmp/isas/perl/opt/IBM/mibe/perl/lib/site_perl/5.18.1/AnyEvent/DBI.pm 
line 70.
BEGIN failed--compilation aborted at 
/home/dmcbride/tmp/isas/perl/opt/IBM/mibe/perl/lib/site_perl/5.18.1/AnyEvent/DBI.pm 
line 70.
Compilation failed in require.
BEGIN failed--compilation aborted.
Debugged program terminated.  Use q to quit or R to restart,
use o inhibit_exit to avoid stopping after program termination,
h q, h R or h o to get additional info.
  DB<1> 

I'm not sure why it gives me that panic. :(

Note that when I try to debug my real code, I get the panic elsewhere, but 
still somewhere in Coro:

panic: sv_len_utf8 cache 19 real 24 for Coro::EV::_set_readyhook

But at least this testcase doesn't involve any of my code - thus giving me the 
distinct impression that I'm not messing this up :)

Note that if I remove -MCoro, then the above debugger works fine.  Also, if I 
add in -MAnyEvent::Loop it also works fine.  Hmm - I should try that with my 
real code - remove EV, switch to AnyEvent::Loop...



More information about the anyevent mailing list