Skip to content
Snippets Groups Projects
Commit 1f5b2711 authored by Eric Cano's avatar Eric Cano
Browse files

Added support for zero-length file in tape write tasks.

We now leave a placeholder on the tape and carry on in this case. The errors will eventually clear the
archive request.
parent af568a7f
No related branches found
No related tags found
No related merge requests found
......@@ -135,6 +135,21 @@ namespace daemon {
++memBlockId;
}
// If, after the FIFO is finished, we are still in the first block, we are in the presence of a 0-length file.
// This also requires a placeholder.
if (firstBlock) {
currentErrorToCount = "Error_tapeWriteData";
const char blank[]="This file intentionally left blank: zero-length file cannot be recorded to tape.";
output->write(blank, sizeof(blank));
m_taskStats.readWriteTime += timer.secs(cta::utils::Timer::resetCounter);
watchdog.notify(sizeof(blank));
currentErrorToCount = "Error_tapeWriteTrailer";
output->close();
currentErrorToCount = "";
// Possibly failing writes are finished. We can continue this in catch for skip. outside of the loop.
throw Skip("In TapeWriteTask::execute(): inserted a placeholder for zero length file.");
}
//finish the writing of the file on tape
//put the trailer
currentErrorToCount = "Error_tapeWriteTrailer";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment