Project

General

Profile

Actions

Bug #22600

closed

compilation failures with boost 1.66

Added by Casey Bodley over 6 years ago. Updated about 6 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
luminous
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

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 1 (0 open1 closed)

Copied to rgw - Backport #22621: luminous: compilation failures with boost 1.66ResolvedCasey BodleyActions
Actions #2

Updated by Casey Bodley over 6 years ago

  • Status changed from New to Fix Under Review
Actions #3

Updated by Casey Bodley over 6 years 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

Actions #4

Updated by Casey Bodley over 6 years ago

  • Status changed from Fix Under Review to Pending Backport
Actions #5

Updated by Casey Bodley over 6 years ago

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

Updated by Nathan Cutler over 6 years 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. . . .)

Actions #7

Updated by Casey Bodley over 6 years 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)

Actions #8

Updated by Nathan Cutler about 6 years ago

  • Status changed from Pending Backport to Resolved
Actions

Also available in: Atom PDF