Skip to content

Commit 5c1b470

Browse files
authored
Merge pull request ceph#61746 from adamemerson/wip-boost.1.87-fixes
Boost 1.87 Build Fixes Reviewed-by: Casey Bodley <[email protected]> Reviewed-by: Matan Breizman <[email protected]>
2 parents fee28b4 + 7b185ec commit 5c1b470

File tree

8 files changed

+23
-22
lines changed

8 files changed

+23
-22
lines changed

src/common/Graylog.cc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ void Graylog::set_destination(const std::string& host, int port)
3737
{
3838
try {
3939
boost::asio::ip::udp::resolver resolver(m_io_service);
40-
boost::asio::ip::udp::resolver::query query(host, std::to_string(port));
41-
m_endpoint = *resolver.resolve(query);
40+
m_endpoint = *resolver.resolve(host, std::to_string(port)).cbegin();
4241
m_log_dst_valid = true;
4342
} catch (boost::system::system_error const& e) {
4443
cerr << "Error resolving graylog destination: " << e.what() << std::endl;

src/exporter/DaemonMetricCollector.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,14 @@ void DaemonMetricCollector::request_loop() {
4848
dump_asok_metrics(sort_metrics, prio_limit, true, dump_response, schema_response, true);
4949
auto stats_period = g_conf().get_val<int64_t>("exporter_stats_period");
5050
// time to wait before sending requests again
51-
timer.expires_from_now(std::chrono::seconds(stats_period));
51+
timer.expires_after(std::chrono::seconds(stats_period));
5252
request_loop();
5353
});
5454
}
5555

5656
void DaemonMetricCollector::main() {
5757
shutdown_flag = false;
58-
timer.expires_from_now(std::chrono::seconds(0));
58+
timer.expires_after(std::chrono::seconds(0));
5959
request_loop();
6060
io.run();
6161
}

src/rgw/driver/rados/rgw_notify.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ class Manager : public DoutPrefixProvider {
178178
if (pending_tokens == 0) {
179179
return;
180180
}
181-
timer.expires_from_now(infinite_duration);
181+
timer.expires_after(infinite_duration);
182182
boost::system::error_code ec;
183183
timer.async_wait(yield[ec]);
184184
ceph_assert(ec == boost::system::errc::operation_canceled);
@@ -297,7 +297,7 @@ class Manager : public DoutPrefixProvider {
297297
<< ". error: " << ret << dendl;
298298
}
299299
Timer timer(io_context);
300-
timer.expires_from_now(std::chrono::seconds(reservations_cleanup_period_s));
300+
timer.expires_after(std::chrono::seconds(reservations_cleanup_period_s));
301301
boost::system::error_code ec;
302302
timer.async_wait(yield[ec]);
303303
}
@@ -380,7 +380,7 @@ class Manager : public DoutPrefixProvider {
380380
// if queue was empty the last time, sleep for idle timeout
381381
if (is_idle) {
382382
Timer timer(io_context);
383-
timer.expires_from_now(std::chrono::microseconds(queue_idle_sleep_us));
383+
timer.expires_after(std::chrono::microseconds(queue_idle_sleep_us));
384384
boost::system::error_code ec;
385385
timer.async_wait(yield[ec]);
386386
}
@@ -657,7 +657,7 @@ class Manager : public DoutPrefixProvider {
657657
const auto duration = (has_error ?
658658
std::chrono::milliseconds(queues_update_retry_ms) : std::chrono::milliseconds(queues_update_period_ms)) +
659659
std::chrono::milliseconds(duration_jitter(rnd_gen));
660-
timer.expires_from_now(duration);
660+
timer.expires_after(duration);
661661
const auto tp = ceph::coarse_real_time::clock::to_time_t(ceph::coarse_real_time::clock::now() + duration);
662662
ldpp_dout(this, 20) << "INFO: next queues processing will happen at: " << std::ctime(&tp) << dendl;
663663
boost::system::error_code ec;
@@ -743,7 +743,7 @@ class Manager : public DoutPrefixProvider {
743743
Timer timer(io_context);
744744
while (processed_queue_count > 0) {
745745
ldpp_dout(this, 5) << "INFO: manager stopped. " << processed_queue_count << " queues are still being processed" << dendl;
746-
timer.expires_from_now(std::chrono::milliseconds(queues_update_retry_ms));
746+
timer.expires_after(std::chrono::milliseconds(queues_update_retry_ms));
747747
boost::system::error_code ec;
748748
timer.async_wait(yield[ec]);
749749
}

src/test/common/test_ceph_timer.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ void run_orderly()
6666
});
6767
}
6868

