[jira] [Commented] (MESOS-9799) Adopt container file operations in secrets volumes.

2019-05-28 Thread James Peach (JIRA)


[ 
https://issues.apache.org/jira/browse/MESOS-9799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16850489#comment-16850489
 ] 

James Peach commented on MESOS-9799:


| [r/70741|https://reviews.apache.org/r/70741] | Adopted container file 
operations for secrets volumes. |

> Adopt container file operations in secrets volumes.
> ---
>
> Key: MESOS-9799
> URL: https://issues.apache.org/jira/browse/MESOS-9799
> Project: Mesos
>  Issue Type: Improvement
>  Components: containerization
>Reporter: James Peach
>Assignee: James Peach
>Priority: Major
>
> Adopt containerized file operations in the secrets volume isolator so that it 
> doesn't have to use pre-exec commands.



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


[jira] [Commented] (MESOS-9800) libarchive cannot extract tarfile due to UTF-8 encoding issues

2019-05-28 Thread Joseph Wu (JIRA)


[ 
https://issues.apache.org/jira/browse/MESOS-9800?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16850170#comment-16850170
 ] 

Joseph Wu commented on MESOS-9800:
--

I believe this error appears when the locale of the program (Mesos agent) is 
set to some non-UTF locale, such as the default POSIX locale.  The addition of 
the following line _might_ be enough to fix it.

{code}
diff --git a/3rdparty/stout/include/stout/archiver.hpp 
b/3rdparty/stout/include/stout/archiver.hpp
index 551e644a3..706ba5282 100644
--- a/3rdparty/stout/include/stout/archiver.hpp
+++ b/3rdparty/stout/include/stout/archiver.hpp
@@ -54,6 +54,11 @@ inline Try extract(
   archive_read_support_format_all(reader.get());
   archive_read_support_filter_all(reader.get());
 
+  // Prevent Libarchive from trying to convert filenames to the locale-default
+  // character encoding. This conversion sometimes fails, for example when
+  // reading UTF-8 characters in a standard "C" locale (POSIX default).
+  archive_read_set_options(reader.get(), "hdrcharset=BINARY");
+
   std::unique_ptr> writer(
 archive_write_disk_new(),
 [](struct archive* p) {
{code}

Could you attach an example archive that fails to extract and the locale of the 
machine running your agent (i.e. the output of the {{locale}} command)?  That 
should give me a better idea of what case is failing.

> 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
>Priority: Major
>
> 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-/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-/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)


[jira] [Assigned] (MESOS-9801) Use protobuf arenas for v1 API responses.

2019-05-28 Thread Benjamin Mahler (JIRA)


 [ 
https://issues.apache.org/jira/browse/MESOS-9801?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Mahler reassigned MESOS-9801:
--

Assignee: William Mahler

> Use protobuf arenas for v1 API responses.
> -
>
> Key: MESOS-9801
> URL: https://issues.apache.org/jira/browse/MESOS-9801
> Project: Mesos
>  Issue Type: Improvement
>  Components: agent, master
>Reporter: Benjamin Mahler
>Assignee: William Mahler
>Priority: Major
>  Labels: performance
>
> The v1 API response construction is currently slower than the v0 API response 
> construction. A primary reason for this is that the v1 API constructs 
> intermediate C++ protobuf response objects, which are very expensive in terms 
> of memory allocation/deallocation cost. Also involved is the use of 
> {{evolve()}} which evolves messages from unversioned protobuf into v1 
> protobuf. This also has very high memory allocation / deallocation cost.
> Using arenas for all v1 API response construction will provide a significant 
> improvement.
> This ticket currently captures all the aspects of this:
> * Updating {{evolve()}} to use arenas across all v1 API responses.
> * Updating all response construction functions (e.g. {{getState())}}) to use 
> arenas.
> * Making this change for both the master and agent.
> This is blocked by MESOS-9755 since we need to upgrade our bundled protobuf 
> to have string fields allocated in the arenas.
> We may split out tickets for CHANGELOG purposes if only a portion of this 
> lands in 1.9.0.



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


[jira] [Created] (MESOS-9801) Use protobuf arenas for v1 API responses.

2019-05-28 Thread Benjamin Mahler (JIRA)
Benjamin Mahler created MESOS-9801:
--

 Summary: Use protobuf arenas for v1 API responses.
 Key: MESOS-9801
 URL: https://issues.apache.org/jira/browse/MESOS-9801
 Project: Mesos
  Issue Type: Improvement
  Components: agent, master
Reporter: Benjamin Mahler


The v1 API response construction is currently slower than the v0 API response 
construction. A primary reason for this is that the v1 API constructs 
intermediate C++ protobuf response objects, which are very expensive in terms 
of memory allocation/deallocation cost. Also involved is the use of 
{{evolve()}} which evolves messages from unversioned protobuf into v1 protobuf. 
This also has very high memory allocation / deallocation cost.

Using arenas for all v1 API response construction will provide a significant 
improvement.

This ticket currently captures all the aspects of this:

* Updating {{evolve()}} to use arenas across all v1 API responses.
* Updating all response construction functions (e.g. {{getState())}}) to use 
arenas.
* Making this change for both the master and agent.

This is blocked by MESOS-9755 since we need to upgrade our bundled protobuf to 
have string fields allocated in the arenas.

We may split out tickets for CHANGELOG purposes if only a portion of this lands 
in 1.9.0.



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


[jira] [Commented] (MESOS-9798) How to reduce compile time after had changed/improved source code?

2019-05-28 Thread Joseph Wu (JIRA)


[ 
https://issues.apache.org/jira/browse/MESOS-9798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16849982#comment-16849982
 ] 

Joseph Wu commented on MESOS-9798:
--

This is an architectural problem with how large is the codebase is, and how the 
code is structured.  The Mesos agent takes the longest to compile, mostly 
because 80% or so of the Mesos source files are compiled into the agent.  That 
includes {{src/docker/docker.hpp}}.

> How to reduce compile time after had changed/improved source code?
> --
>
> Key: MESOS-9798
> URL: https://issues.apache.org/jira/browse/MESOS-9798
> Project: Mesos
>  Issue Type: Improvement
>  Components: cmake
>Affects Versions: 1.8.0
> Environment: Linux firework-vm01 4.9.0-9-amd64 #1 SMP Debian 
> 4.9.168-1+deb9u2 (2019-05-13) x86_64 GNU/Linux
>Reporter: chatsiri
>Priority: Minor
>  Labels: newbie
>
> Hello all, 
>      I'm have changed variables in src/ directory finished, but compiler 
> using long time to finished build steps. How can reduces compile time per 
> component or source directory? Such as an simple steps below
>  # I'm add new member function to class Docker on docker.hpp. This class 
> declares on file at docker directory.
>  # Compile source again from build directory. This directory create on the 
> base source code directory same src/ , bin/ and include/.
>  # Come to build path with 
>  ## $cd build
>  ## $../configure --disable-python --disable-java --enable-debug 
> --enable-fast-install
>  ## $make
>  ## $sudo make install.   
> In steps No.3. Compiler used long time compiles source code. How we can 
> reduce compile time per source directory that we had changed its?



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


[jira] [Commented] (MESOS-9800) libarchive cannot extract tarfile due to UTF-8 encoding issues

2019-05-28 Thread Andrei Budnik (JIRA)


[ 
https://issues.apache.org/jira/browse/MESOS-9800?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16849924#comment-16849924
 ] 

Andrei Budnik commented on MESOS-9800:
--

Thanks for filing a detailed ticket!
Hope [~kaysoky] might help you with this issue.

> 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
>Priority: Major
>
> 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-/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-/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)


[jira] [Created] (MESOS-9800) libarchive cannot extract tarfile due to UTF-8 encoding issues

2019-05-28 Thread Felipe Alfaro Solana (JIRA)
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-/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-/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)


