Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Working around refcnt assertion failure in perl

by vsespb (Chaplain)
on Jun 19, 2014 at 09:33 UTC ( [id://1090432]=perlquestion: print w/replies, xml ) Need Help??

vsespb has asked for the wisdom of the Perl Monks concerning the following question:

Hello.

Recently I found a problem, looks like perl bug, posted here: RT#122112 (proof of concept code attached).
In short: "refcnt: fd -1 < 0" assertion triggered.
But this is just bug report, and I need to find workaround for old/current perl versions (bug reproducible in 5.12-5.20).

It seems that any workflow like that:

eval { local $SIG{ALRM}=sub{die}; alarm 10; # fork child # exec in child (exec made in child to separate exec failures from p +rogram exit code) };
_might_ be affected, when ALARM triggered. currently this happening in MIME::Lite for us (related code).

Searching for possible solution to execute external program, with ALRM timeout, without risk running into this.

Replies are listed 'Best First'.
Re: Working around refcnt assertion failure in perl
by Corion (Patriarch) on Jun 19, 2014 at 09:38 UTC

    The only idea that I have would be to decouple mail sending from the rest of your program. Write the mail into a database or a file, and then later have a job go through and send these mails, potentially with a more lenient timeout and without fork+exec involved.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1090432]
Approved by marto
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (7)
As of 2024-04-23 19:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found