You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When I use DBD::Oracle (v1.83) with forks (which we use to get consistent fork behavior with Apache/ModPerl) with Perl v5.34.0 on Ubuntu 22.04, we get a segmentation fault on any subsequent system() or exec() call but on when we use backticks.
use forks;
use DBI;
my$dbh = DBI->connect( 'dbi:Oracle://localhost', '', '',
{
ora_verbose=> 6,
});
$dbh->prepare('select 1 from dual');
$dbh->disconnect();
system("echo 2");
sleep 1;
print"Done!\n";
In order to be compatible with perl's core system() function on all platforms, extra care has gone into implementing a smarter $SIG{CHLD} in forks.pm. The only functional effect is that you will never need to (or be able to) reap threads (processes) if you define your own CHLD handler.
You may define the environment variable THREADS_SIGCHLD_IGNORE to force forks to use 'IGNORE' on systems where a custom CHLD signal handler has been automatically installed to support correct exit code of perl core system() function. Note that this should not be necessary unless you encounter specific issues with the forks.pm CHLD signal handler.
When I use
DBD::Oracle
(v1.83) withforks
(which we use to get consistentfork
behavior with Apache/ModPerl) with Perl v5.34.0 on Ubuntu 22.04, we get a segmentation fault on any subsequentsystem()
orexec()
call but on when we use backticks.produces
With backticks, it works:
produces
$ perl -MDebug::DumpCore IPS/test_dbd_forks.pl 2 Done!
I created a backtrace of the segmentation fault with
gdb
:The text was updated successfully, but these errors were encountered: