diff --git a/src/storage/tx/ob_dup_table_util.cpp b/src/storage/tx/ob_dup_table_util.cpp index 912db99f8b..1141d5d59c 100644 --- a/src/storage/tx/ob_dup_table_util.cpp +++ b/src/storage/tx/ob_dup_table_util.cpp @@ -881,6 +881,8 @@ int ObDupTableLSHandler::check_dup_tablet_readable(const ObTabletID &tablet_id, || OB_FAIL(log_handler_->get_max_decided_scn(tmp_max_replayed_scn)))) { DUP_TABLE_LOG(WARN, "get max replayed scn for dup table read failed", K(ret), K(ls_id_), K(tablet_id), K(read_snapshot), KP(log_handler_), K(tmp_max_replayed_scn)); + // rewrite ret code when get max replayed scn failed to drive retry + ret = OB_NOT_MASTER; } else if (OB_FAIL(check_and_update_max_replayed_scn(max_replayed_scn))) { DUP_TABLE_LOG(WARN, "invalid max_replayed_scn", K(ret), K(tablet_id), K(read_snapshot), K(read_from_leader)); diff --git a/src/storage/tx/ob_trans_service_v4.cpp b/src/storage/tx/ob_trans_service_v4.cpp index e17ecf6b82..7ed0ec1caa 100644 --- a/src/storage/tx/ob_trans_service_v4.cpp +++ b/src/storage/tx/ob_trans_service_v4.cpp @@ -1375,6 +1375,8 @@ int ObTransService::check_replica_readable_(const SCN &snapshot, ret = OB_REPLICA_NOT_READABLE; } else if (OB_FAIL(ls.get_max_decided_scn(max_replayed_scn))) { TRANS_LOG(WARN, "get max decided scn failed", K(ret)); + // rewrite ret code when get max decided scn failed + ret = OB_NOT_MASTER; } else if (OB_FAIL(ls.get_tx_svr()->get_tx_ls_log_adapter()->check_dup_tablet_readable( tablet_id, snapshot,