diff --git a/castor/job/stagerjob/StagerJob.cpp b/castor/job/stagerjob/StagerJob.cpp index b252c761344220c0a6754f9326beaa855c4ddcc4..5476e0fd36d0e1a08b6907faef1948fc06d5f0cb 100644 --- a/castor/job/stagerjob/StagerJob.cpp +++ b/castor/job/stagerjob/StagerJob.cpp @@ -669,36 +669,39 @@ int main(int argc, char** argv) { // "manually" catch the NoValue exception // Nothing to be done in such a case, an error was already logged // and the error service will answer automatically to the client - } else if (e.code() == ESTREQCANCELED) { - // "manually" catch the RequestCanceled exception these are converted - // to regular Exception objects by the internal remote procedure call - // mechanism - castor::dlf::Param params[] = - {castor::dlf::Param(arguments->subRequestUuid), - castor::dlf::Param("Message", e.getMessage().str())}; - castor::dlf::dlf_writep - (arguments->requestUuid, DLF_LVL_SYSTEM, - castor::job::stagerjob::REQCANCELED, 2, params, &arguments->fileId); } else { - // "Job failed" - castor::dlf::Param params[] = - {castor::dlf::Param("Error", sstrerror(e.code())), - castor::dlf::Param("Message", e.getMessage().str()), - castor::dlf::Param(arguments->subRequestUuid)}; - // A priori, we log an error - int loglevel = DLF_LVL_ERROR; - // But in some cases, it's actually a use error - if (e.code() == ECONNREFUSED || // in case we can not connect to the client - e.code() == SETIMEDOUT || // in case the client never answered - e.code() == EHOSTUNREACH || // the client is not visible - e.code() == SENOVALUE || // no data was transfered - e.code() == SECHECKSUM || // bad checksum - e.code() == ENOENT) { // file was removed while being modified - loglevel = DLF_LVL_USER_ERROR; + if (e.code() == ESTREQCANCELED) { + // "manually" catch the RequestCanceled exception these are converted + // to regular Exception objects by the internal remote procedure call + // mechanism + castor::dlf::Param params[] = + {castor::dlf::Param(arguments->subRequestUuid), + castor::dlf::Param("Message", e.getMessage().str())}; + // "Request canceled" + castor::dlf::dlf_writep + (arguments->requestUuid, DLF_LVL_SYSTEM, + castor::job::stagerjob::REQCANCELED, 2, params, &arguments->fileId); + } else { + // "Job failed" + castor::dlf::Param params[] = + {castor::dlf::Param("Error", sstrerror(e.code())), + castor::dlf::Param("Message", e.getMessage().str()), + castor::dlf::Param(arguments->subRequestUuid)}; + // A priori, we log an error + int loglevel = DLF_LVL_ERROR; + // But in some cases, it's actually a use error + if (e.code() == ECONNREFUSED || // in case we can not connect to the client + e.code() == SETIMEDOUT || // in case the client never answered + e.code() == EHOSTUNREACH || // the client is not visible + e.code() == SENOVALUE || // no data was transfered + e.code() == SECHECKSUM || // bad checksum + e.code() == ENOENT) { // file was removed while being modified + loglevel = DLF_LVL_USER_ERROR; + } + castor::dlf::dlf_writep + (arguments->requestUuid, loglevel, + castor::job::stagerjob::JOBFAILED, 3, params, &arguments->fileId); } - castor::dlf::dlf_writep - (arguments->requestUuid, loglevel, - castor::job::stagerjob::JOBFAILED, 3, params, &arguments->fileId); // Try to answer the client try { castor::rh::IOResponse ioResponse;