Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-9800

libarchive cannot extract tarfile due to UTF-8 encoding issues

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.7.2
    • None
    • fetcher
    • None
    • Mesos 1.7.2 and Marathon 1.4.3 running on top of Ubuntu 16.04.

    Description

      Starting with Mesos 1.7, the following change has been introduced:

      • MESOS-8064 - Mesos now requires libarchive to programmatically decode .zip, .tar, .gzip, and other common file compression schemes. Version 3.3.2 is bundled in Mesos.

      However, this version of libarchive which is used by the fetcher component in Mesos has problems in dealing with archive files (.tar and .zip) which contain UTF-8 characters. We run Marahton on top of Mesos, and one of our Marathon application relies on a .tar file which contains symlinks whose target contains certain UTF-8 characters (Turkish) or the symlink name itself contains UTF-8 characters. Mesos fetcher is unable to extract the archive and fails with the following error:

      May 28 10:47:30 t01m01.node.t01.dns.teralytics.net mesos-slave[4319]: E0528 10:47:30.791250  6136 fetcher.cpp:613] EXIT with status 1: Failed to fetch '/tmp/certificates.tar.gz': Failed to extract archive '/var/mesos/slaves/10c35371-f690-4d40-8b9e-30ffd04405fb-S6/frameworks/ff2993eb-987f-47b0-b3af-fb8b49ab0470-0000/executors/test-nginx.fe01a0c0-8135-11e9-a160-02427a38aa03/runs/6a6e87e8-5eef-4e8e-8c00-3f081fa187b0/certificates.tar.gz' to '/var/mesos/slaves/10c35371-f690-4d40-8b9e-30ffd04405fb-S6/frameworks/ff2993eb-987f-47b0-b3af-fb8b49ab0470-0000/executors/test-nginx.fe01a0c0-8135-11e9-a160-02427a38aa03/runs/6a6e87e8-5eef-4e8e-8c00-3f081fa187b0': Failed to read archive header: Linkname can't be converted from UTF-8 to current locale.
      May 28 10:47:30 t01m01.node.t01.dns.teralytics.net mesos-slave[4319]:
      May 28 10:47:30 t01m01.node.t01.dns.teralytics.net mesos-slave[4319]: End fetcher log for container 6a6e87e8-5eef-4e8e-8c00-3f081fa187b0
      May 28 10:47:30 t01m01.node.t01.dns.teralytics.net mesos-slave[4319]: E0528 10:47:30.846695  4343 fetcher.cpp:571] Failed to run mesos-fetcher: Failed to fetch all URIs for container '6a6e87e8-5eef-4e8e-8c00-3f081fa187b0': exited with status 1

      The same Marathon application works fine with Mesos 1.6 which does not use libarchive.

      Attachments

        1. certificates2.tar.gz
          307 kB
          Felipe Alfaro Solana

        Activity

          People

            Unassigned Unassigned
            falfaro Felipe Alfaro Solana
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: