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 \ |