fix bug: qc_detectable_id is invalid when sqc register check item
This commit is contained in:
@ -17,6 +17,7 @@
|
|||||||
#include "sql/dtl/ob_dtl_interm_result_manager.h"
|
#include "sql/dtl/ob_dtl_interm_result_manager.h"
|
||||||
#include "sql/engine/px/ob_px_sqc_handler.h"
|
#include "sql/engine/px/ob_px_sqc_handler.h"
|
||||||
#include "sql/engine/px/p2p_datahub/ob_p2p_dh_msg.h"
|
#include "sql/engine/px/p2p_datahub/ob_p2p_dh_msg.h"
|
||||||
|
#include "sql/engine/px/ob_px_scheduler.h"
|
||||||
|
|
||||||
using namespace oceanbase::sql;
|
using namespace oceanbase::sql;
|
||||||
using namespace oceanbase::sql::dtl;
|
using namespace oceanbase::sql::dtl;
|
||||||
@ -37,11 +38,13 @@ void ObDetectManagerUtils::prepare_register_dm_info(common::ObRegisterDmInfo &re
|
|||||||
|
|
||||||
int ObDetectManagerUtils::qc_register_detectable_id_into_dm(ObDetectableId &detectable_id,
|
int ObDetectManagerUtils::qc_register_detectable_id_into_dm(ObDetectableId &detectable_id,
|
||||||
bool ®ister_detectable_id,
|
bool ®ister_detectable_id,
|
||||||
uint64_t tenant_id)
|
uint64_t tenant_id,
|
||||||
|
ObPxCoordInfo& coord_info)
|
||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
if (OB_FAIL(ObDetectManagerUtils::generate_detectable_id(detectable_id, tenant_id))) {
|
if (OB_FAIL(ObDetectManagerUtils::generate_detectable_id(detectable_id, tenant_id))) {
|
||||||
LIB_LOG(WARN, "[DM] failed to generate_detectable_id", K(tenant_id));
|
LIB_LOG(WARN, "[DM] failed to generate_detectable_id", K(tenant_id));
|
||||||
|
} else if (FALSE_IT(coord_info.qc_detectable_id_ = detectable_id)) {
|
||||||
} else {
|
} else {
|
||||||
ObDetectManager* dm = MTL(ObDetectManager*);
|
ObDetectManager* dm = MTL(ObDetectManager*);
|
||||||
if (OB_ISNULL(dm)) {
|
if (OB_ISNULL(dm)) {
|
||||||
|
|||||||
@ -19,6 +19,7 @@ namespace sql {
|
|||||||
class ObDfo;
|
class ObDfo;
|
||||||
class ObPxSqcHandler;
|
class ObPxSqcHandler;
|
||||||
class ObPxSqcMeta;
|
class ObPxSqcMeta;
|
||||||
|
class ObPxCoordInfo;
|
||||||
namespace dtl {
|
namespace dtl {
|
||||||
class ObDTLIntermResultKey;
|
class ObDTLIntermResultKey;
|
||||||
class ObDTLIntermResultInfo;
|
class ObDTLIntermResultInfo;
|
||||||
@ -39,7 +40,8 @@ public:
|
|||||||
static void prepare_register_dm_info(common::ObRegisterDmInfo ®ister_dm_info, sql::ObPxSqcHandler *handler);
|
static void prepare_register_dm_info(common::ObRegisterDmInfo ®ister_dm_info, sql::ObPxSqcHandler *handler);
|
||||||
|
|
||||||
static int qc_register_detectable_id_into_dm(common::ObDetectableId &detectable_id,
|
static int qc_register_detectable_id_into_dm(common::ObDetectableId &detectable_id,
|
||||||
bool ®ister_detectable_id, uint64_t tenant_id);
|
bool ®ister_detectable_id, uint64_t tenant_id,
|
||||||
|
sql::ObPxCoordInfo& coord_info);
|
||||||
static void qc_unregister_detectable_id_from_dm(const common::ObDetectableId &detectable_id,
|
static void qc_unregister_detectable_id_from_dm(const common::ObDetectableId &detectable_id,
|
||||||
bool ®ister_detectable_id);
|
bool ®ister_detectable_id);
|
||||||
static int qc_register_check_item_into_dm(sql::ObDfo &dfo,
|
static int qc_register_check_item_into_dm(sql::ObDfo &dfo,
|
||||||
|
|||||||
@ -266,7 +266,8 @@ int ObPxCoordOp::rescan()
|
|||||||
} else if (OB_FAIL(register_interrupt())) {
|
} else if (OB_FAIL(register_interrupt())) {
|
||||||
LOG_WARN("fail to register interrupt", K(ret));
|
LOG_WARN("fail to register interrupt", K(ret));
|
||||||
} else if (OB_NOT_NULL(get_spec().get_phy_plan()) && get_spec().get_phy_plan()->is_enable_px_fast_reclaim()
|
} else if (OB_NOT_NULL(get_spec().get_phy_plan()) && get_spec().get_phy_plan()->is_enable_px_fast_reclaim()
|
||||||
&& OB_FAIL(ObDetectManagerUtils::qc_register_detectable_id_into_dm(detectable_id_, register_detectable_id_, GET_TENANT_ID()))) {
|
&& OB_FAIL(ObDetectManagerUtils::qc_register_detectable_id_into_dm(detectable_id_, register_detectable_id_,
|
||||||
|
GET_TENANT_ID(), coord_info_))) {
|
||||||
LOG_WARN("fail to register detectable_id", K(ret));
|
LOG_WARN("fail to register detectable_id", K(ret));
|
||||||
} else if (OB_FAIL(init_dfo_mgr(
|
} else if (OB_FAIL(init_dfo_mgr(
|
||||||
ObDfoInterruptIdGen(interrupt_id_,
|
ObDfoInterruptIdGen(interrupt_id_,
|
||||||
@ -363,7 +364,8 @@ int ObPxCoordOp::inner_open()
|
|||||||
} else if (OB_FAIL(register_interrupt())) {
|
} else if (OB_FAIL(register_interrupt())) {
|
||||||
LOG_WARN("fail to register interrupt", K(ret));
|
LOG_WARN("fail to register interrupt", K(ret));
|
||||||
} else if (OB_NOT_NULL(get_spec().get_phy_plan()) && get_spec().get_phy_plan()->is_enable_px_fast_reclaim()
|
} else if (OB_NOT_NULL(get_spec().get_phy_plan()) && get_spec().get_phy_plan()->is_enable_px_fast_reclaim()
|
||||||
&& OB_FAIL(ObDetectManagerUtils::qc_register_detectable_id_into_dm(detectable_id_, register_detectable_id_, GET_TENANT_ID()))) {
|
&& OB_FAIL(ObDetectManagerUtils::qc_register_detectable_id_into_dm(detectable_id_, register_detectable_id_,
|
||||||
|
GET_TENANT_ID(), coord_info_))) {
|
||||||
LOG_WARN("fail to register detectable_id", K(ret));
|
LOG_WARN("fail to register detectable_id", K(ret));
|
||||||
} else if (OB_FAIL(init_dfo_mgr(
|
} else if (OB_FAIL(init_dfo_mgr(
|
||||||
ObDfoInterruptIdGen(interrupt_id_,
|
ObDfoInterruptIdGen(interrupt_id_,
|
||||||
|
|||||||
Reference in New Issue
Block a user