You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Andrei Sekretenko (Jira)" <ji...@apache.org> on 2021/06/03 18:00:00 UTC

[jira] [Comment Edited] (MESOS-10222) Build failure in 3rdparty/boost-1.65.0 with -Werror=parentheses

    [ https://issues.apache.org/jira/browse/MESOS-10222?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17356628#comment-17356628 ] 

Andrei Sekretenko edited comment on MESOS-10222 at 6/3/21, 5:59 PM:
--------------------------------------------------------------------

AFAIK, there is no strict 3rdparty update policy.

In general, in the recent years we tried to keep the patches to 3rdparty minimal. Sometimes that meant that when we needed to fix a bug in a 3rdparty dependency, we had to update this dependency first. We still had to include the fix into our patches (there was no hope to upstream the fix in a reasonable time frame), but implementing the fix on top of the latest release allowed us to keep the patches smaller (and to avoid reimplementing this fix should we update this 3rdparty). 

I would say that if those warnings have been fixed upstream, updating a dependency is a relatively sane option, especially if there isn't much to be adjusted. IMO, in case of most dependencies of Mesos, the number of new bugs introduced by an update is usually on par with or less than a number of old hidden ones removed. As a rule, 3rdparty bumps should not be backported, and it is generally preferred not to perform them in the face of an impending release (this leaves more opportunity for the potential new bugs to surface in our test suite runs and also whatever testing environments people run). 

On the other hand, extending our patch set just for the sake of getting rid of compiler warnings is definitely not a good option.


was (Author: asekretenko):
AFAIK, there is no strict 3rdparty update policy.

In general, in the recent years we tried to keep the patches to 3rdparty minimal. Sometimes that meant that when we needed to fix a bug in a 3rdparty dependency, we had to update this dependency first. We still had to include the fix into our patches (there was no hope to upstream the fix in a reasonable time frame), but implementing the fix on top of the latest release allowed us to keep the patches smaller (and to avoid reimplementing this fix should we update this 3rdparty). 

I would say that if those warnings have been fixed upstream, updating a dependency is a relatively sane option, especially if there isn't much to be adjusted. IMO, in case of most dependencies of Mesos, the number of new bugs introduced by an update is usually on par with a number of old hidden ones removed. As a rule, 3rdparty bumps should not be backported, and it is generally preferred not to perform them in the face of an impending release (this leaves more opportunity for the potential new bugs to surface in our test suite runs and also whatever testing environments people run). 

On the other hand, extending our patch set just for the sake of getting rid of compiler warnings is definitely not a good option.

> Build failure in 3rdparty/boost-1.65.0 with -Werror=parentheses
> ---------------------------------------------------------------
>
>                 Key: MESOS-10222
>                 URL: https://issues.apache.org/jira/browse/MESOS-10222
>             Project: Mesos
>          Issue Type: Bug
>          Components: build
>            Reporter: Martin Tzvetanov Grigorov
>            Priority: Minor
>         Attachments: config.log
>
>
> I am trying to build Mesos master but it fails with:
>  
> {code:java}
>  In file included from ../3rdparty/boost-1.65.0/boost/mpl/aux_/na_assert.hpp:23,
>                  from ../3rdparty/boost-1.65.0/boost/mpl/arg.hpp:25,
>                  from ../3rdparty/boost-1.65.0/boost/mpl/placeholders.hpp:24,
>                  from ../3rdparty/boost-1.65.0/boost/iterator/iterator_categories.hpp:17,
>                  from ../3rdparty/boost-1.65.0/boost/iterator/iterator_facade.hpp:14,
>                  from ../3rdparty/boost-1.65.0/boost/uuid/seed_rng.hpp:38,
>                  from ../3rdparty/boost-1.65.0/boost/uuid/random_generator.hpp:12,
>                  from ../../3rdparty/stout/include/stout/uuid.hpp:21,
>                  from ../../include/mesos/type_utils.hpp:36,
>                  from ../../src/master/flags.cpp:18:
> ../3rdparty/boost-1.65.0/boost/mpl/assert.hpp:188:21: error: unnecessary parentheses in declaration of ‘assert_arg’ [-Werror=parentheses]
>   188 | failed ************ (Pred::************
>       |                     ^
> ../3rdparty/boost-1.65.0/boost/mpl/assert.hpp:193:21: error: unnecessary parentheses in declaration of ‘assert_not_arg’ [-Werror=parentheses]
>   193 | failed ************ (boost::mpl::not_<Pred>::************
>       |                     ^
> In file included from ../3rdparty/boost-1.65.0/boost/mpl/aux_/na_assert.hpp:23,
>                  from ../3rdparty/boost-1.65.0/boost/mpl/arg.hpp:25,
>                  from ../3rdparty/boost-1.65.0/boost/mpl/placeholders.hpp:24,
>                  from ../3rdparty/boost-1.65.0/boost/iterator/iterator_categories.hpp:17,
>                  from ../3rdparty/boost-1.65.0/boost/iterator/iterator_facade.hpp:14,
>                  from ../3rdparty/boost-1.65.0/boost/range/iterator_range_core.hpp:27,
>                  from ../3rdparty/boost-1.65.0/boost/lexical_cast.hpp:30,
>                  from ../../3rdparty/stout/include/stout/numify.hpp:19,
>                  from ../../3rdparty/stout/include/stout/duration.hpp:29,
>                  from ../../3rdparty/libprocess/include/process/time.hpp:18,
>                  from ../../3rdparty/libprocess/include/process/clock.hpp:18,
>                  from ../../3rdparty/libprocess/include/process/future.hpp:29,
>                  from ../../include/mesos/authentication/secret_generator.hpp:22,
>                  from ../../src/local/local.cpp:24:
> ../3rdparty/boost-1.65.0/boost/mpl/assert.hpp:188:21: error: unnecessary parentheses in declaration of ‘assert_arg’ [-Werror=parentheses]
>   188 | failed ************ (Pred::************
>       |                     ^
> ../3rdparty/boost-1.65.0/boost/mpl/assert.hpp:193:21: error: unnecessary parentheses in declaration of ‘assert_not_arg’ [-Werror=parentheses]
>   193 | failed ************ (boost::mpl::not_<Pred>::************
>       |                     ^
> In file included from ../3rdparty/boost-1.65.0/boost/mpl/aux_/na_assert.hpp:23,
>                  from ../3rdparty/boost-1.65.0/boost/mpl/arg.hpp:25,
>                  from ../3rdparty/boost-1.65.0/boost/mpl/placeholders.hpp:24,
>                  from ../3rdparty/boost-1.65.0/boost/iterator/iterator_categories.hpp:17,
>                  from ../3rdparty/boost-1.65.0/boost/iterator/iterator_adaptor.hpp:14,
>                  from ../3rdparty/boost-1.65.0/boost/iterator/indirect_iterator.hpp:11,
>                  from ../../include/mesos/resources.hpp:27,
>                  from ../../src/master/master.hpp:31,
>                  from ../../src/master/framework.cpp:17:
> ../3rdparty/boost-1.65.0/boost/mpl/assert.hpp:188:21: error: unnecessary parentheses in declaration of ‘assert_arg’ [-Werror=parentheses]
>   188 | failed ************ (Pred::************
>       |                     ^
> ../3rdparty/boost-1.65.0/boost/mpl/assert.hpp:193:21: error: unnecessary parentheses in declaration of ‘assert_not_arg’ [-Werror=parentheses]
>   193 | failed ************ (boost::mpl::not_<Pred>::************
>       |                     ^
> In file included from ../3rdparty/boost-1.65.0/boost/mpl/aux_/na_assert.hpp:23,
>                  from ../3rdparty/boost-1.65.0/boost/mpl/arg.hpp:25,
>                  from ../3rdparty/boost-1.65.0/boost/mpl/placeholders.hpp:24,
>                  from ../3rdparty/boost-1.65.0/boost/iterator/iterator_categories.hpp:17,
>                  from ../3rdparty/boost-1.65.0/boost/iterator/iterator_facade.hpp:14,
>                  from ../3rdparty/boost-1.65.0/boost/uuid/seed_rng.hpp:38,
>                  from ../3rdparty/boost-1.65.0/boost/uuid/random_generator.hpp:12,
>                  from ../../3rdparty/stout/include/stout/uuid.hpp:21,
>                  from ../../include/mesos/type_utils.hpp:36,
>                  from ../../src/master/http.cpp:35:
> ../3rdparty/boost-1.65.0/boost/mpl/assert.hpp:188:21: error: unnecessary parentheses in declaration of ‘assert_arg’ [-Werror=parentheses]
>   188 | failed ************ (Pred::************
>       |                     ^
> ../3rdparty/boost-1.65.0/boost/mpl/assert.hpp:193:21: error: unnecessary parentheses in declaration of ‘assert_not_arg’ [-Werror=parentheses]
>   193 | failed ************ (boost::mpl::not_<Pred>::************
>       |                     ^
> cc1plus: all warnings being treated as errors
> make[2]: *** [Makefile:9231: master/libmesos_no_3rdparty_la-flags.lo] Error 1
> make[2]: *** Waiting for unfinished jobs....
> cc1plus: all warnings being treated as errors
> make[2]: *** [Makefile:9238: master/libmesos_no_3rdparty_la-framework.lo] Error 1
> cc1plus: all warnings being treated as errors
> make[2]: *** [Makefile:9105: local/libmesos_no_3rdparty_la-local.lo] Error 1
> cc1plus: all warnings being treated as errors
> make[2]: *** [Makefile:9245: master/libmesos_no_3rdparty_la-http.lo] Error 1
> make[2]: Leaving directory '/home/ubuntu/git/apache/mesos/build/src'
> make[1]: *** [Makefile:4841: all] Error 2
> make[1]: Leaving directory '/home/ubuntu/git/apache/mesos/build/src'
> make: *** [Makefile:785: all-recursive] Error 1
> {code}
>  
> I follow the steps from [http://mesos.apache.org/documentation/latest/building/:]
> 1) git clone [https://github.com/apache/mesos.git]
> 2) ./bootstrap
> 3) mkdir build && cd build
> 4) ../configure
> 5) make -j 4



--
This message was sent by Atlassian Jira
(v8.3.4#803005)