Skip to content

Equivalent of IBM Spectrum Archive SDE 2.4.1.0 (10219)

Compare
Choose a tag to compare
@piste-jp piste-jp released this 29 Nov 07:27
· 245 commits to master since this release
b1ec9c6

IBM released IBM Spectrum Archive 2.4.1.0 (10219) at fd4bbe7. So the LTFS project releases new version 2.4.1.0.

!! WARNING !!

This version is corrupted.

The percent encoder for the LTFS index is corrupted. This corruption creates an unparsable LTFS index on the tape. An index corruption happens when following 2 conditions are met.

  1. File name or directory name has ':' (0x3A) or C0 control codes (0x01-0x1f) except \t(0x09), \n(0x0A) and \r(0x0d) at least (Let's call a percent encode trigger)
  2. File name or directory name has '%' (0x25)

That's because the percent encoder modified into 2.4.0.1 is incomplete and it doesn't encode '%' at all. In other words, '%' shall be encoded to "%25" be the percent encoder but '%' remains as '%' in the 2.4.0.1 encoder.

Corruption Variations

0-0. No percent encode triggers in the all filenames and directories on a tape

There is no corruption

0-1. There is percent triggers but no '%' in the all filenames and directories on a tape

There is no corruption

1. There is percent triggers and '%XX' which can be decoded to correct ASCII characters expect '/' or UNIT SEPARATOR

The index is corrupted but LTFS can mount the tape. Some file name or directory name may be modified automatically.

For example, file "aaa:%20" is written and unmount the tape. After that the tape is mounted, the file name may be "aaa: " instead of "aaa:%20"

The same thing happens "%XX%XX%XX" sequence is valid UTF-8 characters.

2. There is percent triggers and '%1f' or '%2f'

'%2f' is encoded to '%2f', so '%2f' is decoded to '/'. And '%2f' is encoded to '%2f', so '%2f' is decoded to a UNIT SEPARATOR.

Both '/' and UNIT SEPARATOR is invalid character for file name and directory name. As a result, the index reader detects an error on fine name or directory name.

In the recovery, the indices which has an invalid character is skipped. As a result, LTFS rolls back to the latest good index. In this time, LTFS overwrites the data or the indices after latest good index. So data loss may happen.

3. There is percent triggers and '%XX%XX%XX' which can'y be decoded to correct UTF-8 characters

Invalid UTF-8 character is not valid for file name or directory name. So same thing on case 2 above, mount failure and data loss at recovery, happens.

Original descriptions

Change Log:

  • Supported TS1160 tape drive