diff --git a/modules/Bio/EnsEMBL/Hive/RunnableDB/SystemCmd.pm b/modules/Bio/EnsEMBL/Hive/RunnableDB/SystemCmd.pm index 8df4cd1681f6c2be39c2fe262ebc5fc448a99038..14a8eb8c002cac3647a04c4e6860f493220dcd35 100755 --- a/modules/Bio/EnsEMBL/Hive/RunnableDB/SystemCmd.pm +++ b/modules/Bio/EnsEMBL/Hive/RunnableDB/SystemCmd.pm @@ -88,10 +88,15 @@ sub run { my $self = shift; my $cmd = $self->param('cmd'); + + $self->dbc->disconnect_when_inactive(1); # release this connection for the duration of system() call + if(my $return_value = system($cmd)) { $return_value >>= 8; die "system( $cmd ) failed: $return_value"; } + + $self->dbc->disconnect_when_inactive(0); # allow the worker to keep the connection open again } =head2 write_output