Project

General

Profile

Bug #22600

compilation failures with boost 1.66

Added by Casey Bodley almost 5 years ago. Updated almost 5 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

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

History

#2 Updated by Casey Bodley almost 5 years ago

  • Status changed from New to Fix Under Review

#3 Updated by Casey Bodley almost 5 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

#4 Updated by Casey Bodley almost 5 years ago

  • Status changed from Fix Under Review to Pending Backport

#5 Updated by Casey Bodley almost 5 years ago

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

#6 Updated by Nathan Cutler almost 5 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. . . .)

#7 Updated by Casey Bodley almost 5 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)

#8 Updated by Nathan Cutler almost 5 years ago

  • Status changed from Pending Backport to Resolved

Also available in: Atom PDF