69-
EXPECT_LT(first.get(), second.get());
69+
EXPECT_TRUE(first.get() < second.get());
7070
}
7171

7272
struct Destructo {

src/test/neorados/completions.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include <boost/asio/io_context.hpp>
2+
#include <boost/asio/post.hpp>
23

34
constexpr int max_completions = 10'000'000;
45
int completed = 0;
@@ -7,11 +8,11 @@ boost::asio::io_context c;
78

89
void nested_cb() {
910
if (++completed < max_completions)
10-
c.post(&nested_cb);
11+
boost::asio::post(c, &nested_cb);
1112
}
1213

1314
int main(void) {
14-
c.post(&nested_cb);
15+
boost::asio::post(c, &nested_cb);
1516
c.run();
1617
assert(completed == max_completions);
1718
return 0;

src/tools/immutable_object_cache/CacheClient.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace ceph {
2020
namespace immutable_obj_cache {
2121

2222
CacheClient::CacheClient(const std::string& file, CephContext* ceph_ctx)
23-
: m_cct(ceph_ctx), m_io_service_work(m_io_service),
23+
: m_cct(ceph_ctx), m_io_service_work(m_io_service.get_executor()),
2424
m_dm_socket(m_io_service), m_ep(stream_protocol::endpoint(file)),
2525
m_io_thread(nullptr), m_session_work(false), m_writing(false),
2626
m_reading(false), m_sequence_id(0) {
@@ -30,7 +30,7 @@ namespace immutable_obj_cache {
3030

3131
if (m_worker_thread_num != 0) {
3232
m_worker = new boost::asio::io_context();
33-
m_worker_io_service_work = new boost::asio::io_context::work(*m_worker);
33+
m_worker_io_service_work = new boost::asio::executor_work_guard<boost::asio::io_context::executor_type>(m_worker->get_executor());
3434
for (uint64_t i = 0; i < m_worker_thread_num; i++) {
3535
std::thread* thd = new std::thread([this](){m_worker->run();});
3636
m_worker_threads.push_back(thd);
@@ -299,7 +299,7 @@ namespace immutable_obj_cache {
299299
});
300300

301301
if (m_worker_thread_num != 0) {
302-
m_worker->post([process_reply]() {
302+
boost::asio::post(*m_worker, [process_reply]() {
303303
process_reply->complete(true);
304304
});
305305
} else {

src/tools/immutable_object_cache/CacheClient.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#define CEPH_CACHE_CACHE_CLIENT_H
66

77
#include <atomic>
8+
#include <boost/asio/executor_work_guard.hpp>
89
#include <boost/asio/io_context.hpp>
910
#include <boost/asio/local/stream_protocol.hpp>
1011
#include <boost/algorithm/string.hpp>
@@ -58,7 +59,7 @@ class CacheClient {
5859
private:
5960
CephContext* m_cct;
6061
boost::asio::io_context m_io_service;
61-
boost::asio::io_context::work m_io_service_work;
62+
boost::asio::executor_work_guard<boost::asio::io_context::executor_type> m_io_service_work;
6263
stream_protocol::socket m_dm_socket;
6364
stream_protocol::endpoint m_ep;
6465
std::shared_ptr<std::thread> m_io_thread;
@@ -67,7 +68,7 @@ class CacheClient {
6768
uint64_t m_worker_thread_num;
6869
boost::asio::io_context* m_worker;
6970
std::vector<std::thread*> m_worker_threads;
70-
boost::asio::io_context::work* m_worker_io_service_work;
71+
boost::asio::executor_work_guard<boost::asio::io_context::executor_type>* m_worker_io_service_work;
7172

7273
std::atomic<bool> m_writing;
7374
std::atomic<bool> m_reading;

src/tools/immutable_object_cache/CacheServer.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ int CacheServer::run() {
3535
return ret;
3636
}
3737

38-
boost::system::error_code ec;
39-
ret = m_io_service.run(ec);
40-
if (ec) {
41-
ldout(cct, 1) << "m_io_service run fails: " << ec.message() << dendl;
38+
try {
39+
ret = m_io_service.run();
40+
} catch (const std::exception& e) {
41+
ldout(cct, 1) << "m_io_service run fails: " << e.what() << dendl;
4242
return -1;
4343
}
4444
return 0;
@@ -66,7 +66,7 @@ int CacheServer::start_accept() {
6666
return -ec.value();
6767
}
6868

69-
m_acceptor.listen(boost::asio::socket_base::max_connections, ec);
69+
m_acceptor.listen(boost::asio::socket_base::max_listen_connections, ec);
7070
if (ec) {
7171
lderr(cct) << "failed to listen on domain socket: " << ec.message()
7272
<< dendl;

0 commit comments

Comments
 (0)