Problem with HDR1 in tape label

Hi All,

One for the tape nerds here.

We have a tape that the users can not get the data back from. When we run readtp on the tape we get -

Aug 21 14:43:43.941397636 getafix-ts04.scd.rl.ac.uk cta-readtp: LVL=“ERROR” PID=“3689652” TID=“3689652” MSG=“Failed to read file from tape” userName=“root” tapeVid=“TD0801” destinationFile=“file:///dev/null” tapeDrive=“obelix_ts1160_04” logicalLibrary=“obelix_ts” useLbp=“true” driveSupportLbp=“true” fSeq=“5” tapeReadError=“[HeaderChecker::checkHDR1] - Invalid fileid detected: (0x)'100064B62 '. Wanted: 0x1048c62d0”
Aug 21 14:43:44.026863465 getafix-ts04.scd.rl.ac.uk cta-readtp: LVL=“INFO” PID=“3689652” TID=“3689652” MSG=“Reading file from tape” userName=“root” tapeVid=“TD0801” fSeq=“6” tapeDrive=“obelix_ts1160_04” logicalLibrary=“obelix_ts” useLbp=“true” driveSupportLbp=“true” destinationURL=“file:///dev/null”
Aug 21 14:43:44.057097080 getafix-ts04.scd.rl.ac.uk cta-readtp: LVL=“ERROR” PID=“3689652” TID=“3689652” MSG=“Failed to read file from tape” userName=“root” tapeVid=“TD0801” destinationFile=“file:///dev/null” tapeDrive=“obelix_ts1160_04” logicalLibrary=“obelix_ts” useLbp=“true” driveSupportLbp=“true” fSeq=“6” tapeReadError=“[HeaderChecker::checkHDR1] - Invalid fileid detected: (0x)'100064B64 '. Wanted: 0x1048c62d1”
Aug 21 14:43:44.148541199 getafix-ts04.scd.rl.ac.uk cta-readtp: LVL=“INFO” PID=“3689652” TID=“3689652” MSG=“Reading file from tape” userName=“root” tapeVid=“TD0801” fSeq=“7” tapeDrive=“obelix_ts1160_04” logicalLibrary=“obelix_ts” useLbp=“true” driveSupportLbp=“true” destinationURL=“file:///dev/null”
Aug 21 14:43:44.180016077 getafix-ts04.scd.rl.ac.uk cta-readtp: LVL=“ERROR” PID=“3689652” TID=“3689652” MSG=“Failed to read file from tape” userName=“root” tapeVid=“TD0801” destinationFile=“file:///dev/null” tapeDrive=“obelix_ts1160_04” logicalLibrary=“obelix_ts” useLbp=“true” driveSupportLbp=“true” fSeq=“7” tapeReadError=“[HeaderChecker::checkHDR1] - Invalid fileid detected: (0x)'100064B7E '. Wanted: 0x1048c62d2”
Aug 21 14:43:44.274137253 getafix-ts04.scd.rl.ac.uk cta-readtp: LVL=“INFO” PID=“3689652” TID=“3689652” MSG=“Reading file from tape” userName=“root” tapeVid=“TD0801” fSeq=“8” tapeDrive=“obelix_ts1160_04” logicalLibrary=“obelix_ts” useLbp=“true” driveSupportLbp=“true” destinationURL=“file:///dev/null”

CTA thinks the first files are -

[root@cta-ts01 ~]# ca tf ls -v TD0801 | head
archive id copy no vid fseq block id disk buffer disk fxid size checksum type checksum value storage class owner group creation time instance
4371276496 1 TD0801 5 71114 eosantaresfac 208701856 5.4G ADLER32 f7c43292 diamond_i04 701 701 2025-07-10 15:33 antares
4371276497 1 TD0801 6 91821 eosantaresfac 208701857 5.3G ADLER32 f027d420 diamond_i04 701 701 2025-07-10 15:33 antares
4371276498 1 TD0801 7 112072 eosantaresfac 208701861 5.4G ADLER32 fe65555d diamond_i04 701 701 2025-07-10 15:33 antares
4371276539 1 TD0801 8 132809 eosantaresfac 208701947 5.2G ADLER32 25016ed4 diamond_i04 701 701 2025-07-10 15:35 antares
4371276538 1 TD0801 9 152572 eosantaresfac 208701946 9.6G ADLER32 8eeea93b diamond_i04 701 701 2025-07-10 15:35 antares
4371276541 1 TD0801 10 189128 eosantaresfac 208701952 5.4G ADLER32 a0a280ee diamond_i04 701 701 2025-07-10 15:35 antares
4371276549 1 TD0801 11 209645 eosantaresfac 208701985 5.1G ADLER32 7183c3b7 diamond_i04 701 701 2025-07-10 15:35 antares
4365727086 1 TD0801 12 229256 eosantaresfac 207509473 6.6G ADLER32 fa45ae50 diamond_i04 701 701 2025-04-05 05:31 antares
4365743963 1 TD0801 13 254255 eosantaresfac 207514032 957.2M ADLER32 66d9efae diamond_i04 701 701 2025-04-07 09:45 antares

