Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: apache2 mod_perl DBD/DBI postgres connection problems (alarm?)

by tye (Cardinal)
on Oct 12, 2011 at 01:20 UTC ( #930901=note: print w/ replies, xml ) Need Help??

in reply to apache2 mod_perl DBD/DBI postgres connection problems

Are you using alarm to time-out SQL queries? That will only work if you have "safe signals" turned off. This makes the signals... unsafe. I don't recall the exact errors that we ran into due to that, but yours certainly seem similar.

Empirical statistics suggest that about 10% of such firings of SIGALRM will result in the Perl interpreter becoming, shall we say, "unhappy". The safest thing is to just force the process to exit quickly after an unsafe signal gets processed.

I think Perl actually does things with "safe signals" that actually prevents a signal from interrupting an I/O operation. If so, that is quite unfortunate. If not, it might be fairly easy to build a patched version of the DBD module you are using such that interrupted I/O requests don't get restarted.

It is certainly very unfortunate that Perl can't safely time-out a DB operation.

- tye        

Comment on Re: apache2 mod_perl DBD/DBI postgres connection problems (alarm?)
Re^2: apache2 mod_perl DBD/DBI postgres connection problems (alarm?)
by otter117 (Initiate) on Oct 12, 2011 at 12:13 UTC
    Thanks for your reply. We do not use alarm at all. We have no code for timing out SQL queries.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://930901]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (5)
As of 2015-03-07 05:02 GMT
Find Nodes?
    Voting Booth?

    When putting a smiley right before a closing parenthesis, do you:

    Results (184 votes), past polls