RFC Errata
Found 5 records.
Status: Verified (3)
RFC 8878, "Zstandard Compression and the 'application/zstd' Media Type", February 2021
Source of RFC: IETF - NON WORKING GROUP
Errata ID: 6441
Status: Verified
Type: Technical
Publication Format(s) : TEXT, PDF, HTML
Reported By: Felix Handte
Date Reported: 2021-02-25
Verifier Name: Barry Leiba
Date Verified: 2021-03-08
Section Appendix A says:
A.1. Literals Length Code Table +=======+========+================+======+ | State | Symbol | Number_Of_Bits | Base | +=======+========+================+======+ | 0 | 0 | 0 | 0 | +-------+--------+----------------+------+ | 0 | 0 | 4 | 0 | +-------+--------+----------------+------+ [...] A.2. Match Length Code Table +=======+========+================+======+ | State | Symbol | Number_Of_Bits | Base | +=======+========+================+======+ | 0 | 0 | 0 | 0 | +-------+--------+----------------+------+ | 0 | 0 | 6 | 0 | +-------+--------+----------------+------+ [...] A.3. Offset Code Table +=======+========+================+======+ | State | Symbol | Number_Of_Bits | Base | +=======+========+================+======+ | 0 | 0 | 0 | 0 | +-------+--------+----------------+------+ | 0 | 0 | 5 | 0 | +-------+--------+----------------+------+
It should say:
A.1. Literals Length Code Table +=======+========+================+======+ | State | Symbol | Number_Of_Bits | Base | +=======+========+================+======+ | 0 | 0 | 4 | 0 | +-------+--------+----------------+------+ [...] A.2. Match Length Code Table +=======+========+================+======+ | State | Symbol | Number_Of_Bits | Base | +=======+========+================+======+ | 0 | 0 | 6 | 0 | +-------+--------+----------------+------+ [...] A.3. Offset Code Table +=======+========+================+======+ | State | Symbol | Number_Of_Bits | Base | +=======+========+================+======+ | 0 | 0 | 5 | 0 | +-------+--------+----------------+------+
Notes:
Each of the three tables in Appendix A contain two entries for state 0, the first of which in each case incorrectly reports the Number_Of_Bits as 0. The all-zero rows should be removed.
Errata ID: 6442
Status: Verified
Type: Technical
Publication Format(s) : TEXT, PDF, HTML
Reported By: Felix Handte
Date Reported: 2021-02-25
Verifier Name: Barry Leiba
Date Verified: 2021-03-08
Section 3.1.1.5 says:
The following table shows the values of the Repeated_Offsets as a series of sequences are applied to them: +=======+==========+===========+===========+===========+============+ |offset_|literals_ | Repeated_ | Repeated_ | Repeated_ |Comment | | value | length | Offset1 | Offset2 | Offset3 | | +=======+==========+===========+===========+===========+============+ | | | 1 | 4 | 8 |starting | | | | | | |values | +-------+----------+-----------+-----------+-----------+------------+ | 1114| 11 | 1111 | 1 | 4 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 1| 22 | 1111 | 1 | 4 |repeat 1; no| | | | | | |change | +-------+----------+-----------+-----------+-----------+------------+ | 2225| 22 | 2222 | 1111 | 1 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 1114| 111 | 1111 | 2222 | 1111 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 3336| 33 | 3333 | 1111 | 2222 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 2| 22 | 1111 | 3333 | 2222 |repeat 2; | | | | | | |swap 1 & 2 | +-------+----------+-----------+-----------+-----------+------------+ | 3| 33 | 2222 | 1111 | 3333 |repeat 3; | | | | | | |rotate 3 to | | | | | | |1 | +-------+----------+-----------+-----------+-----------+------------+ | 1| 0 | 2221 | 2222 | 1111 |insert | | | | | | |resolved | | | | | | |offset | +-------+----------+-----------+-----------+-----------+------------+ | 1| 0 | 2222 | 2221 | 3333 |repeat 2 | +-------+----------+-----------+-----------+-----------+------------+ Table 18: Repeated_Offsets
It should say:
The following table shows the values of the Repeated_Offsets as a series of sequences are applied to them: +=======+==========+===========+===========+===========+============+ |offset_|literals_ | Repeated_ | Repeated_ | Repeated_ |Comment | | value | length | Offset1 | Offset2 | Offset3 | | +=======+==========+===========+===========+===========+============+ | | | 1 | 4 | 8 |starting | | | | | | |values | +-------+----------+-----------+-----------+-----------+------------+ | 1114| 11 | 1111 | 1 | 4 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 1| 22 | 1111 | 1 | 4 |repeat 1; no| | | | | | |change | +-------+----------+-----------+-----------+-----------+------------+ | 2225| 22 | 2222 | 1111 | 1 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 1114| 111 | 1111 | 2222 | 1111 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 3336| 33 | 3333 | 1111 | 2222 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 2| 22 | 1111 | 3333 | 2222 |repeat 2; | | | | | | |swap 1 & 2 | +-------+----------+-----------+-----------+-----------+------------+ | 3| 33 | 2222 | 1111 | 3333 |repeat 3; | | | | | | |rotate 3 to | | | | | | |1 | +-------+----------+-----------+-----------+-----------+------------+ | 3| 0 | 2221 | 2222 | 1111 |insert | | | | | | |resolved | | | | | | |offset | +-------+----------+-----------+-----------+-----------+------------+ | 1| 0 | 2222 | 2221 | 3333 |repeat 2 | +-------+----------+-----------+-----------+-----------+------------+ Table 18: Repeated_Offsets
Notes:
The offset_value in the second-to-last line in the table should be 3, not 1. This line intends to demonstrate the property described earlier in the section that when the sequence's literals_length is 0, an offset_value of 3 resolves to Repeated_Offset1 - 1 and is inserted at the head of the Repeated_Offsets. This is the behavior that is reflected in the rest of the row, which an offset_value of 1 would not trigger (the resolved offset would be 2222, not 2221, and the Repeated_Offsets would remain unchanged, as demonstrated in the 3rd row of the table).
(I wrote this table and it read 3 in the version I provided to the document authors--a typo was introduced somewhere.)
Errata ID: 7297
Status: Verified
Type: Technical
Publication Format(s) : TEXT, PDF, HTML
Reported By: Felix Handte
Date Reported: 2023-01-03
Verifier Name: Murray Kucherawy
Date Verified: 2024-08-22
Section 3.1.1.3.1.1 says:
Size_Format == 01: 4 streams. Both Regenerated_Size and Compressed_Size use 10 bits (values 0-1023). Literals_Section_Header uses 3 bytes. Size_Format == 10: 4 streams. Both Regenerated_Size and Compressed_Size use 14 bits (values 0-16383). Literals_Section_Header uses 4 bytes. Size_Format == 11: 4 streams. Both Regenerated_Size and Compressed_Size use 18 bits (values 0-262143). Literals_Section_Header uses 5 bytes.
It should say:
Size_Format == 01: 4 streams. Both Regenerated_Size and Compressed_Size use 10 bits (values 6-1023). Literals_Section_Header uses 3 bytes. Size_Format == 10: 4 streams. Both Regenerated_Size and Compressed_Size use 14 bits (values 6-16383). Literals_Section_Header uses 4 bytes. Size_Format == 11: 4 streams. Both Regenerated_Size and Compressed_Size use 18 bits (values 6-262143). Literals_Section_Header uses 5 bytes.
Notes:
The calculation for the size of the fourth stream, specified in section 3.1.1.3.1.6, will underflow if the total size of the literals in the block is less than 6 bytes. So the 4-stream mode cannot be used in blocks with fewer than 6 literals. (Nor should it be, since it is strictly less efficient for very small literal sections.)
The source for this errata is https://github.com/facebook/zstd/pull/3398.
[Verifier note: Confirmed with zstd developers.]
Status: Reported (2)
RFC 8878, "Zstandard Compression and the 'application/zstd' Media Type", February 2021
Source of RFC: IETF - NON WORKING GROUP
Errata ID: 7567
Status: Reported
Type: Technical
Publication Format(s) : TEXT, PDF, HTML
Reported By: Jordan Tucker
Date Reported: 2023-07-20
Section 3.1.1.3.1 says:
3.1.1.3.1. Literals_Section_Header
It should say:
3.1.1.3.1. Literals_Section
Notes:
Section 3.1.1.3.1 describes the Literals_Section mentioned in and linked from Section 3.1.1.3 Compressed Blocks. However, the section is labeled as Literals_Section_Header resulting in two sections both labeled Literals_Section_Header (sections 3.1.1.3.1 and 3.1.1.3.1.1).
Errata ID: 8085
Status: Reported
Type: Technical
Publication Format(s) : TEXT
Reported By: Nianqi Tang
Date Reported: 2024-08-19
Section 3.1.1.5 says:
+=======+==========+===========+===========+===========+============+ |offset_|literals_ | Repeated_ | Repeated_ | Repeated_ |Comment | | value | length | Offset1 | Offset2 | Offset3 | | +=======+==========+===========+===========+===========+============+ | | | 1 | 4 | 8 |starting | | | | | | |values | +-------+----------+-----------+-----------+-----------+------------+ | 1114| 11 | 1111 | 1 | 4 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 1| 22 | 1111 | 1 | 4 |repeat 1; no| | | | | | |change | +-------+----------+-----------+-----------+-----------+------------+ | 2225| 22 | 2222 | 1111 | 1 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 1114| 111 | 1111 | 2222 | 1111 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 3336| 33 | 3333 | 1111 | 2222 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 2| 22 | 1111 | 3333 | 2222 |repeat 2; | | | | | | |swap 1 & 2 | +-------+----------+-----------+-----------+-----------+------------+ | 3| 33 | 2222 | 1111 | 3333 |repeat 3; | | | | | | |rotate 3 to | | | | | | |1 | +-------+----------+-----------+-----------+-----------+------------+ | 1| 0 | 2221 | 2222 | 1111 |insert | | | | | | |resolved | | | | | | |offset | +-------+----------+-----------+-----------+-----------+------------+ | 1| 0 | 2222 | 2221 | 3333 |repeat 2 | +-------+----------+-----------+-----------+-----------+------------+
It should say:
+=======+==========+===========+===========+===========+============+ |offset_|literals_ | Repeated_ | Repeated_ | Repeated_ |Comment | | value | length | Offset1 | Offset2 | Offset3 | | +=======+==========+===========+===========+===========+============+ | | | 1 | 4 | 8 |starting | | | | | | |values | +-------+----------+-----------+-----------+-----------+------------+ | 1114| 11 | 1111 | 1 | 4 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 1| 22 | 1111 | 1 | 4 |repeat 1; no| | | | | | |change | +-------+----------+-----------+-----------+-----------+------------+ | 2225| 22 | 2222 | 1111 | 1 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 1114| 111 | 1111 | 2222 | 1111 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 3336| 33 | 3333 | 1111 | 2222 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 2| 22 | 1111 | 3333 | 2222 |repeat 2; | | | | | | |swap 1 & 2 | +-------+----------+-----------+-----------+-----------+------------+ | 3| 33 | 2222 | 1111 | 3333 |repeat 3; | | | | | | |rotate 3 to | | | | | | |1 | +-------+----------+-----------+-----------+-----------+------------+ | 3| 0 | 2221 | 2222 | 1111 |insert | | | | | | |resolved | | | | | | |offset | +-------+----------+-----------+-----------+-----------+------------+ | 1| 0 | 2222 | 2221 | 1111 |repeat 2 | +-------+----------+-----------+-----------+-----------+------------+
Notes:
According to the description in 3.1.1.5, an offset value 1 with literal length 0 shall use Repeated Offset 2. However, in the last row of the example table, this is not the case. Since the second-to-last row has no "3333" value, I believe that the fifth column in the last row should be "1111".