Prevent early active monitoring of compute processes in AIO

The commit shown below introduced a main loop audit that
mistakenly registers subfunction processes that are in the
waiting for /var/run/.compute_config_complete 'polling'
state during unlock enable.

By doing so inadvertently changes its monitor FSM stage
from 'Poll' to 'Manage' before configuration is complete.

Since config is not complete, the hbsClient has not initialized
its socket interface and is unable to service active monitoring
requests. This leads to quorum failure and watchdog reboot.

commit 537935bb0c
Author: Eric MacDonald <eric.macdonald@windriver.com>
Date:   Mon Jul 9 08:36:22 2018 -0400
Reorder process restart operations to prevent pmond futex deadlock

The Fix: Don't run the audit for processes that are in the
waiting for 'polling' state.

Test Plan:

Provision AIO , verify no quorum failure and inspect logs for
correct behavior.

Change-Id: I179c78309517a34285783ee99bbb3d699915cb83
Closes-Bug: 1804318
Signed-off-by: Eric MacDonald <eric.macdonald@windriver.com>
This commit is contained in:
Eric MacDonald 2018-11-21 09:59:00 -05:00
parent 4380c0ca13
commit 6d0cc6a2a8
2 changed files with 4 additions and 2 deletions

View File

@ -1,3 +1,3 @@
SRC_DIR="src"
TIS_PATCH_VER=140
TIS_PATCH_VER=142
BUILD_IS_SLOW=5

View File

@ -2032,7 +2032,9 @@ void pmon_service ( pmon_ctrl_type * ctrl_ptr )
/* Audit to ensure that running processes are
* registered with the kernel */
if (( process_config[i].registered == false ) &&
if (( process_config[i].stage != PMON_STAGE__POLLING ) &&
( process_config[i].stage != PMON_STAGE__START_WAIT ) &&
( process_config[i].registered == false ) &&
( _pmon_ctrl_ptr->event_mode ) &&
( process_config[i].restart == false ) &&
( process_config[i].failed == false ) &&