Project

General

Profile

Bug #22600

compilation failures with boost 1.66

Added by Casey Bodley over 1 year ago. Updated over 1 year ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
01/05/2018
Due date:
% Done:

0%

Source:
Tags:
Backport:
luminous
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:

Description

Boost 1.66 includes major updates to boost::asio, along with the first release of boost::beast. Both of these changes cause build issues with the beast frontend of radosgw.

/home/cbodley/ceph/src/rgw/rgw_asio_client.cc: In member function ‘virtual size_t rgw::asio::ClientIO::complete_header()’:                                                   
/home/cbodley/ceph/src/rgw/rgw_asio_client.cc:174:14: error: ‘using parser_type = boost::beast::http::request_parser<boost::beast::http::buffer_body> {aka class boost::beast
::http::parser<true, boost::beast::http::buffer_body, std::allocator<char> >}’ has no member named ‘is_keep_alive’; did you mean ‘keep_alive’?                               
   if (parser.is_keep_alive()) {                                                      
              ^~~~~~~~~~~~~                                            
              keep_alive                                                                                                                                                     
gmake[3]: *** [src/rgw/CMakeFiles/radosgw_a.dir/build.make:159: src/rgw/CMakeFiles/radosgw_a.dir/rgw_asio_client.cc.o] Error 1                                               
gmake[3]: *** Waiting for unfinished jobs....                                                                                                                                
/home/cbodley/ceph/src/rgw/rgw_asio_frontend.cc:67:3: error: invalid use of template-name ‘boost::asio::strand’ without an argument list                                     
   boost::asio::strand strand;                                              
   ^~~~~/home/cbodley/ceph/src/rgw/rgw_asio_client.cc: In member function ‘virtual size_t rgw::asio::ClientIO::complete_header()’:                                                   
/home/cbodley/ceph/src/rgw/rgw_asio_client.cc:174:14: error: ‘using parser_type = boost::beast::http::request_parser<boost::beast::http::buffer_body> {aka class boost::beast
::http::parser<true, boost::beast::http::buffer_body, std::allocator<char> >}’ has no member named ‘is_keep_alive’; did you mean ‘keep_alive’?                               
   if (parser.is_keep_alive()) {                                                      
              ^~~~~~~~~~~~~                                            
              keep_alive                                                                                                                                                     
gmake[3]: *** [src/rgw/CMakeFiles/radosgw_a.dir/build.make:159: src/rgw/CMakeFiles/radosgw_a.dir/rgw_asio_client.cc.o] Error 1                                               
gmake[3]: *** Waiting for unfinished jobs....                                                                                                                                
/home/cbodley/ceph/src/rgw/rgw_asio_frontend.cc:67:3: error: invalid use of template-name ‘boost::asio::strand’ without an argument list                                     
   boost::asio::strand strand;                                              
   ^~~~~

Related issues

Copied to rgw - Backport #22621: luminous: compilation failures with boost 1.66 Resolved

History

#2 Updated by Casey Bodley over 1 year ago

  • Status changed from New to Need Review

#3 Updated by Casey Bodley over 1 year ago

i'm conflicted about what to backport for luminous. there have been quite a few beast frontend changes in radosgw that haven't been backported (https://github.com/ceph/ceph/pull/17923 https://github.com/ceph/ceph/pull/17977 https://github.com/ceph/ceph/pull/18402 https://github.com/ceph/ceph/pull/19182 being the major ones), so luminous still targets an old branch of the beast submodule. that old beast code uses stuff in boost::asio that doesn't build against boost 1.66. so i think we either need to backport everything related to the beast frontend, or disable the build of it entirely - and i'm not particularly happy with either of those options

#4 Updated by Casey Bodley over 1 year ago

  • Status changed from Need Review to Pending Backport

#5 Updated by Casey Bodley over 1 year ago

  • Copied to Backport #22621: luminous: compilation failures with boost 1.66 added

#6 Updated by Nathan Cutler over 1 year ago

@Casey Is luminous really on boost 1.66? (I currently have no idea how to find out which boost version we're using, so I ask lamely. . . .)

#7 Updated by Casey Bodley over 1 year ago

Hi Nathan,

boost 1.66 added some breaking changes, so this pr fixed those and updated our cmake to require 1.66 (from 1.63). the luminous codebase won't currently build with boost 1.66, so we need to backport the same fixes there. and as a result, luminous will also require 1.66

(p.s. our cmake build will download/build the target boost version if the system package doesn't meet our version requirement)

#8 Updated by Nathan Cutler over 1 year ago

  • Status changed from Pending Backport to Resolved

Also available in: Atom PDF