You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@mesos.apache.org by Joseph Wu <jo...@mesosphere.io> on 2015/11/20 20:17:27 UTC

Review Request 40264: Libprocess Reinitialization: Implement Clock::finalize for cleaning up timers

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

Review request for mesos, Artem Harutyunyan and Joris Van Remoortere.


Bugs: MESOS-3882
    https://issues.apache.org/jira/browse/MESOS-3882


Repository: mesos


Description
-------

Timers may deference `process_manager`, either directly or via the associated lambda, after `process_manager` has been freed in `process::finalize`.  Cleaning up the `Clock` appropriately in `process::finalize` prevents that race.


Diffs
-----

  3rdparty/libprocess/include/process/clock.hpp 1107a329caf77f15901d87808eee72818601510c 
  3rdparty/libprocess/src/clock.cpp 58060985bf8ab8a1bbd78b687b4c96836e13b86a 
  3rdparty/libprocess/src/process.cpp 8fa0594b671969c2713d1b361f2dbbb07d25b3a8 

Diff: https://reviews.apache.org/r/40264/diff/


Testing
-------

`make check` (--enable-libevent --enable-ssl)


Thanks,

Joseph Wu


Re: Review Request 40264: Libprocess Reinitialization: Implement Clock::finalize for cleaning up timers

Posted by Joris Van Remoortere <jo...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/40264/#review107632
-----------------------------------------------------------

Ship it!



3rdparty/libprocess/include/process/clock.hpp (lines 53 - 54)
<https://reviews.apache.org/r/40264/#comment166863>

    Let's clarify why it is ok not to execute them: that processes should have been properly finalized before the clock is finalized.



3rdparty/libprocess/src/clock.cpp (line 141)
<https://reviews.apache.org/r/40264/#comment166862>

    Let's add a comment that `tick` must remain robust to arbitrary invocations, as per offline discussion.


- Joris Van Remoortere


On Nov. 20, 2015, 7:17 p.m., Joseph Wu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/40264/
> -----------------------------------------------------------
> 
> (Updated Nov. 20, 2015, 7:17 p.m.)
> 
> 
> Review request for mesos, Artem Harutyunyan and Joris Van Remoortere.
> 
> 
> Bugs: MESOS-3882
>     https://issues.apache.org/jira/browse/MESOS-3882
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Timers may deference `process_manager`, either directly or via the associated lambda, after `process_manager` has been freed in `process::finalize`.  Cleaning up the `Clock` appropriately in `process::finalize` prevents that race.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/include/process/clock.hpp 1107a329caf77f15901d87808eee72818601510c 
>   3rdparty/libprocess/src/clock.cpp 58060985bf8ab8a1bbd78b687b4c96836e13b86a 
>   3rdparty/libprocess/src/process.cpp 8fa0594b671969c2713d1b361f2dbbb07d25b3a8 
> 
> Diff: https://reviews.apache.org/r/40264/diff/
> 
> 
> Testing
> -------
> 
> `make check` (--enable-libevent --enable-ssl)
> 
> 
> Thanks,
> 
> Joseph Wu
> 
>


Re: Review Request 40264: Libprocess Reinitialization: Implement Clock::finalize for cleaning up timers

Posted by Joseph Wu <jo...@mesosphere.io>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/40264/
-----------------------------------------------------------

(Updated Nov. 23, 2015, 11:57 a.m.)


Review request for mesos, Artem Harutyunyan and Joris Van Remoortere.


Changes
-------

Add more comments to document the assumptions of `Clock::finalize`.


Bugs: MESOS-3882
    https://issues.apache.org/jira/browse/MESOS-3882


Repository: mesos


Description
-------

Timers may deference `process_manager`, either directly or via the associated lambda, after `process_manager` has been freed in `process::finalize`.  Cleaning up the `Clock` appropriately in `process::finalize` prevents that race.


Diffs (updated)
-----

  3rdparty/libprocess/include/process/clock.hpp 2e526f810e2702b57ea172835ab99e4ee8537252 
  3rdparty/libprocess/src/clock.cpp 7665d120b3897a76ce018bed0c3d039eabca521f 
  3rdparty/libprocess/src/process.cpp 0fa15dd3d3c83c98411760738b0541248d548ee6 

Diff: https://reviews.apache.org/r/40264/diff/


Testing
-------

`make check` (--enable-libevent --enable-ssl)


Thanks,

Joseph Wu