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 2017/06/06 16:46:19 UTC

svn commit: r1797807 - /vcl/trunk/managementnode/bin/vcld

Author: arkurth
Date: Tue Jun  6 16:46:19 2017
New Revision: 1797807

URL: http://svn.apache.org/viewvc?rev=1797807&view=rev
Log:
VCL-887
Removed calls to switch_state in vcld. These would only be called if a module failed to load.

Added call to update_request_state in vcld::die_handler to prevent requests from being stuck in pending.

Modified:
    vcl/trunk/managementnode/bin/vcld

Modified: vcl/trunk/managementnode/bin/vcld
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/bin/vcld?rev=1797807&r1=1797806&r2=1797807&view=diff
==============================================================================
--- vcl/trunk/managementnode/bin/vcld (original)
+++ vcl/trunk/managementnode/bin/vcld Tue Jun  6 16:46:19 2017
@@ -583,7 +583,6 @@ sub make_new_child {
 			eval "use $state_module";
 			if ($EVAL_ERROR) {
 				notify($ERRORS{'CRITICAL'}, $LOGFILE, "$state_module module could not be loaded, error: $EVAL_ERROR");
-				switch_state($request_data, 'failed', '', 'failed', 1);
 				exit;
 			}
 			
@@ -608,7 +607,6 @@ sub make_new_child {
 				else {
 					notify($ERRORS{'CRITICAL'}, $LOGFILE, "$state_module object could not be created and initialized");
 				}
-				switch_state($request_data, 'failed', '', 'failed', 1);
 			}
 			
 			exit;
@@ -634,12 +632,12 @@ sub make_new_child {
  Returns     : Nothing
  Description : Handles __WARN__ signals. This signal is generated when warn()
                is called. This may occur when the VCL code encounters an
-					error such as:
-					Use of uninitialized value in concatenation (.) or string at
-					
-					If the signal isn't handled, the warning message is dumped
-					to STDOUT and will appear in the log file. This handler
-					causes WARN signals to be logged by the notify() subroutine.
+               error such as:
+               Use of uninitialized value in concatenation (.) or string at
+               
+               If the signal isn't handled, the warning message is dumped
+               to STDOUT and will appear in the log file. This handler
+               causes WARN signals to be logged by the notify() subroutine.
 
 =cut
 
@@ -659,13 +657,12 @@ sub warning_handler {
  Returns     : Nothing
  Description : Handles __DIE__ signals. This signal is generated when die()
                is called. This may occur when the VCL code encounters an
-					error such as:
-					Uncaught exception from user code:
+               error such as:
+               Uncaught exception from user code:
                Undefined subroutine ... called at ...
-					
-					If the signal isn't handled, the output is dumped to STDERR
-					and the process exits quietly.
-
+               
+               If the signal isn't handled, the output is dumped to STDERR
+               and the process exits quietly.
 
 =cut
 
@@ -673,6 +670,11 @@ sub die_handler {
 	# Call notify, passing it a string of whatever is contained in @_
 	notify($ERRORS{'CRITICAL'}, $LOGFILE, "@_");
 	
+	# Prevent requests stuck in pending, try to set state back to original
+	if ($ENV{request_id} && $ENV{state}) {
+		update_request_state($ENV{request_id}, $ENV{state}, $ENV{state});
+	}
+	
 	# Reinstall the signal handler in case of unreliable signals
 	$SIG{__DIE__} = \&die_handler;
 	
@@ -711,14 +713,14 @@ sub HUNTSMAN {
  Returns     : Undefined
  Description : The REAPER subroutine gets called whenever a child process
                stops running or exits. This occurs because the subroutine is
-					configured as the handler for SIGCHLD signals. The system will
-					send a SIGCHLD signal whenever a child process stops running
-					or exits.
+               configured as the handler for SIGCHLD signals. The system will
+               send a SIGCHLD signal whenever a child process stops running
+               or exits.
                
-					The REAPER subroutine manages the child PID hash when a VCL .
-					state process exits. It also captures the exit code of the
-					child process which died and makes sure the special $?
-					variable is set to this value.
+               The REAPER subroutine manages the child PID hash when a VCL .
+               state process exits. It also captures the exit code of the
+               child process which died and makes sure the special $?
+               variable is set to this value.
 
 =cut
 
@@ -829,15 +831,15 @@ sub daemonize {
  Parameters  : None.
  Returns     : 
  Description : Checks each module in the module table for
-					the existance of a subroutine named "setup". Calls the setup
-					subroutine for each module which contains one.
-					
-					The program terminates if a module's setup subroutine returns
-					false. The program continues if a module's setup subroutine
-					returns true.
-					
-					STDOUT "print" statements are printed to the screen. Messages
-					sent to the "notify" subroutine are printed to the logfile.
+               the existance of a subroutine named "setup". Calls the setup
+               subroutine for each module which contains one.
+               
+               The program terminates if a module's setup subroutine returns
+               false. The program continues if a module's setup subroutine
+               returns true.
+               
+               STDOUT "print" statements are printed to the screen. Messages
+               sent to the "notify" subroutine are printed to the logfile.
 
 =cut