[ 
https://issues.apache.org/jira/browse/VCL-998?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andy Kurth updated VCL-998:
---------------------------
    Description: 
{noformat}|inuse|utils.pm:database_select|2820| ---- WARNING ----
|inuse|utils.pm:database_select|2820| 2016-10-18 
22:53:23|inuse|utils.pm:database_select|2820|could not execute statement on vcl 
database, SELECT
|inuse|utils.pm:database_select|2820| state.name AS state_name,
|inuse|utils.pm:database_select|2820| laststate.name AS laststate_name
|inuse|utils.pm:database_select|2820| FROM
|inuse|utils.pm:database_select|2820| request,
|inuse|utils.pm:database_select|2820| state,
|inuse|utils.pm:database_select|2820| state laststate
|inuse|utils.pm:database_select|2820| WHERE
|inuse|utils.pm:database_select|2820| request.id = 3008649
|inuse|utils.pm:database_select|2820| AND request.stateid = state.id
|inuse|utils.pm:database_select|2820| AND request.laststateid = laststate.id
|inuse|utils.pm:database_select|2820| error: Lost connection to MySQL server 
during query
|inuse|utils.pm:database_select|2820| ( 0) utils.pm, database_select (line: 
2820)
|inuse|utils.pm:database_select|2820| (-1) utils.pm, 
get_request_current_state_name (line: 5394)
|inuse|utils.pm:database_select|2820| (-2) utils.pm, is_request_deleted (line: 
1682)
|inuse|utils.pm:database_select|2820| (-3) State.pm, user_connected (line: 266)
|inuse|utils.pm:database_select|2820| (-4) inuse.pm, __ANON__ (line: 306)
|inuse|utils.pm:database_select|2820| (-5) Module.pm, code_loop_timeout (line: 
1504)
|inuse|utils.pm:get_request_current_state_name|5398| ---- WARNING ----
|inuse|utils.pm:get_request_current_state_name|5398| 2016-10-18 
22:53:23|inuse|utils.pm:get_request_current_state_name|5398|unable to determine 
current state of request 3008649, zero rows were returned from database select
|inuse|utils.pm:get_request_current_state_name|5398| ( 0) utils.pm, 
get_request_current_state_name (line: 5398)
|inuse|utils.pm:get_request_current_state_name|5398| (-1) utils.pm, 
is_request_deleted (line: 1682)
|inuse|utils.pm:get_request_current_state_name|5398| (-2) State.pm, 
user_connected (line: 266)
|inuse|utils.pm:get_request_current_state_name|5398| (-3) inuse.pm, __ANON__ 
(line: 306)
|inuse|utils.pm:get_request_current_state_name|5398| (-4) Module.pm, 
code_loop_timeout (line: 1504)
|inuse|utils.pm:get_request_current_state_name|5398| (-5) inuse.pm, process 
(line: 306)
|inuse|utils.pm:is_request_deleted|1684| ---- WARNING ----
|inuse|utils.pm:is_request_deleted|1684| 2016-10-18 
22:53:23|inuse|utils.pm:is_request_deleted|1684|request 3008649 state data 
could not be retrieved, assuming request is deleted and was removed from the 
database, returning true
|inuse|utils.pm:is_request_deleted|1684| ( 0) utils.pm, is_request_deleted 
(line: 1684)
|inuse|utils.pm:is_request_deleted|1684| (-1) State.pm, user_connected (line: 
266)
|inuse|utils.pm:is_request_deleted|1684| (-2) inuse.pm, __ANON__ (line: 306)
|inuse|utils.pm:is_request_deleted|1684| (-3) Module.pm, code_loop_timeout 
(line: 1504)
|inuse|utils.pm:is_request_deleted|1684| (-4) inuse.pm, process (line: 306)
|inuse|utils.pm:is_request_deleted|1684| (-5) vcld, make_new_child (line: 602)
2016-10-18 22:53:23|inuse|State.pm:state_exit|863|beginning state module exit 
tasks
|inuse|State.pm:state_exit|863| request state argument: <not specified>
|inuse|State.pm:state_exit|863| computer state argument: <not specified>
|inuse|State.pm:state_exit|863| log ending argument: <not specified>
{noformat}

As shown above, while retrieving the current request state an error occurred:
{color:red}*error: Lost connection to MySQL server during query*{color}

The process was able to connect to the database a few seconds later.  I believe 
this is a very rare situation but we could add some logic to 
*State.pm:state_exit* to prevent processes from exiting if the current state in 
the database is likely _pending_.

This isn't a major problem because the code eventually cleaned out the orphaned 
_pending_/_inuse_ process:
{noformat}
2016-10-19 
08:56:22|24164|3008853|3116173|reload|utils.pm:get_request_by_computerid|5351|retrieved
 info and DataStructure object for 3008649:3115969
|24164|3008853|3116173|reload|new.pm:computer_not_being_used|703| 
request:reservation ID: 3008649:3115969
2016-10-19 
08:56:22|24164|3008853|3116173|reload|utils.pm:update_request_state|1399|request
 3008649 state updated to complete/inuse
{noformat}

  was:
{noformat}|inuse|utils.pm:database_select|2820| ---- WARNING ----
|inuse|utils.pm:database_select|2820| 2016-10-18 
22:53:23|inuse|utils.pm:database_select|2820|could not execute statement on vcl 
database, SELECT
|inuse|utils.pm:database_select|2820| state.name AS state_name,
|inuse|utils.pm:database_select|2820| laststate.name AS laststate_name
|inuse|utils.pm:database_select|2820| FROM
|inuse|utils.pm:database_select|2820| request,
|inuse|utils.pm:database_select|2820| state,
|inuse|utils.pm:database_select|2820| state laststate
|inuse|utils.pm:database_select|2820| WHERE
|inuse|utils.pm:database_select|2820| request.id = 3008649
|inuse|utils.pm:database_select|2820| AND request.stateid = state.id
|inuse|utils.pm:database_select|2820| AND request.laststateid = laststate.id
|inuse|utils.pm:database_select|2820| error: Lost connection to MySQL server 
during query
|inuse|utils.pm:database_select|2820| ( 0) utils.pm, database_select (line: 
2820)
|inuse|utils.pm:database_select|2820| (-1) utils.pm, 
get_request_current_state_name (line: 5394)
|inuse|utils.pm:database_select|2820| (-2) utils.pm, is_request_deleted (line: 
1682)
|inuse|utils.pm:database_select|2820| (-3) State.pm, user_connected (line: 266)
|inuse|utils.pm:database_select|2820| (-4) inuse.pm, __ANON__ (line: 306)
|inuse|utils.pm:database_select|2820| (-5) Module.pm, code_loop_timeout (line: 
1504)
|inuse|utils.pm:get_request_current_state_name|5398| ---- WARNING ----
|inuse|utils.pm:get_request_current_state_name|5398| 2016-10-18 
22:53:23|inuse|utils.pm:get_request_current_state_name|5398|unable to determine 
current state of request 3008649, zero rows were returned from database select
|inuse|utils.pm:get_request_current_state_name|5398| ( 0) utils.pm, 
get_request_current_state_name (line: 5398)
|inuse|utils.pm:get_request_current_state_name|5398| (-1) utils.pm, 
is_request_deleted (line: 1682)
|inuse|utils.pm:get_request_current_state_name|5398| (-2) State.pm, 
user_connected (line: 266)
|inuse|utils.pm:get_request_current_state_name|5398| (-3) inuse.pm, __ANON__ 
(line: 306)
|inuse|utils.pm:get_request_current_state_name|5398| (-4) Module.pm, 
code_loop_timeout (line: 1504)
|inuse|utils.pm:get_request_current_state_name|5398| (-5) inuse.pm, process 
(line: 306)
|inuse|utils.pm:is_request_deleted|1684| ---- WARNING ----
|inuse|utils.pm:is_request_deleted|1684| 2016-10-18 
22:53:23|inuse|utils.pm:is_request_deleted|1684|request 3008649 state data 
could not be retrieved, assuming request is deleted and was removed from the 
database, returning true
|inuse|utils.pm:is_request_deleted|1684| ( 0) utils.pm, is_request_deleted 
(line: 1684)
|inuse|utils.pm:is_request_deleted|1684| (-1) State.pm, user_connected (line: 
266)
|inuse|utils.pm:is_request_deleted|1684| (-2) inuse.pm, __ANON__ (line: 306)
|inuse|utils.pm:is_request_deleted|1684| (-3) Module.pm, code_loop_timeout 
(line: 1504)
|inuse|utils.pm:is_request_deleted|1684| (-4) inuse.pm, process (line: 306)
|inuse|utils.pm:is_request_deleted|1684| (-5) vcld, make_new_child (line: 602)
2016-10-18 22:53:23|inuse|State.pm:state_exit|863|beginning state module exit 
tasks
|inuse|State.pm:state_exit|863| request state argument: <not specified>
|inuse|State.pm:state_exit|863| computer state argument: <not specified>
|inuse|State.pm:state_exit|863| log ending argument: <not specified>
{noformat}

As shown above, while retrieving the current request state an error occurred:
{color:red}*error: Lost connection to MySQL server during query*{color}

The process was able to connect to the database a few seconds later.  I believe 
this is a very rare situation but we could add some logic to 
*State.pm:state_exit* to prevent processes from exiting if the current state in 
the database is likely _pending_.


> Request may be left in pending state if database connection is lost
> -------------------------------------------------------------------
>
>                 Key: VCL-998
>                 URL: https://issues.apache.org/jira/browse/VCL-998
>             Project: VCL
>          Issue Type: Bug
>          Components: vcld (backend)
>    Affects Versions: 2.4.2
>            Reporter: Andy Kurth
>
> {noformat}|inuse|utils.pm:database_select|2820| ---- WARNING ----
> |inuse|utils.pm:database_select|2820| 2016-10-18 
> 22:53:23|inuse|utils.pm:database_select|2820|could not execute statement on 
> vcl database, SELECT
> |inuse|utils.pm:database_select|2820| state.name AS state_name,
> |inuse|utils.pm:database_select|2820| laststate.name AS laststate_name
> |inuse|utils.pm:database_select|2820| FROM
> |inuse|utils.pm:database_select|2820| request,
> |inuse|utils.pm:database_select|2820| state,
> |inuse|utils.pm:database_select|2820| state laststate
> |inuse|utils.pm:database_select|2820| WHERE
> |inuse|utils.pm:database_select|2820| request.id = 3008649
> |inuse|utils.pm:database_select|2820| AND request.stateid = state.id
> |inuse|utils.pm:database_select|2820| AND request.laststateid = laststate.id
> |inuse|utils.pm:database_select|2820| error: Lost connection to MySQL server 
> during query
> |inuse|utils.pm:database_select|2820| ( 0) utils.pm, database_select (line: 
> 2820)
> |inuse|utils.pm:database_select|2820| (-1) utils.pm, 
> get_request_current_state_name (line: 5394)
> |inuse|utils.pm:database_select|2820| (-2) utils.pm, is_request_deleted 
> (line: 1682)
> |inuse|utils.pm:database_select|2820| (-3) State.pm, user_connected (line: 
> 266)
> |inuse|utils.pm:database_select|2820| (-4) inuse.pm, __ANON__ (line: 306)
> |inuse|utils.pm:database_select|2820| (-5) Module.pm, code_loop_timeout 
> (line: 1504)
> |inuse|utils.pm:get_request_current_state_name|5398| ---- WARNING ----
> |inuse|utils.pm:get_request_current_state_name|5398| 2016-10-18 
> 22:53:23|inuse|utils.pm:get_request_current_state_name|5398|unable to 
> determine current state of request 3008649, zero rows were returned from 
> database select
> |inuse|utils.pm:get_request_current_state_name|5398| ( 0) utils.pm, 
> get_request_current_state_name (line: 5398)
> |inuse|utils.pm:get_request_current_state_name|5398| (-1) utils.pm, 
> is_request_deleted (line: 1682)
> |inuse|utils.pm:get_request_current_state_name|5398| (-2) State.pm, 
> user_connected (line: 266)
> |inuse|utils.pm:get_request_current_state_name|5398| (-3) inuse.pm, __ANON__ 
> (line: 306)
> |inuse|utils.pm:get_request_current_state_name|5398| (-4) Module.pm, 
> code_loop_timeout (line: 1504)
> |inuse|utils.pm:get_request_current_state_name|5398| (-5) inuse.pm, process 
> (line: 306)
> |inuse|utils.pm:is_request_deleted|1684| ---- WARNING ----
> |inuse|utils.pm:is_request_deleted|1684| 2016-10-18 
> 22:53:23|inuse|utils.pm:is_request_deleted|1684|request 3008649 state data 
> could not be retrieved, assuming request is deleted and was removed from the 
> database, returning true
> |inuse|utils.pm:is_request_deleted|1684| ( 0) utils.pm, is_request_deleted 
> (line: 1684)
> |inuse|utils.pm:is_request_deleted|1684| (-1) State.pm, user_connected (line: 
> 266)
> |inuse|utils.pm:is_request_deleted|1684| (-2) inuse.pm, __ANON__ (line: 306)
> |inuse|utils.pm:is_request_deleted|1684| (-3) Module.pm, code_loop_timeout 
> (line: 1504)
> |inuse|utils.pm:is_request_deleted|1684| (-4) inuse.pm, process (line: 306)
> |inuse|utils.pm:is_request_deleted|1684| (-5) vcld, make_new_child (line: 602)
> 2016-10-18 22:53:23|inuse|State.pm:state_exit|863|beginning state module exit 
> tasks
> |inuse|State.pm:state_exit|863| request state argument: <not specified>
> |inuse|State.pm:state_exit|863| computer state argument: <not specified>
> |inuse|State.pm:state_exit|863| log ending argument: <not specified>
> {noformat}
> As shown above, while retrieving the current request state an error occurred:
> {color:red}*error: Lost connection to MySQL server during query*{color}
> The process was able to connect to the database a few seconds later.  I 
> believe this is a very rare situation but we could add some logic to 
> *State.pm:state_exit* to prevent processes from exiting if the current state 
> in the database is likely _pending_.
> This isn't a major problem because the code eventually cleaned out the 
> orphaned _pending_/_inuse_ process:
> {noformat}
> 2016-10-19 
> 08:56:22|24164|3008853|3116173|reload|utils.pm:get_request_by_computerid|5351|retrieved
>  info and DataStructure object for 3008649:3115969
> |24164|3008853|3116173|reload|new.pm:computer_not_being_used|703| 
> request:reservation ID: 3008649:3115969
> 2016-10-19 
> 08:56:22|24164|3008853|3116173|reload|utils.pm:update_request_state|1399|request
>  3008649 state updated to complete/inuse
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to