diff options
| -rw-r--r-- | recipes-extended/ceph/ceph/0001-rgw-beast-handle_connection-takes-io_context.patch | 67 | ||||
| -rw-r--r-- | recipes-extended/ceph/ceph_14.2.7.bb (renamed from recipes-extended/ceph/ceph_14.2.6.bb) | 39 |
2 files changed, 87 insertions, 19 deletions
diff --git a/recipes-extended/ceph/ceph/0001-rgw-beast-handle_connection-takes-io_context.patch b/recipes-extended/ceph/ceph/0001-rgw-beast-handle_connection-takes-io_context.patch new file mode 100644 index 00000000..d18e00a1 --- /dev/null +++ b/recipes-extended/ceph/ceph/0001-rgw-beast-handle_connection-takes-io_context.patch | |||
| @@ -0,0 +1,67 @@ | |||
| 1 | Backport patch from upstream and update context to fix compile error: | ||
| 2 | |||
| 3 | | /path/to/tmp-glibc/work/core2-64-wrs-linux/ceph/14.2.6-r0/ceph-14.2.6/src/rgw/rgw_asio_frontend.cc:165:38: error: 'class boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::executor>' has no member named 'get_io_context' | ||
| 4 | | 165 | auto y = optional_yield{socket.get_io_context(), yield}; | ||
| 5 | | | ~~~~~~~^~~~~~~~~~~~~~ | ||
| 6 | |||
| 7 | Upstream-Status: Backport [https://github.com/ceph/ceph/commit/064f142] | ||
| 8 | |||
| 9 | Signed-off-by: Kai Kang <kai.kang@windriver.com> | ||
| 10 | |||
| 11 | From 064f142746ae97f54865069cdacf5aae2b1b14f6 Mon Sep 17 00:00:00 2001 | ||
| 12 | From: Casey Bodley <cbodley@redhat.com> | ||
| 13 | Date: Tue, 23 Apr 2019 15:40:01 -0400 | ||
| 14 | Subject: [PATCH] rgw: beast handle_connection() takes io_context | ||
| 15 | |||
| 16 | as of boost 1.70, the socket no longer has a get_io_context(), so we | ||
| 17 | have to pass it in as an argument | ||
| 18 | |||
| 19 | Signed-off-by: Casey Bodley <cbodley@redhat.com> | ||
| 20 | --- | ||
| 21 | src/rgw/rgw_asio_frontend.cc | 9 +++++---- | ||
| 22 | 1 file changed, 5 insertions(+), 4 deletions(-) | ||
| 23 | |||
| 24 | diff --git a/src/rgw/rgw_asio_frontend.cc b/src/rgw/rgw_asio_frontend.cc | ||
| 25 | index 0e1e09a..f7c13e1 100644 | ||
| 26 | --- a/src/rgw/rgw_asio_frontend.cc | ||
| 27 | +++ b/src/rgw/rgw_asio_frontend.cc | ||
| 28 | @@ -84,7 +84,8 @@ class StreamIO : public rgw::asio::ClientIO { | ||
| 29 | using SharedMutex = ceph::async::SharedMutex<boost::asio::io_context::executor_type>; | ||
| 30 | |||
| 31 | template <typename Stream> | ||
| 32 | -void handle_connection(RGWProcessEnv& env, Stream& stream, | ||
| 33 | +void handle_connection(boost::asio::io_context& context, | ||
| 34 | + RGWProcessEnv& env, Stream& stream, | ||
| 35 | parse_buffer& buffer, bool is_ssl, | ||
| 36 | SharedMutex& pause_mutex, | ||
| 37 | rgw::dmclock::Scheduler *scheduler, | ||
| 38 | @@ -161,7 +162,7 @@ void handle_connection(RGWProcessEnv& env, Stream& stream, | ||
| 39 | rgw::io::add_conlen_controlling( | ||
| 40 | &real_client)))); | ||
| 41 | RGWRestfulIO client(cct, &real_client_io); | ||
| 42 | - auto y = optional_yield{socket.get_io_context(), yield}; | ||
| 43 | + auto y = optional_yield{context, yield}; | ||
| 44 | process_request(env.store, env.rest, &req, env.uri_prefix, | ||
| 45 | *env.auth_registry, &client, env.olog, y, scheduler); | ||
| 46 | } | ||
| 47 | @@ -605,7 +606,7 @@ void AsioFrontend::accept(Listener& l, boost::system::error_code ec) | ||
| 48 | return; | ||
| 49 | } | ||
| 50 | buffer->consume(bytes); | ||
| 51 | - handle_connection(env, stream, *buffer, true, pause_mutex, | ||
| 52 | + handle_connection(context, env, stream, *buffer, true, pause_mutex, | ||
| 53 | scheduler.get(), ec, yield); | ||
| 54 | if (!ec) { | ||
| 55 | // ssl shutdown (ignoring errors) | ||
| 56 | @@ -623,7 +624,7 @@ void AsioFrontend::accept(Listener& l, boost::system::error_code ec) | ||
| 57 | auto c = connections.add(conn); | ||
| 58 | auto buffer = std::make_unique<parse_buffer>(); | ||
| 59 | boost::system::error_code ec; | ||
| 60 | - handle_connection(env, s, *buffer, false, pause_mutex, | ||
| 61 | + handle_connection(context, env, s, *buffer, false, pause_mutex, | ||
| 62 | scheduler.get(), ec, yield); | ||
| 63 | s.shutdown(tcp::socket::shutdown_both, ec); | ||
| 64 | }); | ||
| 65 | -- | ||
| 66 | 2.20.1 | ||
| 67 | |||
diff --git a/recipes-extended/ceph/ceph_14.2.6.bb b/recipes-extended/ceph/ceph_14.2.7.bb index c213e1a5..18df8b4b 100644 --- a/recipes-extended/ceph/ceph_14.2.6.bb +++ b/recipes-extended/ceph/ceph_14.2.7.bb | |||
| @@ -13,10 +13,11 @@ SRC_URI = "http://download.ceph.com/tarballs/ceph-${PV}.tar.gz \ | |||
| 13 | file://ceph.conf \ | 13 | file://ceph.conf \ |
| 14 | file://0001-rgw-add-executor-type-for-basic_waitable_timers.patch \ | 14 | file://0001-rgw-add-executor-type-for-basic_waitable_timers.patch \ |
| 15 | file://0001-common-rgw-workaround-for-boost-1.72.patch \ | 15 | file://0001-common-rgw-workaround-for-boost-1.72.patch \ |
| 16 | file://0001-rgw-beast-handle_connection-takes-io_context.patch \ | ||
| 16 | " | 17 | " |
| 17 | 18 | ||
| 18 | SRC_URI[md5sum] = "10c22151123ce73b3fe49a6700fe24e0" | 19 | SRC_URI[md5sum] = "8100ce9820714554e6d4717f6f0aa4da" |
| 19 | SRC_URI[sha256sum] = "a1d20f2ba4e2d38a52f40e2e75e2ad136e78fa208b59348d3d45895cc4ca7e62" | 20 | SRC_URI[sha256sum] = "9606dc80553bd97e138cd80b6bbbc117b6b26c66248e490a4e49fc0d4d853862" |
| 20 | 21 | ||
| 21 | DEPENDS = "boost bzip2 curl expat gperf-native \ | 22 | DEPENDS = "boost bzip2 curl expat gperf-native \ |
| 22 | keyutils libaio libibverbs lz4 \ | 23 | keyutils libaio libibverbs lz4 \ |
| @@ -26,22 +27,22 @@ DEPENDS = "boost bzip2 curl expat gperf-native \ | |||
| 26 | valgrind xfsprogs zlib \ | 27 | valgrind xfsprogs zlib \ |
| 27 | " | 28 | " |
| 28 | SYSTEMD_SERVICE_${PN} = " \ | 29 | SYSTEMD_SERVICE_${PN} = " \ |
| 29 | ceph-radosgw@.service \ | 30 | ceph-radosgw@.service \ |
| 30 | ceph-radosgw.target \ | 31 | ceph-radosgw.target \ |
| 31 | ceph-mon@.service \ | 32 | ceph-mon@.service \ |
| 32 | ceph-mon.target \ | 33 | ceph-mon.target \ |
| 33 | ceph-mds@.service \ | 34 | ceph-mds@.service \ |
| 34 | ceph-mds.target \ | 35 | ceph-mds.target \ |
| 35 | ceph-osd@.service \ | 36 | ceph-osd@.service \ |
| 36 | ceph-osd.target \ | 37 | ceph-osd.target \ |
| 37 | ceph.target \ | 38 | ceph.target \ |
| 38 | ceph-rbd-mirror@.service \ | 39 | ceph-rbd-mirror@.service \ |
| 39 | ceph-rbd-mirror.target \ | 40 | ceph-rbd-mirror.target \ |
| 40 | ceph-volume@.service \ | 41 | ceph-volume@.service \ |
| 41 | ceph-mgr@.service \ | 42 | ceph-mgr@.service \ |
| 42 | ceph-mgr.target \ | 43 | ceph-mgr.target \ |
| 43 | ceph-crash.service \ | 44 | ceph-crash.service \ |
| 44 | rbdmap.service \ | 45 | rbdmap.service \ |
| 45 | " | 46 | " |
| 46 | OECMAKE_GENERATOR = "Unix Makefiles" | 47 | OECMAKE_GENERATOR = "Unix Makefiles" |
| 47 | 48 | ||
| @@ -69,10 +70,10 @@ do_configure_prepend () { | |||
| 69 | } | 70 | } |
| 70 | 71 | ||
| 71 | do_install_append () { | 72 | do_install_append () { |
| 72 | sed -i -e 's:${WORKDIR}.*python3:${bindir}/python:' ${D}${bindir}/ceph | 73 | sed -i -e 's:^#!/usr/bin/python$:&3:' \ |
| 73 | sed -i -e 's:${WORKDIR}.*python3:${bindir}/python:' ${D}${bindir}/ceph-crash | 74 | -e 's:${WORKDIR}.*python3:${bindir}/python3:' \ |
| 74 | sed -i -e 's:${WORKDIR}.*python3:${bindir}/python:' ${D}${bindir}/ceph-volume | 75 | ${D}${bindir}/ceph ${D}${bindir}/ceph-crash \ |
| 75 | sed -i -e 's:${WORKDIR}.*python3:${bindir}/python:' ${D}${bindir}/ceph-volume-systemd | 76 | ${D}${bindir}/ceph-volume ${D}${bindir}/ceph-volume-systemd |
| 76 | find ${D} -name SOURCES.txt | xargs sed -i -e 's:${WORKDIR}::' | 77 | find ${D} -name SOURCES.txt | xargs sed -i -e 's:${WORKDIR}::' |
| 77 | install -d ${D}${sysconfdir}/ceph | 78 | install -d ${D}${sysconfdir}/ceph |
| 78 | install -m 644 ${WORKDIR}/ceph.conf ${D}${sysconfdir}/ceph/ | 79 | install -m 644 ${WORKDIR}/ceph.conf ${D}${sysconfdir}/ceph/ |
| @@ -118,7 +119,7 @@ FILES_${PN}-python = "\ | |||
| 118 | ${PYTHON_SITEPACKAGES_DIR}/* \ | 119 | ${PYTHON_SITEPACKAGES_DIR}/* \ |
| 119 | " | 120 | " |
| 120 | RDEPENDS_${PN} += "\ | 121 | RDEPENDS_${PN} += "\ |
| 121 | python3 \ | 122 | python3-core \ |
| 122 | python3-misc \ | 123 | python3-misc \ |
| 123 | python3-modules \ | 124 | python3-modules \ |
| 124 | python3-prettytable \ | 125 | python3-prettytable \ |
