Ovid has asked for the wisdom of the Perl Monks concerning the following question:
My module, MooseX::Extended is quickly becoming popular and is now being used in production at some companies. However, one person is reporting intermittent segfaults. This appears to be related to my using B::Hooks::AtRuntime to avoid the need to add __PACKAGE__->meta->make_immutable; to the end of every Moose module. There's not much XS code involved, but my XS knowledge is even worse than my C.
Paul "LeoNerd" Evans commented on IRC:
14:18 LeoNerd: #0 Perl_SvREFCNT_dec_NN (sv=0xa65636e6174736e, my_perl=0x55921df002a0) at inline.h:242 <== that looks very much like a bad sv address
14:20 LeoNerd: Not terribly clear where that comes from.. the next context frame is popeval, which suggests stack unwind. Possibly at this point some accessing of bad memory
14:20 LeoNerd: valgrind might help.
Can anyone with XS knowledge help me? As far as I can tell, the code is still solid for prod. I'm wondering if this has something to do with the effectively random order of global destruction because this is just being triggered by a compilation test. (That's just speculation and could be a red herring).
Note: If anyone else experiences this, the workaround is to simply exclude the automatic immutable behavior and add it manually to your M ooseX::Extended classes.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: XS Error: Segfault with B::HooksAtRuntime
by dave_the_m (Monsignor) on Aug 06, 2022 at 15:08 UTC | |
by haj (Vicar) on Aug 06, 2022 at 16:15 UTC | |
by dave_the_m (Monsignor) on Aug 06, 2022 at 18:31 UTC | |
by Ovid (Cardinal) on Aug 06, 2022 at 16:44 UTC | |
by dave_the_m (Monsignor) on Aug 07, 2022 at 12:52 UTC | |
by Ovid (Cardinal) on Aug 08, 2022 at 07:04 UTC | |
by dave_the_m (Monsignor) on Aug 08, 2022 at 08:53 UTC | |
Re: XS Error: Segfault with B::HooksAtRuntime
by kikuchiyo (Hermit) on Aug 05, 2022 at 12:01 UTC | |
by ikegami (Patriarch) on Aug 05, 2022 at 15:53 UTC |