Skip to content

Review tape session error codes

CTA uses reportEndOfSessionWithErrors to report error code if the data transfer session fails. We use it in two places:

  1. In DiskWriteThreadPool (L182) we always return code 666.

  2. In TapeWriteSingleThread (L517) we return either 666 or ENOSPC (end of tape / no space left on device, defined in /usr/include/asm-generic/errno-base.h)

As a result, the majority of failed sessions get meaningless code 666.

We should review this code system: do not report codes at all or extend it to report more error cases.

We should also consider using it in TapeReadSingleThread and this should be a part of the bigger task: session termination (end of run() method) should look similar in TapeReadSingleThread and TapeWriteSingleThread.