Skip Menu |

This queue is for tickets about the Moo CPAN distribution.

Report information
The Basics
Id: 87043
Status: resolved
Priority: 0/
Queue: Moo

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

Bug Information
Severity: Important
Broken in: 1.003000
Fixed in: 1.003001



Subject: Regression: Deep recursion on subroutine "Foo::new"
The following test case is broken in latest release while it worked in previous ones: === package Flow; use Moo; has 'foo' => (is => 'rw'); package BridgeFlow; use Moo; extends 'Flow'; package main; use threads; threads->create(sub { BridgeFlow->new })->join; === The above code outputs: Thread 1 terminated abnormally: Deep recursion on subroutine "Flow::new" at /Library/Perl/5.12/Sub/Defer.pm line 41. Devel::Trace shows what the tight loop is. I don't understand why this only happens with multiple threads; I guess some cache table is not cloned correctly or something. Thank you!
While this particular failure may not have happened in past versions, threads have never been properly handled. I believe I have a fix for this, so it should be fixed in the next release.
haarg wrote: Show quoted text
> While this particular failure may not have happened in past versions, > threads have never been properly handled. > I believe I have a fix for this, so it should be fixed in the next > release.
Thank you haarg. Slic3r has been using Moo with threads heavily for a long time, and I confirm there have been no issues so far. This issue is causing major problems because users (and there are many!) need to be told to downgrade Moo, which is not that easy for the average user. Is there any way I can help to speed up the fix and the release process? - Alessandro
Hello! Any update on this issue? Can I help somehow?
I've merged in my patch to resolve this issue. I have a couple other fixes I'm working on finishing, then I'll get a release out.
Il Sab 24 Ago 2013 09:33:00, haarg ha scritto: Show quoted text
> I've merged in my patch to resolve this issue. I have a couple other > fixes I'm working on finishing, then I'll get a release out.
Hello Graham, thank you for fixing this. I see sub-defer-threads.t and sub-quote-threads.t. Don't you think it would be good to add an additional test with the above snippet in my original report? That would apply a regression test on the public API, thus a bit more general than just testing the Sub::* modules. I can submit a patch for it, in case. BTW, current HEAD (bf0f29b2) fails several tests for me. Let me know should you need the details.
Fixed in Moo 1.003001.