This is a milestone in the CephFS shell project. QA testing is still in the
works and will be merged separately. Installation code via CMake will also be
written in another PR.
* refs/pull/23158/head:
doc: add cephfs-shell to cephfs doc index
cephfs-shell: add new CephFS shell
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
The CephFS shell is an alternative client to access CephFS without mounting in
the usual way. The shell provides commands to interactively access the file
system, like put, ls, chmod, etc.
Fixes: http://tracker.ceph.com/issues/24286
Signed-off-by: Pavani Rajula <rpavani1998@gmail.com>
common/assert: mark assert helpers with [[gnu::cold]]
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
use threadsafe for running the Mutex assert test to run the test from
beginning to avoid the hang. this test overrides the symbol of
ceph::__ceph_assert_fail() with a local one offered by the application
links against libceph-common. but we intentionally forbid this behavior:
we do not allow libceph-common to reference the symbols exposed from
application with the same name. see http://tracker.ceph.com/issues/25154
Signed-off-by: Kefu Chai <kchai@redhat.com>
cmake: fix std::filesystem detection and extract sanitizer detection into its own module
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Willem Jan Withagen <wjw@digiware.nl>
-ldl is not necessary if an application using dlopen() can compile and
link just fine without it.
same applies to -lrt, when it comes to time related calls.
Signed-off-by: Kefu Chai <kchai@redhat.com>
because RHEL/CentOS 7 only offers fmt-devel 3.0.2, while seastar
requires >= 4.0.0, < 5.0.0, and on openSUSE Leap 15, we have
libfmt-devel 5.x.
Signed-off-by: Kefu Chai <kchai@redhat.com>
FMT_VERSION is now living in fmt/core.h in libfmt >= 5.0, so we cannot
parse fmt/format.h for libfmt's version anymore. also we don't need
Findfmt.cmake now. because libfmt-dev 4.0 and up is required by seastar,
also it's libfmt-dev 3.x's cmake module which fails to offer fmt::fmt
target. in other words, it's safe to drop libfmt 3.x support. but 5.0.0
is not compatible with seastar, we will have failures like:
In file included from
/home/smithfarm/src/ceph/smithfarm/ceph/src/seastar/include/seastar/core/aligned_buffer.hh:25:0,
from
/home/smithfarm/src/ceph/smithfarm/ceph/src/seastar/include/seastar/core/reactor.hh:26,
from
/home/smithfarm/src/ceph/smithfarm/ceph/src/seastar/include/seastar/core/alien.hh:35,
from
/home/smithfarm/src/ceph/smithfarm/ceph/src/seastar/src/core/alien.cc:23:
/home/smithfarm/src/ceph/smithfarm/ceph/src/seastar/include/seastar/core/print.hh:
In function 'seastar::sstring seastar::format(const char*, A&& ...)':
/home/smithfarm/src/ceph/smithfarm/ceph/src/seastar/include/seastar/core/print.hh:135:10:
error: 'MemoryWriter' is not a member of 'fmt'
fmt::MemoryWriter out;
^~~~~~~~~~~~
/home/smithfarm/src/ceph/smithfarm/ceph/src/seastar/include/seastar/core/print.hh:136:5:
error: 'out' was not declared in this scope
out.write(fmt, std::forward<A>(a)...);
^~~
so, we should build libfmt even if we have libfmt-dev 5.x
Signed-off-by: Kefu Chai <kchai@redhat.com>
1. cryptopp-devel was moved to the distro-specific section by
aeb974b913, then
96196e9d77 reintroduced it in the
non-distro-specific section, breaking install-deps.sh for SUSE
2. fmt-devel is called libfmt-devel on SUSE
Fixes: install-deps.sh on SUSE
Signed-off-by: Nathan Cutler <ncutler@suse.com>
also, we don't need to pass '-lasan' or '-ltsan' to linker. it's
suggested to use the "-fsanitize=${sanitizer}".
please note, this module is compatible with the one used in seastar on
purpose, as seastar is included in ceph using add_subdirectory(), and it
in turn add its own cmake modules directory using list(APPEND ...), so
cmake/modules/FindSantitizers.cmake is prefered over
src/seastar/cmake/FindSantitizers.cmake.
Signed-off-by: Kefu Chai <kchai@redhat.com>
before this change, we fails to detect std::filesystem with clang++,
because the cmake project created by try_compile() only expands
following options passed from its caller:
- COMPILE_DEFINITIONS
- INCLUDE_DIRECTORIES
- LINK_DIRECTORIES
- LINK_LIBRARIES
which do not include CMAKE_CXX_FLAGS, so either we need to (ab)use
COMPILE_DEFINITIONS for passing -std=c++17, or we can change the
CMAKE_CXX_FLAGS in the parent env, as it turns out the created cmake
project does inherit this flag from current project. in this change,
we use the COMPILE_DEFINITIONS approach: simpler this way. and we
can drop it once cmake 3.8 is required.
Signed-off-by: Kefu Chai <kchai@redhat.com>
* refs/pull/23290/head:
tools/ceph-dencoder: include types.h with full path
tools/ceph-dencoder: move ceph-dencoder to tools/ceph-dencoder
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
When exec: ./do_cmake.sh -DALLOCATOR=jemalloc. Met the following
messages:
>> CMake Error at cmake/modules/FindJeMalloc.cmake:28 (endforeach):
endforeach An ENDFOREACH command was found outside of a proper FOREACH
ENDFOREACH structure. Or its arguments did not match the opening FOREACH
command.
>> Call Stack (most recent call first):
CMakeLists.txt:326 (find_package)
This bug introduce commit 8db629a14b.
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
Migrator checks MDSRank::is_cluster_degraded() to decide if it needs to
send message to other mds. MDSRank::cluster_degraded should get updated
before calling Migrator::handle_mds_failure_or_stop().
Introduced by commit 7de9da4a "mds: handle discontinuous mdsmap"
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
radosgw now uses 512 frontend threads by default, and valgrind won't
start with its default --max-threads=500
Fixes: http://tracker.ceph.com/issues/25214
Signed-off-by: Casey Bodley <cbodley@redhat.com>
* refs/pull/23195/head:
mds: use vector for context lists
common: make C_ContextsBase container agnostic
common: make finish_contexts container agnostic
mds: add vector def for MDS contexts
mds: use compact map to manage waiting list
Reviewed-by: Zheng Yan <zyan@redhat.com>
Prior to this change, the CephFS snapshot instructions were not clear
whether users should "mkdir" the ".snap" directory or not.
Update the documentation to clarify that users should make a directory
under .snap with a name of their choice.
Thanks to John Spray <jspray@redhat.com> on ceph-users for this
information.
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>