fix check oss permission
This commit is contained in:
parent
cd043fb8d0
commit
51fa5ba077
@ -179,7 +179,7 @@ int ObBackupConnectivityCheckManager::set_connectivity_check_path_(
|
||||
} else if (OB_FAIL(ObBackupStorageInfoOperator::get_check_file_name(
|
||||
*sql_proxy_, tenant_id_, backup_dest, check_file_name))) {
|
||||
LOG_WARN("failed to get check file name", K(ret), K_(tenant_id));
|
||||
} else if (OB_FAIL(path.join(check_file_name, ObBackupFileSuffix::BACKUP))) {
|
||||
} else if (OB_FAIL(path.join(check_file_name, ObBackupFileSuffix::NONE))) { // check_file_name already include suffix
|
||||
LOG_WARN("failed to join check file name", K(ret), K_(tenant_id));
|
||||
}
|
||||
return ret;
|
||||
@ -275,7 +275,7 @@ int ObBackupCheckFile::set_connectivity_check_name_()
|
||||
} else if (OB_FAIL(backup_time_to_strftime(check_time_s, buff, sizeof(buff), pos, 'T'/* concat */))) {
|
||||
LOG_WARN("failed to convert time", K(ret));
|
||||
} else if (OB_FAIL(databuff_printf(connectivity_file_name_, sizeof(connectivity_file_name_),
|
||||
"%lu_%s_%s_%s", tenant_id_, "connect", "file", buff))) {
|
||||
"%lu_%s_%s_%s%s", tenant_id_, "connect", "file", buff, OB_BACKUP_SUFFIX))) {
|
||||
LOG_WARN("failed to set connectivity file name", K(ret));
|
||||
}
|
||||
return ret;
|
||||
@ -411,7 +411,7 @@ int ObBackupCheckFile::create_connectivity_check_file(
|
||||
} else if (false == is_match) {
|
||||
if (OB_FAIL(set_connectivity_check_name_())) {
|
||||
LOG_WARN("failed to set check file name", K(ret), K_(tenant_id));
|
||||
} else if (OB_FAIL(path.join(connectivity_file_name_, ObBackupFileSuffix::BACKUP))) {
|
||||
} else if (OB_FAIL(path.join(connectivity_file_name_, ObBackupFileSuffix::NONE))) { // connectivity_file_name_ already include suffix
|
||||
LOG_WARN("failed to join connectivity file name", K(ret), K_(tenant_id));
|
||||
} else if (OB_FAIL(generate_format_desc_(backup_dest, check_desc))) {
|
||||
LOG_WARN("failed to set buffer", K(ret), K_(tenant_id));
|
||||
@ -479,11 +479,13 @@ int ObBackupCheckFile::delete_permission_check_file(const ObBackupDest &backup_d
|
||||
|
||||
int ObBackupCheckFile::get_permission_check_file_path_(
|
||||
const ObBackupDest &backup_dest,
|
||||
bool is_appender,
|
||||
share::ObBackupPath &path)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
int64_t check_time_s = ObTimeUtility::current_time() / 1000/ 1000;
|
||||
char buff[OB_BACKUP_MAX_TIME_STR_LEN] = { 0 };
|
||||
const char *prefix = is_appender ? "append" : "put";
|
||||
int64_t pos = 0;
|
||||
if (!is_inited_) {
|
||||
ret = OB_NOT_INIT;
|
||||
@ -493,9 +495,9 @@ int ObBackupCheckFile::get_permission_check_file_path_(
|
||||
} else if (OB_FAIL(backup_time_to_strftime(check_time_s, buff, sizeof(buff), pos, 'T'/* concat */))) {
|
||||
LOG_WARN("failed to convert time", K(ret), K(backup_dest));
|
||||
} else if (OB_FAIL(databuff_printf(permission_file_name_, sizeof(permission_file_name_),
|
||||
"%lu_%s_%s_%s", tenant_id_, "permission", "file", buff))) {
|
||||
LOG_WARN("failed to set permission file name", K(ret));
|
||||
} else if (OB_FAIL(path.join(permission_file_name_, ObBackupFileSuffix::BACKUP))) {
|
||||
"%lu_%s_%s_%s_%s%s", tenant_id_, prefix, "permission", "file", buff, OB_BACKUP_SUFFIX))) {
|
||||
LOG_WARN("failed to set permission file name", K(ret), K(buff));
|
||||
} else if (OB_FAIL(path.join(permission_file_name_, ObBackupFileSuffix::NONE))) { // permission_file_name_ already include suffix
|
||||
LOG_WARN("failed to join permission file name", K(ret), K_(permission_file_name));
|
||||
}
|
||||
return ret;
|
||||
@ -523,9 +525,9 @@ int ObBackupCheckFile::check_appender_permission_(const ObBackupDest &backup_des
|
||||
if (!is_inited_) {
|
||||
ret = OB_NOT_INIT;
|
||||
LOG_WARN("backup check file not init", K(ret));
|
||||
} else if (OB_FAIL(get_permission_check_file_path_(backup_dest, path))) {
|
||||
} else if (OB_FAIL(get_permission_check_file_path_(backup_dest, true/*is_appender*/, path))) {
|
||||
LOG_WARN("failed to get permission check file path", K(ret), K_(tenant_id), K(backup_dest));
|
||||
} else if (OB_FAIL(util.set_access_type(&iod_opts, true, DEFAULT_OPT_ARG_NUM))) {
|
||||
} else if (OB_FAIL(util.set_access_type(&iod_opts, true/*is_appender*/, DEFAULT_OPT_ARG_NUM))) {
|
||||
LOG_WARN("fail to set access type");
|
||||
} else if (OB_FAIL(util.set_append_strategy(&iod_opts, is_data_file, epoch, DEFAULT_OPT_ARG_NUM))) {
|
||||
LOG_WARN("fail to set append strategy");
|
||||
@ -581,7 +583,7 @@ int ObBackupCheckFile::check_io_permission(const ObBackupDest &backup_dest)
|
||||
} else if (!backup_dest.is_valid()) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("backup dest is valid", K(ret), K_(tenant_id));
|
||||
} else if (OB_FAIL(get_permission_check_file_path_(backup_dest, path))) {
|
||||
} else if (OB_FAIL(get_permission_check_file_path_(backup_dest, false/*is_appender*/, path))) {
|
||||
LOG_WARN("failed to get permission check file path", K(ret), K_(tenant_id));
|
||||
} else if (OB_FAIL(generate_format_desc_(backup_dest, check_desc))) {
|
||||
LOG_WARN("failed to set buffer", K(ret), K_(tenant_id));
|
||||
@ -612,15 +614,7 @@ int ObBackupCheckFile::check_io_permission(const ObBackupDest &backup_dest)
|
||||
ret = OB_BACKUP_PERMISSION_DENIED;
|
||||
}
|
||||
LOG_WARN("failed to read single file", K(ret));
|
||||
} else if (OB_FAIL(check_appender_permission_(backup_dest))){
|
||||
if (is_permission_error_(ret)) {
|
||||
ROOTSERVICE_EVENT_ADD("connectivity_check", "permission check",
|
||||
"tenant_id", tenant_id_, "error_code", ret, "comment", "appender write");
|
||||
ret = OB_BACKUP_PERMISSION_DENIED;
|
||||
}
|
||||
LOG_WARN("failed to appender permission", K(ret));
|
||||
}
|
||||
|
||||
if (write_ok && (OB_SUCCESS != (tmp_ret = util.del_file(path.get_obstr(), backup_dest.get_storage_info())))) {
|
||||
if (is_permission_error_(tmp_ret)) {
|
||||
ROOTSERVICE_EVENT_ADD("connectivity_check", "permission check",
|
||||
@ -630,6 +624,15 @@ int ObBackupCheckFile::check_io_permission(const ObBackupDest &backup_dest)
|
||||
ret = (OB_SUCCESS == ret) ? tmp_ret : ret;
|
||||
LOG_WARN("failed to del file", K(tmp_ret), K(ret), K(path), K(backup_dest));
|
||||
}
|
||||
if (OB_FAIL(ret)) {
|
||||
} else if (OB_FAIL(check_appender_permission_(backup_dest))){
|
||||
if (is_permission_error_(ret)) {
|
||||
ROOTSERVICE_EVENT_ADD("connectivity_check", "permission check",
|
||||
"tenant_id", tenant_id_, "error_code", ret, "comment", "appender write");
|
||||
ret = OB_BACKUP_PERMISSION_DENIED;
|
||||
}
|
||||
LOG_WARN("failed to appender permission", K(ret));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -68,6 +68,7 @@ public:
|
||||
private:
|
||||
int get_permission_check_file_path_(
|
||||
const share::ObBackupDest &backup_dest,
|
||||
bool is_appender,
|
||||
share::ObBackupPath &path);
|
||||
int check_appender_permission_(const share::ObBackupDest &backup_dest);
|
||||
int set_connectivity_check_name_();
|
||||
|
Loading…
x
Reference in New Issue
Block a user