Open cjfields opened 8 years ago
Original Redmine Comment Author Name: Chris Fields Original Date: 2011-05-12T18:31:12Z
The lack of returning a PID is a significant bug. I think the solution in this case is to remove forking altogether and either have a way of creating the forked process elsewhere, or leave it up to the user.
Author Name: Ali Walsh (Ali Walsh) Original Redmine Issue: 3200, https://redmine.open-bio.org/issues/3200 Original Date: 2011-04-12 Original Assignee: Bioperl Guts
When using Bio::DB::GenBank it makes use of Bio::DB::WebDBSeqI and the default retrieval type uses a pipeline that forks a child process to allow parallelism however the process ID of the child is not kept and hence when an error occurs, e.g. a bad gateway or accession not found the child process cannot be killed as the ID is out of scope. For this reason it is difficult to create robust code that correctly handles errors. If the object kept the pid then any processes running that had pid of 0, i.e. they are children could be killed in the catch block when an exception occurs.