What is the cause for “panic: free from wrong pool during global destruction.” in Term::ReadLine::Gnu?
in https://rt.cpan.org/Ticket/Display.html?id=37194#txn-641389 I reopened a bug concerning a Perl crash in conjunction with the libreadline XS bindings. I attached the necessary debug information, but until now there has been no acknowledgement from the maintainer. I want this finally fixed; it's a major inconvenience to not have readline in Devel::REPL and the Perl debugger. My Perl guts and C夫 is nearly non-existent, so I can't do the usual thing and produce a patch on my own. So I would like to employ your help; more eyeballs ↔ shallow bugs and all that.
My questions to you:
- Can you reproduce this crash despite
-DPERL_USE_SAFE_PUTENV
? If yes, let's compare what is the common facto开发者_如何学运维r. - Do you know what is the cause and how do you go about finding it?
- I have a debugging perl and know how to use gdb, but where do I have to set a breakpoint to observe the crash properly?
readline 6.1.000
works fine for me here with Perl 5.10.0 & 5.10.1 (on Mac OS X 10.4, 10.5 & 10.6).
Also OK for me is Perl 5.8.8 & 5.10.1 on RedHat Enterprise Linux 5.3 (this time with readline 5.1
).
There seems to be a lot of bug fixes between 5.2 & 6.1, so it might be worth trying the newer (or older!) readline
to 5.2
/I3az/
The problem was that my perl never had safe putenv. The option is not -DPERL_USE_SAFE_PUTENV
, but -Accflags="-DPERL_USE_SAFE_PUTENV"
.
Doc patches to combat the mistake:
- https://rt.cpan.org/Ticket/Display.html?id=59592
- https://rt.perl.org/rt3/Ticket/Display.html?id=76618
精彩评论