1 Regressed by https://github.com/boostorg/date_time/commit/f9f2aaf5216c
3 src/rbd_replay/Replayer.cc:353:65: error: no matching conversion for functional-style cast from 'float' to 'boost::posix_time::microseconds' (aka 'subsecond_duration<boost::posix_time::time_duration, 1000000>')
4 boost::system_time sub_release_time(action_completed_time + boost::posix_time::microseconds(dep.time_delta * m_latency_multiplier / 1000));
5 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6 /usr/local/include/boost/date_time/time_duration.hpp:270:30: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'float' to 'const boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000>' for 1st argument
7 class BOOST_SYMBOL_VISIBLE subsecond_duration : public base_duration
9 /usr/local/include/boost/date_time/time_duration.hpp:270:30: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'float' to 'boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000>' for 1st argument
10 /usr/local/include/boost/date_time/time_duration.hpp:286:59: note: candidate template ignored: disabled by 'enable_if' [with T = float]
11 typename boost::enable_if<boost::is_integral<T>, void>::type* = 0) :
14 src/test/librbd/test_mock_Journal.cc:485:42: error: reference to '_1' is ambiguous
15 std::bind(&invoke_replay_complete, _1, 0));
17 /usr/local/include/boost/bind/placeholders.hpp:46:38: note: candidate found by name lookup is 'boost::placeholders::_1'
18 BOOST_STATIC_CONSTEXPR boost::arg<1> _1;
20 /usr/include/c++/v1/functional:2021:21: note: candidate found by name lookup is 'std::__1::placeholders::_1'
21 constexpr __ph<1> _1{};
24 --- src/rbd_replay/Replayer.cc.orig 2018-02-26 21:47:18 UTC
25 +++ src/rbd_replay/Replayer.cc
26 @@ -350,7 +350,7 @@ void Replayer::wait_for_actions(const action::Dependen
27 dout(DEPGRAPH_LEVEL) << "Finished waiting for " << dep.id << " after " << micros << " microseconds" << dendl;
28 // Apparently the nanoseconds constructor is optional:
29 // http://www.boost.org/doc/libs/1_46_0/doc/html/date_time/details.html#compile_options
30 - boost::system_time sub_release_time(action_completed_time + boost::posix_time::microseconds(dep.time_delta * m_latency_multiplier / 1000));
31 + boost::system_time sub_release_time(action_completed_time + boost::posix_time::microseconds(long(dep.time_delta * m_latency_multiplier / 1000)));
32 if (sub_release_time > release_time) {
33 release_time = sub_release_time;
35 --- src/mon/MDSMonitor.cc.orig 2020-05-28 07:26:02.363159480 +0200
36 +++ src/mon/MDSMonitor.cc 2020-05-28 07:28:02.559174989 +0200
39 #include <boost/utility.hpp>
40 #include <boost/regex.hpp>
41 +#include <boost/next_prior.hpp>
43 #include "MDSMonitor.h"
44 #include "FSCommands.h"
45 --- CMakeLists.txt.orig 2020-01-30 21:52:36.000000000 +0100
46 +++ CMakeLists.txt 2020-05-28 16:50:46.412927163 +0200
48 set(BOOST_HEADER_COMPONENTS container)
51 - list(APPEND BOOST_COMPONENTS python)
52 + list(APPEND BOOST_COMPONENTS python27)
54 if(WITH_BOOST_CONTEXT)
55 list(APPEND BOOST_COMPONENTS context coroutine)
56 --- src/CMakeLists.txt.orig 2020-01-30 21:52:36.000000000 +0100
57 +++ src/CMakeLists.txt 2020-05-28 20:58:47.848974172 +0200
59 $<TARGET_OBJECTS:heap_profiler_objs>)
60 target_include_directories(ceph-mgr PRIVATE "${PYTHON_INCLUDE_DIRS}")
61 target_link_libraries(ceph-mgr osdc client global-static common
62 - Boost::python ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS})
63 + Boost::python27 ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS})
64 install(TARGETS ceph-mgr DESTINATION bin)
67 --- src/test/librbd/test_mock_Journal.cc.orig 2020-01-30 21:52:36.000000000 +0100
68 +++ src/test/librbd/test_mock_Journal.cc 2020-05-29 06:26:16.934514447 +0200
70 expect_get_max_append_size(mock_journaler, 1 << 16);
72 mock_image_ctx, mock_journaler,
73 - std::bind(&invoke_replay_complete, _1, 0));
74 + std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
76 MockJournalReplay mock_journal_replay;
77 expect_stop_replay(mock_journaler);
79 expect_get_max_append_size(mock_journaler, 1 << 16);
81 mock_image_ctx, mock_journaler,
82 - std::bind(&invoke_replay_ready, _1));
83 + std::bind(&invoke_replay_ready, std::placeholders::_1));
85 ::journal::MockReplayEntry mock_replay_entry;
86 MockJournalReplay mock_journal_replay;
88 expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry);
89 expect_replay_process(mock_journal_replay);
90 expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry,
91 - std::bind(&invoke_replay_ready, _1));
92 + std::bind(&invoke_replay_ready, std::placeholders::_1));
93 expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry);
94 expect_replay_process(mock_journal_replay);
95 expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry,
96 - std::bind(&invoke_replay_complete, _1, 0));
97 + std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
99 expect_stop_replay(mock_journaler);
100 expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0);
102 expect_get_max_append_size(mock_journaler, 1 << 16);
104 mock_image_ctx, mock_journaler,
105 - std::bind(&invoke_replay_complete, _1, -EINVAL));
106 + std::bind(&invoke_replay_complete, std::placeholders::_1, -EINVAL));
108 MockJournalReplay mock_journal_replay;
109 expect_stop_replay(mock_journaler);
111 expect_get_max_append_size(mock_journaler, 1 << 16);
113 mock_image_ctx, mock_journaler,
114 - std::bind(&invoke_replay_complete, _1, 0));
115 + std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
117 expect_stop_replay(mock_journaler);
118 expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0);
119 @@ -649,14 +649,14 @@
120 expect_get_max_append_size(mock_journaler, 1 << 16);
122 mock_image_ctx, mock_journaler,
123 - std::bind(&invoke_replay_ready, _1));
124 + std::bind(&invoke_replay_ready, std::placeholders::_1));
126 ::journal::MockReplayEntry mock_replay_entry;
127 MockJournalReplay mock_journal_replay;
128 expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry);
129 expect_replay_process(mock_journal_replay);
130 expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry,
131 - std::bind(&invoke_replay_complete, _1, 0));
132 + std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
133 expect_stop_replay(mock_journaler);
134 expect_shut_down_replay(mock_image_ctx, mock_journal_replay, -EINVAL);
135 expect_flush_commit_position(mock_journaler);
137 expect_get_max_append_size(mock_journaler, 1 << 16);
139 mock_image_ctx, mock_journaler,
140 - std::bind(&invoke_replay_complete, _1, 0));
141 + std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
143 expect_stop_replay(mock_journaler);
144 expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0);
146 expect_get_max_append_size(mock_journaler, 1 << 16);
148 mock_image_ctx, mock_journaler,
149 - std::bind(&invoke_replay_ready, _1));
150 + std::bind(&invoke_replay_ready, std::placeholders::_1));
152 ::journal::MockReplayEntry mock_replay_entry;
153 MockJournalReplay mock_journal_replay;
155 expect_get_max_append_size(mock_journaler, 1 << 16);
157 mock_image_ctx, mock_journaler,
158 - std::bind(&invoke_replay_complete, _1, 0));
159 + std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
160 expect_stop_replay(mock_journaler);
161 expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0);
162 expect_flush_commit_position(mock_journaler);
164 expect_get_max_append_size(mock_journaler, 1 << 16);
166 mock_image_ctx, mock_journaler,
167 - std::bind(&invoke_replay_complete, _1, 0));
168 + std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
170 MockJournalReplay mock_journal_replay;
171 expect_stop_replay(mock_journaler);
175 mock_image_ctx, mock_journaler,
176 - std::bind(&invoke_replay_ready, _1));
177 + std::bind(&invoke_replay_ready, std::placeholders::_1));
179 ::journal::MockReplayEntry mock_replay_entry;
180 MockJournalReplay mock_journal_replay;
182 expect_get_max_append_size(mock_journaler, 1 << 16);
184 mock_image_ctx, mock_journaler, {
185 - std::bind(&invoke_replay_complete, _1, 0)
186 + std::bind(&invoke_replay_complete, std::placeholders::_1, 0)
189 expect_stop_replay(mock_journaler);
190 @@ -868,14 +868,14 @@
191 expect_get_max_append_size(mock_journaler, 1 << 16);
193 mock_image_ctx, mock_journaler,
194 - std::bind(&invoke_replay_ready, _1));
195 + std::bind(&invoke_replay_ready, std::placeholders::_1));
197 ::journal::MockReplayEntry mock_replay_entry;
198 MockJournalReplay mock_journal_replay;
199 expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry);
200 expect_replay_process(mock_journal_replay);
201 expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry,
202 - std::bind(&invoke_replay_complete, _1, 0));
203 + std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
204 expect_stop_replay(mock_journaler);
206 Context *on_flush = nullptr;
208 expect_get_max_append_size(mock_journaler, 1 << 16);
210 mock_image_ctx, mock_journaler,
211 - std::bind(&invoke_replay_complete, _1, 0));
212 + std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
214 expect_stop_replay(mock_journaler);
215 expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0);
216 --- src/test/lazy-omap-stats/lazy_omap_stats_test.cc.orig 2020-01-30 21:52:36.000000000 +0100
217 +++ src/test/lazy-omap-stats/lazy_omap_stats_test.cc 2020-05-29 08:04:42.179189658 +0200
219 vector<string> tokens(tok.begin(), tok.end());
220 auto it = find(tokens.begin(), tokens.end(), label);
221 if (it != tokens.end()) {
222 - return distance(tokens.begin(), it);
223 + return std::distance(tokens.begin(), it);
226 cerr << "find_index failed to find index for " << label << endl;