mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joseph Wu <jos...@mesosphere.io>
Subject Re: Review Request 69171: Added validation of cache files to the URI Fetcher.
Date Fri, 26 Oct 2018 23:20:58 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/69171/#review210115
-----------------------------------------------------------




src/slave/containerizer/fetcher.cpp
Lines 1030-1031 (patched)
<https://reviews.apache.org/r/69171/#comment294752>

    Hum... I think this will work as intended, but the logic and comment are slight off.
    
    A cache should be considered downloaded if `completion().isReady()`.
    
    In case the download fails, `!completion.isPending()` will be true.  However every invocation
of `entry.get()->fail()` is synchronized inside the `FetcherProcess`.  And every time `fail()`
is called, the line is followed by a `cache.remove(...)`, so it should be impossible to find
a Failed completion here.
    
    Perhaps this will be slight more consistent:
    ```
    // The FetcherProcess will always remove a failed download
    // synchronously after marking this future as failed.
    CHECK(!entry.get().completion().isFailed());
    
    // Validate the cache file, if it has been downloaded.
    if (entry.get().completion().isReady()) {
      ...
    ```



src/slave/containerizer/fetcher.cpp
Lines 1070-1074 (original), 1083-1087 (patched)
<https://reviews.apache.org/r/69171/#comment294751>

    The new case will have a similar reason to (3). Maybe something like:
    ```
    In (4) we explicitly only validate a cache file if the future is ready (i.e the file has
been downloaded).
    ```


- Joseph Wu


On Oct. 25, 2018, 1:47 p.m., Andrei Budnik wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/69171/
> -----------------------------------------------------------
> 
> (Updated Oct. 25, 2018, 1:47 p.m.)
> 
> 
> Review request for mesos, Gilbert Song, James Peach, and Joseph Wu.
> 
> 
> Bugs: MESOS-7474
>     https://issues.apache.org/jira/browse/MESOS-7474
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Previously, missing cache files could lead to task launch failures.
> This patch introduces validation of cache files which happens each
> time a downloaded cache entry is requested via the `get()` method.
> If validation fails, `get()` returns `None()`, so that the fetcher
> retries downloading URI. Currently, we only check the existence of
> the cache file during validation.
> 
> 
> Diffs
> -----
> 
>   src/slave/containerizer/fetcher.cpp e848c86261b75e5549e80276541e5932162fc012 
>   src/slave/containerizer/fetcher_process.hpp 56ed6e5455b7d23b4ce84873fe6734b4213df691

> 
> 
> Diff: https://reviews.apache.org/r/69171/diff/1/
> 
> 
> Testing
> -------
> 
> 1. sudo make check (Fedora 25)
> 2. internal CI
> 
> 
> Thanks,
> 
> Andrei Budnik
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message