-
Notifications
You must be signed in to change notification settings - Fork 302
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DAOS-16175 container: fix a case for cont_iv_hdl_fetch #15395
Conversation
Ticket title is 'osa/online_reintegration.py:OSAOnlineReintegration.test_osa_online_reintegration - ior ERROR: dfs_write(0x558a3373e000, 40000) failed (22): Invalid argument' |
In reintegrate case, ever hit case that the IC_CONT_CAPA cache is valid locally but cont open handle invalid (not in dt_cont_hdl_hash). For this case invalidate local IV cache first and retry again, to avoid in-flight UPDATE's failure because obj_ioc_init() -> ds_cont_find_hdl() -> cont_iv_hdl_fetch() failure - DBUG src/engine/server_iv.c:409 ivc_on_fetch() FETCH: Key [1:7] entry 0x7fb31063b550 valid yes DBUG src/engine/server_iv.c:1042 iv_op_internal() class_id 7 opc 1 rc 0 ERR src/object/srv_obj.c:2174 obj_ioc_begin_lite() Failed to initialize object I/O context.: DER_NO_HDL(-1002): 'Invalid handle' Signed-off-by: Xuezhao Liu <[email protected]>
bdaf96d
to
ee2e8b5
Compare
*/ | ||
if (!invalidate_current) { | ||
invalidate_current = true; | ||
ABT_eventual_free(&eventual); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor: use ABT_eventual_reset() here to avoid eventual creation on retry.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok, will change if this PR need refresh. Or by other PR later.
In special massive failure case - 1. some engines down and triggered rebuild. 2. one engine participated the rebuild, not finished yet, it down again, the #failures exceeds pool RF and will not change pool map. 3. That engine restarted by administrator. In that case should recover the rebuild task on the engine, to simplify it now just abort and retry the global rebuild task. No such issue by the typical recover approach that restart the whole system including the PS leader. another backport commit - 947c76d DAOS-16175 container: fix a case for cont_iv_hdl_fetch (#15395) Skip-nlt: true Signed-off-by: Xuezhao Liu <[email protected]>
In special massive failure case - 1. some engines down and triggered rebuild. 2. one engine participated the rebuild, not finished yet, it down again, the #failures exceeds pool RF and will not change pool map. 3. That engine restarted by administrator. In that case should recover the rebuild task on the engine, to simplify it now just abort and retry the global rebuild task. No such issue by the typical recover approach that restart the whole system including the PS leader. another backport commit - 947c76d DAOS-16175 container: fix a case for cont_iv_hdl_fetch (#15395) Skip-nlt: true Signed-off-by: Xuezhao Liu <[email protected]>
In special massive failure case - 1. some engines down and triggered rebuild. 2. one engine participated the rebuild, not finished yet, it down again, the #failures exceeds pool RF and will not change pool map. 3. That engine restarted by administrator. In that case should recover the rebuild task on the engine, to simplify it now just abort and retry the global rebuild task. No such issue by the typical recover approach that restart the whole system including the PS leader. another backport commit - 947c76d DAOS-16175 container: fix a case for cont_iv_hdl_fetch (#15395) Skip-nlt: true Signed-off-by: Xuezhao Liu <[email protected]>
In special massive failure case - 1. some engines down and triggered rebuild. 2. one engine participated the rebuild, not finished yet, it down again, the #failures exceeds pool RF and will not change pool map. 3. That engine restarted by administrator. In that case should recover the rebuild task on the engine, to simplify it now just abort and retry the global rebuild task. No such issue by the typical recover approach that restart the whole system including the PS leader. another backport commit - 947c76d DAOS-16175 container: fix a case for cont_iv_hdl_fetch (#15395) Skip-nlt: true Signed-off-by: Xuezhao Liu <[email protected]>
In special massive failure case - 1. some engines down and triggered rebuild. 2. one engine participated the rebuild, not finished yet, it down again, the #failures exceeds pool RF and will not change pool map. 3. That engine restarted by administrator. In that case should recover the rebuild task on the engine, to simplify it now just abort and retry the global rebuild task. No such issue by the typical recover approach that restart the whole system including the PS leader. another backport commit - 947c76d DAOS-16175 container: fix a case for cont_iv_hdl_fetch (#15395) Skip-nlt: true Signed-off-by: Xuezhao Liu <[email protected]>
In special massive failure case - 1. some engines down and triggered rebuild. 2. one engine participated the rebuild, not finished yet, it down again, the #failures exceeds pool RF and will not change pool map. 3. That engine restarted by administrator. In that case should recover the rebuild task on the engine, to simplify it now just abort and retry the global rebuild task. No such issue by the typical recover approach that restart the whole system including the PS leader. another backport commit - 947c76d DAOS-16175 container: fix a case for cont_iv_hdl_fetch (#15395) Signed-off-by: Xuezhao Liu <[email protected]>
In reintegrate case, ever hit case that the IC_CONT_CAPA cache is valid locally
but cont open handle invalid (not in dt_cont_hdl_hash).
For this case invalidate local IV cache first and retry again, to avoid in-flight
UPDATE's failure because obj_ioc_init() -> ds_cont_find_hdl() ->
cont_iv_hdl_fetch() failure -
DBUG src/engine/server_iv.c:409 ivc_on_fetch() FETCH: Key [1:7] entry 0x7fb31063b550 valid yes
DBUG src/engine/server_iv.c:1042 iv_op_internal() class_id 7 opc 1 rc 0
ERR src/object/srv_obj.c:2174 obj_ioc_begin_lite()
Failed to initialize object I/O context.: DER_NO_HDL(-1002): 'Invalid handle'
Before requesting gatekeeper:
Features:
(orTest-tag*
) commit pragma was used or there is a reason documented that there are no appropriate tags for this PR.Gatekeeper: