While submitting the log line asyncronously is reasonable,
with this implementation the EntryVector &q parameter does
not necessarily outlive the submission continuation.
This reverts commit
511af83e2747361350b60ce0ce88e67a726d9343.
Fixes: https://tracker.ceph.com/issues/64140
Signed-off-by: Samuel Just <sjust@redhat.com>
}
void CnLog::_flush(EntryVector& q, bool crash) {
- std::ignore = seastar::alien::submit_to(inst, shard, [&q] {
+ // XXX: the waiting here will block the thread for an indeterministic peroid
+ seastar::alien::submit_to(inst, shard, [&q] {
for (auto& it : q) {
crimson::get_logger(it.m_subsys).log(
crimson::to_log_level(it.m_prio),
it.strv());
}
return seastar::make_ready_future<>();
- });
+ }).wait();
q.clear();
return;
}