Re: $SIG{INT} tampering during DBI->connect on Oracle

John Scoles <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase.devel
Message-ID <[email protected]>
On 11/2/2010 2:49 PM, Brian Phillips wrote:
> Hello - I recently discovered that when we do a DBI->connect to an Oracle
> database, the process no longer responds to SIGINT signals.  I'm not sure if
> it's something in DBD::Oracle (I can't find anything messing with $SIG{INT})
> or something in the Oracle client itself but the fix is relatively simple
> and I'm hoping it can be included in DBD::Oracle (unless there's a downside
> I'm not seeing).
>
> Here's some code that illustrates the problem:
> http://gist.github.com/660058#file_dbd_oracle_sigint_fail.pl
>
> Basically, the forked child process discards the SIGINT signal once it's
> done a DBI->connect.
>
> The workaround seems fairly simple (a single-line change from the above:
> http://gist.github.com/660058#file_dbd_oracle_sigint_works.pl):
>
>    {
>      local $SIG{INT}; # make sure $SIG{INT} returns to normal after we
> leave this block
>      $dbh = DBI->connect('dbi:Oracle:mydb', 'user', 'password');
>      warn "connected in child ($$)\n";
>    }
>
> Is this something that would be appropriate to go in the
> DBD::Oracle::dr::connect
> sub? I have not checked any other signal handlers besides INT and TERM (TERM
> seems to work fine) but perhaps it'd be better to localize the entire %SIG
> hash:
> local @SIG{ keys %SIG };
>
> Thoughts?
> Brian
>
Sounds like a good Idea.  I could include it but is it 'safe'  We will 
have to here from types that know something more
about SIGINT signals than I do.

My one question is how OS transportable is this?

Just for example If I am working on windows does SIGINT have any effect?


Like to here what the other Maintainers say?

Cheers
John
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.