Whamcloud - gitweb
LU-12397 osp: always set opd_new_connection 78/35078/6
authorSergey Cheremencev <c17829@cray.com>
Mon, 25 Mar 2019 22:06:00 +0000 (01:06 +0300)
committerOleg Drokin <green@whamcloud.com>
Fri, 25 Sep 2020 03:12:43 +0000 (03:12 +0000)
commit1b5abf625462a2b66820b2d07e25619afba504c6
treee0b7f6d14471e5500a5f57c811e7620d32671dae
parent36eca1017fe4643638d5f8bde646472fe8abb933
LU-12397 osp: always set opd_new_connection

Flag opd_got_disconnected could be set back to 0
due to a race osp_precreate_thread vs osp_import_event.
Next ACTIVE event doesn't set opd_new_connection as
opd_got_disconnected also 0(i.e. import hasn't disconnected).
Such race is causing osp_precreate_thread to infinitly sleep
in wait despite сonnection state is FULL.

The patch always sets opd_new_connection flag on ACTIVE event
regardless value of opd_got_disconnected.

Patch is adding conf-sanity_101b test to race DISCON and ACTIVE
events. Without a fix the test causes to hung osp_precreate_thread
and as a result osp_precreate_reserve threads.

Change-Id: Iff41a2743f108679d5f70aca8e1c2108e979ac09
Cray-bug-id: LUS-7178
Signed-off-by: Sergey Cheremencev <c17829@cray.com>
Reviewed-on: https://es-gerrit.dev.cray.com/154883
Reviewed-by: Andriy Skulysh <c17819@cray.com>
Reviewed-by: Alexander Boyko <c17825@cray.com>
Tested-by: Elena Gryaznova <c17455@cray.com>
Reviewed-on: https://review.whamcloud.com/35078
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Alexander Boyko <alexander.boyko@hpe.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/obd_support.h
lustre/osp/osp_dev.c
lustre/osp/osp_precreate.c
lustre/tests/conf-sanity.sh