You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@mesos.apache.org by Jiang Yan Xu <ya...@jxu.me> on 2018/10/17 17:49:07 UTC
Re: Review Request 68587: Fixed fetcher deadlock with duplicate URIs.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/68587/#review209704
-----------------------------------------------------------
Fix it, then Ship it!
src/slave/containerizer/fetcher.cpp
Lines 409-411 (patched)
<https://reviews.apache.org/r/68587/#comment294254>
The crux here is that URIs with the same `value` but are different in other fields like `executable` or `extract` can lead to multiple items in `entries` pointing to the same cache entry. Add it to the comment?
src/slave/containerizer/fetcher.cpp
Lines 421 (patched)
<https://reviews.apache.org/r/68587/#comment294252>
Using `newEntries.at()` is more idiomatic even though we did check that the entry exists.
- Jiang Yan Xu
On Aug. 31, 2018, 9:47 a.m., James Peach wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/68587/
> -----------------------------------------------------------
>
> (Updated Aug. 31, 2018, 9:47 a.m.)
>
>
> Review request for mesos, Gilbert Song and Joseph Wu.
>
>
> Bugs: MESOS-9172
> https://issues.apache.org/jira/browse/MESOS-9172
>
>
> Repository: mesos
>
>
> Description
> -------
>
> If a fetch request contains duplicate URIs that are not already
> in the cache, the fetcher would erroneously expect that some other
> fetch process is going to download that cache entry. It will then
> wait for a Future that will never complete.
>
> The fix is to track whether the cache entry was created in this
> fetch, and in that case to simply allow the duplicate URI. In
> the fetcher, we check the cache before downloading so that a URIs
> can be fetched to distinct output files without being downloaded
> multiple times.
>
>
> Diffs
> -----
>
> src/launcher/fetcher.cpp ef8d7ebdcf6d5d15459fd3392cb99774f078347a
> src/slave/containerizer/fetcher.cpp 17f5388200c8341936cb4d7f8da67b5f286b727d
> src/tests/fetcher_tests.cpp f3ea7092635c88b9dddcc2998a4c7350fb56110c
>
>
> Diff: https://reviews.apache.org/r/68587/diff/1/
>
>
> Testing
> -------
>
> make check (Fedora 28)
>
>
> Thanks,
>
> James Peach
>
>