We must join threads before completing ::shutdown,
because otherwise these threads might try to use
torn-down resources like the objecter.
The replay/recovery threads may be blocking on
journaler calls like wait_for_readable, so we
must signal them using Journaler::shutdown. In
order for that to be safe, we must also protect
the assignment of ::journaler from the threads
using the mds_lock.
Fixes: #11985
Signed-off-by: John Spray <john.spray@redhat.com>
`stopping` is true once the MDS has entered suicide(). During
this phase, any MDSIOContexts that are called (e.g. from objecter,
journaler) become no-ops.
Signed-off-by: John Spray <john.spray@redhat.com>
Add a ::stopping flag, set at start of suicide(),
that other contexts must inspect after taking
mds_lock.
This guards against the possibility of multiple
threads entering suicide, and more generally
against the possibility of other procedures
starting while we're in the middle of shutting down.
Signed-off-by: John Spray <john.spray@redhat.com>
Because consumers may be blocked on the on_readable
condition, it is necessary for Journaler to have
an explicit shutdown method that fires the completion
Signed-off-by: John Spray <john.spray@redhat.com>
The uudecode binary is used to build Java-related components, and
uudecode is provided by the sharutils package on all supported
RPM platforms. When building with "--without=cephfs_java",
sharutils is not needed.
Thanks to Nathan Cutler <ncutler@suse.cz> for going into the
details with me.
On OBS without this patch we get the error message:
[ 170s] -----------------------------------------------------------------
[ 170s] ----- building ceph.spec (user abuild)
[ 170s] -----------------------------------------------------------------
[ 170s] -----------------------------------------------------------------
[ 170s] + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature --define 'disturl obs://build.opensuse.org/home:osynge:ceph:wip:wip_obs_fedora/Fedora_20/c0bbbc1e62228ca956ac3d367edc4fba-master' /home/abuild/rpmbuild/SOURCES/ceph.spec
[ 170s] error: Failed build dependencies:
[ 170s] sharutils is needed by ceph-1:2+git.1435043747.c1bd02c-1.1.x86_64
With this patch we can build fedora 22 and fedora 20 rpms fine.
Signed-off-by: Owen Synge <osynge@suse.com>
Fix xio to work with commit 626360aa
"msg, ceph_osd: Support feature bits for all message type's local connection"
Signed-off-by: Vu Pham <vu@mellanox.com>
fix xio to work with the merge of pull request
" Removed unnecessary inclusion of iostream in several files #4707"
Signed-off-by: Vu Pham <vu@mellanox.com>
From context it is obvious that this section is about upgrading from Giant, not
Firefly, so change the version number to match Giant.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Wip writeback throttling for cache tiering
This patch is to do write back throttling for cache tiering, which is similar to what the Linux kernel does for page cache write back. A paramter 'cache_target_dirty_high_ratio' (default 0.6) is introduced as the high speed flushing threshold, while leave the 'cache_target_dirty_ratio' (default 0.4) to represent the low speed threshold. The flush speed is controlled by limiting the parallelism of flushing. The maximum parallelism under low speed is half of the parallelism under high speed. If there is at least one PG such that the dirty ratio beyond the high threshold, full speed mode is entered; If there is no PG such that dirty ratio beyond the low threshold, idle mode is entered; In other cases, slow speed mode is entered.
Signed-off-by: Mingxin Liu <mingxinliu@ubuntukylin.com>
Reviewed-by: Li Wang <liwang@ubuntukylin.com>
Suggested-by: Nick Fisk <nick@fisk.me.uk>
Tested-by: Kefu Chai <kchai@redhat.com>
osd: Improve feature bit handling and remove ancient checking including CHUNKY_SCRUB
Reviewed-by: Sage Weil <sweil@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
The test run for RBD_FEATURES=13 is fully covered by
RBD_FEATURES=45 and the pre deep-flatten cases are covered
by RBD_FEATURES=0 and 1.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
It is expensive to collect backtraces every time a lock is
checked in order to provide cycle backtraces. The backtraces
can be forced on for specific locks or globally via the new
config option "lockdep_force_backtrace".
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This test can take up to 20 minutes to execute, which is an order of
magnitude longer than other unit tests. This is slowing down the
build bots.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Feature present since at least the Dumpling release.
A later commit will add it to the osd_required mask
Signed-off-by: David Zafman <dzafman@redhat.com>
Feature present since at least the Dumpling release.
A later commit will add it to the osd_required mask
Signed-off-by: David Zafman <dzafman@redhat.com>
Feature present since at least the Dumpling release.
A later commit will add it to the osd_required mask
Signed-off-by: David Zafman <dzafman@redhat.com>
Feature present since at least the Dumpling release.
A later commit will add it to the osd_required mask
Signed-off-by: David Zafman <dzafman@redhat.com>
Feature present since at least the Dumpling release.
A later commit will add it to the osd_required mask
Fixes: #11661
Signed-off-by: David Zafman <dzafman@redhat.com>
This should have no practical effect unless we could have
features getting turned off in a later release, since we
can assume any features being checked for are supported locally.
Signed-off-by: David Zafman <dzafman@redhat.com>