Ilya Dryomov [Mon, 4 Feb 2019 19:43:38 +0000 (20:43 +0100)]
qa: objectstore snippets for krbd
krbd was being tested with filestore, up until recently when the
default for osd_objectstore was changed to bluestore. This broke
rbd_simple_big.yaml because bluestore_block_size defaults to 10G.
Pick up the sepia setting of 90G from bluestore-bitmap.yaml.
Run fsx subsuite with both filestore and bluestore.
Yehuda Sadeh [Tue, 5 Feb 2019 00:35:20 +0000 (16:35 -0800)]
vstart.sh: fix params generation for monmaptool
Fixes: http://tracker.ceph.com/issues/38174
This broke in the msgr21 case, due to bash globbing in cases where
the generated string somehow matched names of certain files in local
directory. Also need to pass params to the prun function separately,
otherwise everything is quoted together.
Adam C. Emerson [Mon, 4 Feb 2019 18:08:20 +0000 (13:08 -0500)]
Merge pull request #25278 from ZVampirEM77/wip-deleteobject-policy
rgw: fix obj can still be deleted even if deleteobject policy is set
rgw: cleanup for RGWDeleteObj::verify_permission(
Reviewed-by: Pritha Srivastava <prsrivas@redhat.com> Reviewed-by: Adam C. Emerson <aemerson@redhat.com> Reviewed-by: Abhishek Lekshmanan <abhishek@suse.com> Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
Sage Weil [Thu, 31 Jan 2019 22:52:09 +0000 (16:52 -0600)]
msg/async/ProtocolV2: respect policy.resetcheck on cookie==0
It's possible the accepting end knows the cookie but the connecting end
does not if the fault happens before it receives server_ident. If the
next connection attempt is in the other direction, we need to avoid a
reset or the queued messages at the first site will get lost.
Fixes: http://tracker.ceph.com/issues/38118 Signed-off-by: Sage Weil <sage@redhat.com>
Kefu Chai [Thu, 31 Jan 2019 04:22:44 +0000 (12:22 +0800)]
common/pick_address: conditional compile for crimson
crimson can only update configuration async, so we cannot let
pick_addreses() call set_val_or_die() without chaning its function
signature.
for implementing crimson-osd, what we need is only a single
pick_addresses() variant, which returns entity_addrvec_t. so we just
enable it if WITH_SEASTAR is defined instead of adding a wrapper or
reimplement all pick_addresses() variants for crimson-osd.
Kefu Chai [Wed, 30 Jan 2019 08:35:55 +0000 (16:35 +0800)]
crimson/osd: define OSDMapService interface
* define OSDMapService interface to decouple the consumers of
this interface from its implementation -- the `OSD` class
* implement its methods in `OSD`
Sage Weil [Fri, 1 Feb 2019 18:43:03 +0000 (12:43 -0600)]
Merge PR #25703 into master
* refs/pull/25703/head:
os/bluestore: option to disable bluestore warns on spillover.
mon: expose object store health warnings
osd: expose object store alerts
os/bluestore: indicate BlueFS spillover and lacking compressor alerts
os:enable ObjectStore::statfs() api to return OS alert list.
Sage Weil [Fri, 1 Feb 2019 17:39:41 +0000 (11:39 -0600)]
os/bluestore/KernelDevice: use flock(2) for block device lock
The fcntl locks fail due to the classic posix lock gotcha: if you close
*any* fd to the same inode from the process, the lock(s) go away.
Use flock(2) instead. We have to be careful because we open the main
bluestore device via two KernelDevice instances: one for bluestore and
one for bluefs. Add a no-lock flag so that the bluefs instance does not
try to lock and does not conflict with bluestore's.
Fixes: http://tracker.ceph.com/issues/38150 Signed-off-by: Sage Weil <sage@redhat.com>
Volker Theile [Fri, 1 Feb 2019 10:12:34 +0000 (11:12 +0100)]
mgr: Use Py_BuildValue to create the argument tuple
Reduce the complexity of the code by using the generic function, Py_BuildValue(), that can create most common objects from C values, directed by a format string.
This option just suppresses the EIO errors. We still get the messages
in the logs, though. This can be useful when you are in dire straights
and prefer some data to no data.
J. Eric Ivancich [Thu, 31 Jan 2019 19:21:07 +0000 (14:21 -0500)]
rgw: `radosgw-admin bucket rm ... --purge-objects` can hang...
This command can hang (i.e., enter an infinite loop) due to
problematic bucket index entries left as a result of bug
https://tracker.ceph.com/issues/38007 .
The fix is to ignore the false bucket index entries -- since they do
not represent actual objects -- and remove all actual objects in the
bucket, so that bucket itself can be removed.
This fixes the both code paths whether `--bypass-gc` is specified or
not.
Furthermore, to made these operations more efficient, the internal
listing of the bucket is done unordered. This would improve behavior
when removing buckets with a large number of objects.
Fixes: http://tracker.ceph.com/issues/38134 Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
Patrick Donnelly [Thu, 31 Jan 2019 20:08:26 +0000 (12:08 -0800)]
Merge PR #26038 into master
* refs/pull/26038/head:
mds: simplify recall warnings
mds: add extra details for cache drop output
qa: test mds_max_caps_per_client conf
mds: limit maximum number of caps held by session
mds: adapt drop cache for incremental recall
mds: recall caps incrementally
mds: adapt drop cache for incremental trim
mds: add throttle for trimming MDCache
mds: cleanup SessionMap init
mds: cleanup Session init
Patrick Donnelly [Mon, 28 Jan 2019 23:48:38 +0000 (15:48 -0800)]
mds: simplify recall warnings
Instead of a timeout and complicated decisions about whether the client is
releasing caps in an expeditious fashion, just use a DecayCounter that tracks
the number of caps we've recalled. This counter is decremented whenever the
client releases caps. If the counter passes a threshold, then we raise the
warning.
Similar reworking is done for the steady-state recall of client caps. Another
release DecayCounter is added so we can tell when the client is not releasing
any more caps.
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
Patrick Donnelly [Wed, 30 Jan 2019 23:52:06 +0000 (15:52 -0800)]
mds: move session setup to ms_handle_accept
Session setup in ms_handle_authentication is (historically) racy where multiple
connections from the same client can come in before one is finally accepted. A
session should only be created after ms_handle_accept. The MDS did some
backflips before this commit to ensure this.
Moreover, with the msgr2 changes, it is even more necessary since the address
nonce is not set until before ms_handle_accept is called.
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>