-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/67401/
-----------------------------------------------------------
(Updated May 31, 2018, 4:11 p.m.)
Review request for mesos, Alexander Rukletsov and Benjamin Mahler.
Summary (updated)
-----------------
Removed undefined behaviour in libprocess due to order-of-evaluation bug.
Bugs: MESOS-8970
https://issues.apache.org/jira/browse/MESOS-8970
Repository: mesos
Description
-------
Up to C++17, the only ordering constraint on the evaluation of
expressions between synchronization points was that function
arguments shall be evaluated before calling a function.
This could lead to the situation where `std::move(futures)` could be
called before `await(futures.values())`, leading to a function call
on a moved-from object and thus undefined behaviour.
Diffs
-----
3rdparty/libprocess/src/metrics/metrics.cpp
e0d0ee4c8d0df66779c7ef296a1a18d988e889b8
Diff: https://reviews.apache.org/r/67401/diff/1/
Testing (updated)
-------
`./libprocess-tests`
Internal CI run including this fix w/o libprocess segfaults:
https://jenkins.mesosphere.com/service/jenkins/job/mesos/job/Mesos_CI-build/3655
Thanks,
Benno Evers