Merge pull request #44147 from rzarzynski/wip-crimson-new-seastar

crimson: bump up Seastar to recent master and fix FTBFS

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Chunmei Liu <chunmei.liu@intel.com>
This commit is contained in:
Kefu Chai 2021-12-08 08:56:11 +08:00 committed by GitHub
commit b03d3d9165
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 2 deletions

View File

@ -21,6 +21,13 @@ public:
template <typename Func, typename Result = std::invoke_result_t<Func>>
seastar::futurize_t<Result> with_lock(Func&& func) {
// newer versions of Seastar provide two variants of `with_lock`
// - generic, friendly towards throwing move constructors of Func,
// - specialized for `noexcept`.
// unfortunately, the former has a limitation: the return value
// of `Func` must be compatible with `current_exception_as_future()`
// which boils down to returning `seastar::future<void>`.
static_assert(std::is_nothrow_move_constructible_v<Func>);
return seastar::with_lock(mutex, std::forward<Func>(func));
}

View File

@ -432,7 +432,8 @@ seastar::future<> AlienStore::do_transaction(CollectionRef ch,
std::move(done),
[this, ch, id] (auto &txn, auto &done) {
AlienCollection* alien_coll = static_cast<AlienCollection*>(ch.get());
return alien_coll->with_lock([this, ch, id, &txn, &done] {
// moving the `ch` is crucial for buildability on newer S* versions.
return alien_coll->with_lock([this, ch=std::move(ch), id, &txn, &done] {
Context *crimson_wrapper =
ceph::os::Transaction::collect_all_contexts(txn);
assert(tp);

@ -1 +1 @@
Subproject commit f43e1b1a4174caf9c507e1cfbece252a95dfd467
Subproject commit e692a2d3fcf5593b7a00ab6900ee7e7762f989ac