[jira] [Assigned] (MESOS-9254) Make SLRP be able to update its volumes and storage pools.

2019-05-28 Thread Orlando Hohmeier (JIRA)


 [ 
https://issues.apache.org/jira/browse/MESOS-9254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Orlando Hohmeier reassigned MESOS-9254:
---

Assignee: Benjamin Bannier  (was: Chun-Hung Hsiao)

> Make SLRP be able to update its volumes and storage pools.
> --
>
> Key: MESOS-9254
> URL: https://issues.apache.org/jira/browse/MESOS-9254
> Project: Mesos
>  Issue Type: Improvement
>Reporter: Chun-Hung Hsiao
>Assignee: Benjamin Bannier
>Priority: Critical
>  Labels: mesosphere, mesosphere-dss-post-ga, storage
>
> We should consider making SLRP update its resources periodically, or adding 
> an endpoint to trigger that, for the following reasons:
> 1. Mesos currently assumes all profiles have disjoint storage pools. This is 
> because Mesos models each resource independently. However, in practice an 
> operator can set up, say two profiles, one for linear volumes and one for 
> raid volumes, and an "LVM" resource provider that can provision both linear 
> and raid volumes. The correlation between the storage pools of the linear and 
> raid profiles would reduce one's pool capacity when a volume of the other 
> type is provisioned. To reflect the actual sizes of correlated storage pools, 
> we need a way to make SLRP update its resources.
> 2. The SLRP now only queries the CSI plugin to report a list of volumes 
> during startup, so if a new device is added, the operator will have to 
> restart the agent to trigger another SLRP startup, which is inconvenient.



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