fix(cos): use EIO as failed code

This commit is contained in:
Minglei Jin 2023-09-25 18:38:55 +08:00
parent 5941d75849
commit 7fd7902dda
3 changed files with 10 additions and 4 deletions

View File

@ -3061,7 +3061,7 @@ static int32_t tsdbCacheLoadBlockS3(STsdbFD *pFD, uint8_t **ppBlock) {
code = s3GetObjectBlock(pFD->objName, block_offset, tsS3BlockSize * pFD->szPage, ppBlock); code = s3GetObjectBlock(pFD->objName, block_offset, tsS3BlockSize * pFD->szPage, ppBlock);
if (code != TSDB_CODE_SUCCESS) { if (code != TSDB_CODE_SUCCESS) {
// taosMemoryFree(pBlock); // taosMemoryFree(pBlock);
code = TSDB_CODE_OUT_OF_MEMORY; // code = TSDB_CODE_OUT_OF_MEMORY;
return code; return code;
} }
@ -3100,7 +3100,10 @@ int32_t tsdbCacheGetBlockS3(SLRUCache *pCache, STsdbFD *pFD, LRUHandle **handle)
taosThreadMutexUnlock(&pTsdb->bMutex); taosThreadMutexUnlock(&pTsdb->bMutex);
*handle = NULL; *handle = NULL;
return 0; if (!pBlock) {
code = TSDB_CODE_OUT_OF_MEMORY;
}
return code;
} }
size_t charge = tsS3BlockSize * pFD->szPage; size_t charge = tsS3BlockSize * pFD->szPage;

View File

@ -175,6 +175,9 @@ static int32_t tsdbReadFilePage(STsdbFD *pFD, int64_t pgno) {
int32_t code = tsdbCacheGetBlockS3(pFD->pTsdb->bCache, pFD, &handle); int32_t code = tsdbCacheGetBlockS3(pFD->pTsdb->bCache, pFD, &handle);
if (code != TSDB_CODE_SUCCESS || handle == NULL) { if (code != TSDB_CODE_SUCCESS || handle == NULL) {
tsdbBCacheRelease(pFD->pTsdb->bCache, handle); tsdbBCacheRelease(pFD->pTsdb->bCache, handle);
if (!handle) {
code = TSDB_CODE_OUT_OF_MEMORY;
}
goto _exit; goto _exit;
} }

View File

@ -301,14 +301,14 @@ int32_t s3GetObjectBlock(const char *object_name, int64_t offset, int64_t block_
apr_table_add(headers, COS_RANGE, range_buf); apr_table_add(headers, COS_RANGE, range_buf);
s = cos_get_object_to_buffer(options, &bucket, &object, headers, NULL, &download_buffer, &resp_headers); s = cos_get_object_to_buffer(options, &bucket, &object, headers, NULL, &download_buffer, &resp_headers);
log_status(s);
if (!cos_status_is_ok(s)) { if (!cos_status_is_ok(s)) {
vError("s3: %s", s->error_msg); vError("s3: %s", s->error_msg);
vError("%s failed at line %d since %s", __func__, __LINE__, tstrerror(terrno)); vError("%s failed at line %d since %s", __func__, __LINE__, tstrerror(terrno));
code = terrno; code = TAOS_SYSTEM_ERROR(EIO);
return code; return code;
} }
log_status(s);
// print_headers(resp_headers); // print_headers(resp_headers);
int64_t len = 0; int64_t len = 0;
int64_t size = 0; int64_t size = 0;