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 57358: Implemented discard behavior in process::Queue.
Date Thu, 30 Mar 2017 01:23:05 GMT


> On March 24, 2017, 9:09 a.m., Greg Mann wrote:
> > 3rdparty/libprocess/include/process/queue.hpp
> > Line 58 (original), 58 (patched)
> > <https://reviews.apache.org/r/57358/diff/4/?file=1671141#file1671141line58>
> >
> >     I was just testing this patch locally, and noticed that after applying it, the
NetSocketTests will deadlock. If I run `3rdparty/libprocess/libprocess-tests --gtest_filter="*NetSocketTest.*"`
the deadlock appears. Haven't had a chance to dig in yet.

If you apply this: https://reviews.apache.org/r/57821/
The deadlock should go away.


- Joseph


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


On March 21, 2017, 2:40 p.m., Joseph Wu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57358/
> -----------------------------------------------------------
> 
> (Updated March 21, 2017, 2:40 p.m.)
> 
> 
> Review request for mesos, Benjamin Mahler and Greg Mann.
> 
> 
> Bugs: MESOS-6919
>     https://issues.apache.org/jira/browse/MESOS-6919
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> When a consumer calls `Queue::get` on an empty Queue, the Queue creates
> a Promise to back the Future return value.  This Promise currently
> does not have a discard handler, which may cause problems if the
> Future is chained to multiple continuations.  For example, see
> the scenario in MESOS-6919.
> 
> This commit implements an (potentially expensive) discard handler
> on the Queue's Promise.  If the Future return value is discarded,
> the Queue will remove the corresponding Promise from its internal
> queue of promises.  The operation is expensive because it needs
> to reconstruct the entire internal queue of promises.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/include/process/queue.hpp ab08e30df742412f22a06202526f8b55350ed435

>   3rdparty/libprocess/src/tests/queue_tests.cpp 95b738133fa50641f8f9b83014837d2808e0e4ff

> 
> 
> Diff: https://reviews.apache.org/r/57358/diff/4/
> 
> 
> Testing
> -------
> 
> cmake .. -DENABLE_LIBEVENT=1 -DENABLE_SSL=1
> 
> make libprocess-tests
> 
> 3rdparty/libprocess/src/tests/libprocess-tests --gtest_filter="Scheme/HTTPTest.Endpoints/0"
--gtest_repeat="`ulimit -n`"
> 
> make check
> 
> 
> Thanks,
> 
> Joseph Wu
> 
>


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