[CP] [BUGFIX] fix sys login
This commit is contained in:
@ -1407,14 +1407,25 @@ int ObMPConnect::get_tenant_id(ObSMConnection &conn, uint64_t &tenant_id)
|
|||||||
LOG_WARN("extract_tenant_id failed", K(ret), K_(tenant_name));
|
LOG_WARN("extract_tenant_id failed", K(ret), K_(tenant_name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (OB_SUCC(ret) && !is_sys_tenant(tenant_id)) {
|
if (OB_SUCC(ret)) {
|
||||||
if (is_meta_tenant(tenant_id)) {
|
if (is_meta_tenant(tenant_id)) {
|
||||||
ret = OB_NOT_SUPPORTED;
|
ret = OB_NOT_SUPPORTED;
|
||||||
LOG_WARN("can't login meta tenant", KR(ret), K_(tenant_name), K(tenant_id));
|
LOG_WARN("can't login meta tenant", KR(ret), K_(tenant_name), K(tenant_id));
|
||||||
LOG_USER_ERROR(OB_NOT_SUPPORTED, "login meta tenant");
|
LOG_USER_ERROR(OB_NOT_SUPPORTED, "login meta tenant");
|
||||||
|
} else if (OB_ISNULL(GCTX.schema_service_) || OB_ISNULL(GCTX.ob_service_)) {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
LOG_WARN("schema_service or ob_service is NULL", KR(ret), K(tenant_id));
|
||||||
} else if (!GCTX.schema_service_->is_tenant_refreshed(tenant_id)) {
|
} else if (!GCTX.schema_service_->is_tenant_refreshed(tenant_id)) {
|
||||||
ret = OB_SERVER_IS_INIT;
|
bool is_empty = false;
|
||||||
LOG_WARN("tenant schema not refreshed yet", KR(ret), K(tenant_id));
|
if (is_sys_tenant(tenant_id)
|
||||||
|
&& OB_FAIL(GCTX.ob_service_->check_server_empty(is_empty))) {
|
||||||
|
LOG_WARN("fail to check server is empty", KR(ret));
|
||||||
|
} else if (is_sys_tenant(tenant_id) && is_empty) {
|
||||||
|
//in bootstrap, we could use sys to login
|
||||||
|
} else {
|
||||||
|
ret = OB_SERVER_IS_INIT;
|
||||||
|
LOG_WARN("tenant schema not refreshed yet", KR(ret), K(tenant_id));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
@ -259,6 +259,7 @@ public:
|
|||||||
share::ObHBResponse &hb_response);
|
share::ObHBResponse &hb_response);
|
||||||
int ob_admin_unlock_member_list(
|
int ob_admin_unlock_member_list(
|
||||||
const obrpc::ObAdminUnlockMemberListOpArg &arg);
|
const obrpc::ObAdminUnlockMemberListOpArg &arg);
|
||||||
|
int check_server_empty(bool &server_empty);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int get_role_from_palf_(
|
int get_role_from_palf_(
|
||||||
@ -274,7 +275,6 @@ private:
|
|||||||
share::ObTabletReplicaChecksumItem &tablet_checksum,
|
share::ObTabletReplicaChecksumItem &tablet_checksum,
|
||||||
const bool need_checksum);
|
const bool need_checksum);
|
||||||
int register_self();
|
int register_self();
|
||||||
int check_server_empty(bool &server_empty);
|
|
||||||
|
|
||||||
int handle_server_freeze_req_(const obrpc::ObMinorFreezeArg &arg);
|
int handle_server_freeze_req_(const obrpc::ObMinorFreezeArg &arg);
|
||||||
int handle_tenant_freeze_req_(const obrpc::ObMinorFreezeArg &arg);
|
int handle_tenant_freeze_req_(const obrpc::ObMinorFreezeArg &arg);
|
||||||
|
|||||||
Reference in New Issue
Block a user