Felipe Alfaro Solana created MESOS-9800:
-------------------------------------------

             Summary: libarchive cannot extract tarfile due to UTF-8 encoding 
issues
                 Key: MESOS-9800
                 URL: https://issues.apache.org/jira/browse/MESOS-9800
             Project: Mesos
          Issue Type: Bug
          Components: fetcher
    Affects Versions: 1.7.2
         Environment: Mesos 1.7.2 and Marathon 1.4.3 running on top of Ubuntu 
16.04.
            Reporter: Felipe Alfaro Solana


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.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to