mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benno Evers <bev...@mesosphere.com>
Subject Re: Review Request 68484: Added macros to unconditionally disable boost debug mode.
Date Fri, 24 Aug 2018 11:51:19 GMT

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

(Updated Aug. 24, 2018, 11:51 a.m.)


Review request for mesos and Alexander Rukletsov.


Changes
-------

Expanded description.


Summary (updated)
-----------------

Added macros to unconditionally disable boost debug mode.


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


Repository: mesos


Description (updated)
-------

Boost.CircularBuffer includes optional debugging code that
counts the number of currently existing iterators to the
container. Up to Boost 1.62, this code was enabled by
default.

However, the existing iterators were stored in a linked list
that was updated without any synchronization, leading to
potential segfaults when reading the same buffer from multiple
threads.

Given that the Master stores the completed tasks for each framework
in a circular buffer, and that this can be read from multiple threads
when multiple batched requests to the `/state` endpoint are processed,
we have to unconditionally disable Boost's debug mode to prevent
possible segfaults.


Diffs (updated)
-----

  src/master/master.hpp dc0080b24f19b77a4de34ab24aece657726343b8 
  src/slave/slave.hpp 0420109ac93e1249906c52437e5859c5ee033fb6 


Diff: https://reviews.apache.org/r/68484/diff/2/

Changes: https://reviews.apache.org/r/68484/diff/1-2/


Testing
-------

* Compiled mesos master against boost 1.53 from https://downloads.mesosphere.com/pkgpanda-artifact-cache/boost_1_53_0.tar.gz.
* Wrote a script that can trigger a segfault by reading from a circular buffer in parallel
(pasted in the linked ticket) and verified that it crashes mesos master.
* Recompiled mesos with this patch applied.
* Verified that the above script does not produce a segfault anymore.


Thanks,

Benno Evers


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