A standby-replay daemon always has a rank, so this check is completely
wrong. If a beacon from a standby-replay daemon reaches
MDSMonitor::prepare_beacon, it will always be evicted/removed by the
mons. This is rare (usually a reply occurs directly from
MDSMonitor::preprocess_beacon) but can happen in certain circumstances,
like a health warning included in the beacon.
Fixes: https://tracker.ceph.com/issues/56666
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
collection default has pool(0), and NO_SHARD,
so the ghobject_t should have the same setting.
and ghobject_t default hash not within 1<<(32-4),
so set collection bits to be 0.
Signed-off-by: chunmei-liu <chunmei.liu@intel.com>
boost changes the way how it prints boost::system::system_error in
boost 1.79 -- it appends the stringified error_category at end of
exception::what(), and our buffer::malformed_input is a subclass
of boost::system::system_error.
so we cannot just compare the return value of what() with the
expected string, to be more future proof, let's check if i
starts with the expected string instead.
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
to avoid the conflicting declaration of NTSTATUS from bcrypt.h and our
own typedef. as after switching to boost 1.79, we would have following compiling
failure:
In file included from ../src/dokan/options.cc:14:
../src/dokan/ceph_dokan.h:16:15: error: conflicting declaration 'typedef DWORD NTSTATUS'
16 | typedef DWORD NTSTATUS;
| ^~~~~~~~
In file included from ../build.deps/mingw/boost/include/boost/asio/impl/connect_pipe.ipp:29,
from ../build.deps/mingw/boost/include/boost/asio/connect_pipe.hpp:79,
from ../build.deps/mingw/boost/include/boost/asio.hpp:64,
from ../src/include/win32/winsock_wrapper.h:20,
from <command-line>:
/usr/share/mingw-w64/include/bcrypt.h:27:16: note: previous declaration as 'typedef LONG NTSTATUS'
27 | typedef LONG NTSTATUS,*PNTSTATUS;
| ^~~~~~~~
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
m_promotion_state == PROMOTION_STATE_NON_PRIMARY doesn't say anything
about the remote image. It could still be primary but it could also be
demoted.
Fixes: https://tracker.ceph.com/issues/56676
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Validate subvolume discover on upgrade from
legacy subvolume to v1. The handcrafted
`.meta' file on legacy subvolume root should
not be used for any subvolume apis like getpath,
authorize.
Signed-off-by: Kotresh HR <khiremat@redhat.com>
In some case, `m` will be moved and setted nullptr before
`m->get_spg()` be called, causing a segmentation fault.
Signed-off-by: luo rixin <luorixin@huawei.com>
Fixes the subvolume discover to use the correct
metadata file after an upgrade from legacy subvolume
to v1. The fix makes sure, it doesn't use the
handcrafted metadata file placed in the subvolume
root of legacy subvolume.
Co-authored-by: Arthur Outhenin-Chalandre <arthur.outhenin-chalandre@cern.ch>
Co-authored-by: Dan van der Ster <daniel.vanderster@cern.ch>
Co-authored-by: Ramana Raja <rraja@redhat.com>
Signed-off-by: Kotresh HR <khiremat@redhat.com>
* append latest dirty tail as journal delta, in order to simplify and
drop journal_tail_committed in the cleaner.
* simplify misc journal tails into alloc_tail and dirty_tail, with
proper renaming.
* move journal-tail recovery logic from cleaner to journal.
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>