mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benjamin Mahler <bmah...@apache.org>
Subject Re: Review Request 70472: Ensured that task groups do not specify overlapping ranges or sets.
Date Fri, 19 Apr 2019 18:35:24 GMT

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



Much simpler! Left a few suggestions below


src/master/validation.hpp
Lines 144 (patched)
<https://reviews.apache.org/r/70472/#comment301024>

    Why the copying? Can you take this by const ref?



src/master/validation.cpp
Lines 908 (patched)
<https://reviews.apache.org/r/70472/#comment301026>

    Maybe a brief explanation? E.g.
    
    ```
    If the sum of quantities of each Resources is not equal to the quantity of the sum of
Resources, then there is some overlap in ranges or sets.
    ```



src/master/validation.cpp
Lines 909 (patched)
<https://reviews.apache.org/r/70472/#comment301025>

    newline?
    
    Also maybe this is more readable?
    
    ```
    if (!resources.empty()) {
    
    }
    ```
    
    Actually, why bother with if check? The code looks correct and more readable without it?



src/master/validation.cpp
Lines 910-918 (patched)
<https://reviews.apache.org/r/70472/#comment301027>

    Might be more readable with two running sums in one loop rather than the use of accumulate
(which seems a bit inconcistent? either use accumulate for both or loop for both?)
    
    If you keep two running sums, can't we print out where the overlap is?
    
    ```
      ResourceQuantities qTotal;
      Resources rTotal;
      
      foreach (const Resources& r, resources) {
        qTotal += ResourceQuantities::fromResources(r);
        rTotal += r;
      }
      
      if (qTotal != ResourceQuantities::fromResources(rTotal)) {
        ...
      }
    ```



src/master/validation.cpp
Lines 917 (patched)
<https://reviews.apache.org/r/70472/#comment301028>

    Hm.. I guess we don't know where the overlap is, but seems we should have some printing
somewhere.. a good start would be to output the vector, but it won't let us know which parts
came from tasks/executor.
    
    Maybe the outer message below can include it?
    
    ```
        return Error("There are overlapping resources in the tasks resources" +
                     vector of task resources +
                     " and/or executor resources " +
                     executor resources);
    ```



src/master/validation.cpp
Lines 1673 (patched)
<https://reviews.apache.org/r/70472/#comment301029>

    See my above comment, maybe we don't need to tack on the message here since it isn't helpful,
and maybe we can just have that function return a bool?


- Benjamin Mahler


On April 19, 2019, 7:57 a.m., Greg Mann wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/70472/
> -----------------------------------------------------------
> 
> (Updated April 19, 2019, 7:57 a.m.)
> 
> 
> Review request for mesos, Benno Evers, Benjamin Mahler, Gastón Kleiman, and Meng Zhu.
> 
> 
> Bugs: MESOS-9619
>     https://issues.apache.org/jira/browse/MESOS-9619
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> This patch adds validation to the master to ensure that task
> groups do not include resources with overlapping set- or
> range-valued resources, as this can crash the allocator.
> 
> 
> Diffs
> -----
> 
>   src/master/validation.hpp 71748c121aa3518d68811ea1e60707d195b58657 
>   src/master/validation.cpp f032a781608857d0c9cfa220dd8d70f74d60f1ec 
>   src/tests/master_tests.cpp 964d935771a99efaee63187affe46b551146f310 
>   src/tests/master_validation_tests.cpp 400ad686291e08f578f27cfb9341263972e36684 
> 
> 
> Diff: https://reviews.apache.org/r/70472/diff/2/
> 
> 
> Testing
> -------
> 
> `make check`
> `bin/mesos-tests.sh --gtest_filter="*NonoverlappingSetsAndRanges*" --gtest_repeat=-1
--gtest_break_on_failure`
> `bin/mesos-tests.sh --gtest_filter="*LaunchGroupOverlappingSetAndRangeResources*" --gtest_repeat=-1
--gtest_break_on_failure`
> 
> 
> Thanks,
> 
> Greg Mann
> 
>


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