[ 
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)

Reply via email to