If I dd the files off the tape, then I get 9 data files before I get I/O errors. Running

for i in {1..40}; do dd if=/dev/ts1160_0 of=/tmp/TD0801.$i bs=256k; done

gives -

[root@getafix-ts04 ~]# ls -ltr /tmp/TD0801*
-rw-r–r-- 1 root root 320 Aug 21 15:21 /tmp/TD0801.1
-rw-r–r-- 1 root root 6418989545 Aug 21 15:21 /tmp/TD0801.2
-rw-r–r-- 1 root root 240 Aug 21 15:21 /tmp/TD0801.3
-rw-r–r-- 1 root root 240 Aug 21 15:21 /tmp/TD0801.4
-rw-r–r-- 1 root root 5557026717 Aug 21 15:22 /tmp/TD0801.5
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.6
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.7
-rw-r–r-- 1 root root 1596145461 Aug 21 15:22 /tmp/TD0801.8
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.9
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.10
-rw-r–r-- 1 root root 5059786832 Aug 21 15:22 /tmp/TD0801.11
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.12
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.13
-rw-r–r-- 1 root root 33748298 Aug 21 15:22 /tmp/TD0801.14
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.15
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.16
-rw-r–r-- 1 root root 657719 Aug 21 15:22 /tmp/TD0801.17
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.18
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.19
-rw-r–r-- 1 root root 1477111 Aug 21 15:22 /tmp/TD0801.20
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.21
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.22
-rw-r–r-- 1 root root 6887810672 Aug 21 15:22 /tmp/TD0801.23
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.24
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.25
-rw-r–r-- 1 root root 2771632175 Aug 21 15:22 /tmp/TD0801.26
-rw-r–r-- 1 root root 240 Aug 21 15:22 /tmp/TD0801.27
-rw-r–r-- 1 root root 0 Aug 21 15:22 /tmp/TD0801.28
-rw-r–r-- 1 root root 0 Aug 21 15:22 /tmp/TD0801.29
-rw-r–r-- 1 root root 0 Aug 21 15:22 /tmp/TD0801.30
-rw-r–r-- 1 root root 0 Aug 21 15:22 /tmp/TD0801.31
-rw-r–r-- 1 root root 0 Aug 21 15:22 /tmp/TD0801.32
-rw-r–r-- 1 root root 0 Aug 21 15:22 /tmp/TD0801.33
-rw-r–r-- 1 root root 0 Aug 21 15:22 /tmp/TD0801.34
-rw-r–r-- 1 root root 0 Aug 21 15:22 /tmp/TD0801.35
-rw-r–r-- 1 root root 0 Aug 21 15:22 /tmp/TD0801.36
-rw-r–r-- 1 root root 0 Aug 21 15:22 /tmp/TD0801.37
-rw-r–r-- 1 root root 0 Aug 21 15:22 /tmp/TD0801.38
-rw-r–r-- 1 root root 0 Aug 21 15:22 /tmp/TD0801.39
-rw-r–r-- 1 root root 0 Aug 21 15:22 /tmp/TD0801.40

Anyone any ideas how the tape can be so out of step with CTA? Hardware issue or a software issue?

Tim

Hi Tim,

Apologies for the delay, I started to write a reply to you while I was away from CERN, but then got distracted.

The fact that you get some files with dd before you get I/O errors looks reasonable to me. These are files1-4 which are probably deleted from the CTA catalogue, but still present on tape.

As for the other files until you get to the I/O errors, did you try to calculate the Adler32 checksum (/usr/bin/xrdadler32) and compare them with what is in the CTA catalogue?

When there is a serious I/O error on a cartridge, it can span multiple files, hence completely messing up with the positioning with respect to the fSeqs in the CTA catalogue.

Please let us know where you are with this. Best regards,

Vladimir