Uploaded image for project: 'Commons Compress'
  1. Commons Compress
  2. COMPRESS-513

[Tar] error decoding sparse file header

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.20
    • None
    • Archivers
    • None
      1. Ubuntu 19.10.
      2. Gnu tar 1.30

    Description

      I am seeing an IllegalArgumentException when attempting to scan a (gnu) tar file containing a backup of my home directory. The entry is a sqlite database table used by chromium.

      The archive file is 62 GB and over 1 million files. ( ! ) (Can you tell I'm a developer?)

      The error is:

      java.lang.IllegalArgumentException: At offset 0, 12 byte binary number exceeds maximum signed long value
      java.lang.IllegalArgumentException: At offset 0, 12 byte binary number exceeds maximum signed long value
         at org.apache.commons.compress.archivers.tar.TarUtils.parseBinaryBigInteger(TarUtils.java:231)

      From instrumenting the code I can determine that the TarArchiveEntry reports:

      • name: ./snap/chromium/1005/.config/chromium/Default/Storage/ext/jajcoljhdglkjpfefjkgiohbhnkkmipm/def/GPUCache/data_3
      • mode: 0600
      • size: 53248
      • real: 4202496

      The (presumed) sparse headers are:

      c3 ca 04 c1 00 00 02 00 03 00 00 00  |
      00 10 00 00 04 00 00 00 00 04 00 00  |
      03 00 00 00 01 00 00 00 00 00 00 00  |
      fc 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 73 77 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00  |
      00 00 00 00 00 00 00 00 00 00 00 00 
      

      And for this specific entry 

      • buffer: c3 ca 04 c1 00 00 02 00 03 00 00 00
      • remainder: ca 04 c1 00 00 02 00 03 00 00 00
      • neg: false
      • value: -65259544571650071836229632

      I'll add the full header in a comment later today. It looks likely that the header format isn't properly recognized.

      Attachments

        Activity

          People

            Unassigned Unassigned
            bgiles Bear R Giles
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: