You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by ar...@apache.org on 2008/12/17 17:58:37 UTC
svn commit: r727437 - /incubator/vcl/trunk/managementnode/bin/vcld
Author: arkurth
Date: Wed Dec 17 08:58:36 2008
New Revision: 727437
URL: http://svn.apache.org/viewvc?rev=727437&view=rev
Log:
Fixed a bug in vcld::REAPER. It was capturing $? at the beginning of the subroutine but not setting this variable back to its initial value when the sub was done. It was setting $? to the child process exit status ($? >> 8).
Modified:
incubator/vcl/trunk/managementnode/bin/vcld
Modified: incubator/vcl/trunk/managementnode/bin/vcld
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/bin/vcld?rev=727437&r1=727436&r2=727437&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/bin/vcld (original)
+++ incubator/vcl/trunk/managementnode/bin/vcld Wed Dec 17 08:58:36 2008
@@ -664,9 +664,11 @@
# Save the information saved in $? before proceeding
# This is done to save the exit status of the child process which died
# If you don't save it, wait() will overwrite it
+ my $status_save = $?;
my $child_exit_status = $? >> 8;
my $signal_number = $? & 127;
my $dumped_core = $? & 128;
+ #notify($ERRORS{'DEBUG'}, 0, "\$?: $?, signal: $signal_number, dumped core: $dumped_core, child exit status: $child_exit_status");
# Configure the REAPER() subroutine to handle SIGCHLD signals
$SIG{CHLD} = \&REAPER;
@@ -684,13 +686,13 @@
}
else {
# Child which died was some other process
- notify($ERRORS{'DEBUG'}, $LOGFILE, "child process exited, pid=$dead_pid");
+ #notify($ERRORS{'DEBUG'}, $LOGFILE, "child process exited, pid=$dead_pid");
}
# Set the special $? variable back to the exit status of the child which died
# This is useful when utilities such as SSH are run in other places in the code
# The code which called the utility can check the exit status to see if it was successful
- $? = $child_exit_status;
+ $? = $status_save;
return;
} ## end sub REAPER