Skip to content

Commit d7e7e15

Browse files
committed
Restore propagation of CCDB download failure error
So that the end user (BasicCCDBManager or DPL CCDBHelper) can decide further steps.
1 parent fe69393 commit d7e7e15

3 files changed

Lines changed: 9 additions & 16 deletions

File tree

CCDB/include/CCDB/CCDBDownloader.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ typedef struct DownloaderRequestData {
5454
std::string userAgent;
5555

5656
std::function<bool(std::string)> localContentCallback;
57-
bool errorflag = false;
5857
} DownloaderRequestData;
5958
#endif
6059

CCDB/src/CCDBDownloader.cxx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -476,23 +476,17 @@ void CCDBDownloader::transferFinished(CURL* easy_handle, CURLcode curlCode)
476476
} break;
477477
case ASYNCHRONOUS: {
478478
DownloaderRequestData* requestData = performData->requestData;
479-
480479
if (requestData->headers) {
481480
for (auto& p : requestData->hoPair.header) {
482481
(*requestData->headers)[p.first] = p.second;
483482
}
484483
}
485-
if (requestData->errorflag && requestData->headers) {
486-
(*requestData->headers)["Error"] = "An error occurred during retrieval";
487-
}
488-
489484
// Log that transfer finished
490485
long httpCode;
491486
curl_easy_getinfo(easy_handle, CURLINFO_RESPONSE_CODE, &httpCode);
492487
char* url;
493488
curl_easy_getinfo(easy_handle, CURLINFO_EFFECTIVE_URL, &url);
494489
LOG(debug) << "Transfer for " << url << " finished with code " << httpCode << "\n";
495-
496490
std::string currentHost = requestData->hosts[performData->hostInd];
497491
std::string loggingMessage = prepareLogMessage(currentHost, requestData->userAgent, requestData->path, requestData->timestamp, requestData->headers, httpCode);
498492

@@ -527,12 +521,18 @@ void CCDBDownloader::transferFinished(CURL* easy_handle, CURLcode curlCode)
527521

528522
if (!rescheduled) {
529523
// No more transfers will be done for this request, do cleanup specific for ASYNCHRONOUS calls
530-
--(*performData->requestsLeft);
531-
delete requestData;
532-
delete performData->codeDestination;
533524
if (!contentRetrieved) {
525+
if (requestData->hoPair.object) {
526+
requestData->hoPair.object->clear();
527+
}
528+
if (requestData->headers) {
529+
(*requestData->headers)["Error"] = "An error occurred during retrieval";
530+
}
534531
LOGP(alarm, "Curl request to {}, response code: {}", url, httpCode);
535532
}
533+
--(*performData->requestsLeft);
534+
delete requestData;
535+
delete performData->codeDestination;
536536
}
537537
} break;
538538
}

CCDB/src/CcdbApi.cxx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1490,12 +1490,6 @@ void CcdbApi::scheduleDownload(RequestContext& requestContext, size_t* requestCo
14901490
auto data = new DownloaderRequestData(); // Deleted in transferFinished of CCDBDownloader.cxx
14911491
data->hoPair.object = &requestContext.dest;
14921492

1493-
auto signalError = [&chunk = requestContext.dest, &errorflag = data->errorflag]() {
1494-
chunk.clear();
1495-
chunk.reserve(1);
1496-
errorflag = true;
1497-
};
1498-
14991493
std::function<bool(std::string)> localContentCallback = [this, &requestContext](std::string url) {
15001494
return this->loadLocalContentToMemory(requestContext.dest, url);
15011495
};

0 commit comments

Comments
 (0)