The generic portion of on_change() cleaned up temporary on-disk objects
and requires a Transaction. The rest is clearing out in-memory state and
does not. Separate the two.
Signed-off-by: Sage Weil <sage@inktank.com>
A while ago we bumped the head version and reset the compat version to 0.
Doing this so happens to make the messenger assume that the message does
not support the compat versioning and sets the compat version to the head
version -- thus making compat = 2 when it should have been 1.
The nasty side-effect of this is that upgrading from emperor to firefly
will have emperor-leaders being unable to decode forwarded messages from
firefly-peons.
Fixes: #8727
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
MDS: Encode log events in a separate thread from main execution.
This is a first small step in multi-threading the MDS daemon.
Reviewed-by: Greg Farnum <greg@inktank.com>
Starting with the fast dispatch patches, we are calling the handle_connect
on loopback. Make sure we zap them on shutdown to break the Session <->
Connection ref cycle.
Signed-off-by: Sage Weil <sage@inktank.com>
This reverts commit ecda2fef8c.
This leaves Session* refs indefinitely in the map.
This was one source of #7995.
Signed-off-by: Sage Weil <sage@inktank.com>
- rbd-fuse depends on librados2/librbd1
- ceph-devel depends on specific releases of libs and libcephfs_jni1
- librbd1 depends on librados2
- python-ceph does not depend on libcephfs1
Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Instead of fragile assumptions about what pools
do or do not exist by default, simply use what
exists at test setup time as a baseline.
Fixes: #8751
Signed-off-by: John Spray <john.spray@redhat.com>
Since we removed the default 'data' and 'metadata' pools,
tests which need a pool should create it themselves.
Signed-off-by: John Spray <john.spray@redhat.com>
We observed that the WBThrottle perfcounters are leaking upwards
at a rate of around 50-100 ios_dirtied per day. The counters are
currently not decremented in clear_object, so that's the likely
explanation. Decrement them like elsewhere in WBThrottle.
Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
Now most of GenericObjectMap interfaces use header as argument not the union of
coll_t and ghobject_t. So caller should be responsible for maintain the
exclusive header.
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
In the performance statistic recently, the header lookup becomes the main time
consuming for the read/write operations. Most of time it occur 50% to deal with
header lookup, decode/encode logics.
Now adding header cache using SharedLRU structure which will maintain the header
cache and caller will get the pointer to the real header. It also avoid too much
header copy operations overhead.
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Patch up the CRUSH map compatibility guards
Reviewed-by: Loic Dachary <loic@dachary.org>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
Reviewed-by: Sage Weil <sage@redhat.com>
When we change the tunables, or set a new CRUSH map, we need to make sure it's
supported by all the monitors and OSDs currently participating in the cluster.
Fixes: #8738
Signed-off-by: Greg Farnum <greg@inktank.com>
We need to see if there's a feature which is not in the quorum_features,
not if there are no features in common!
Signed-off-by: Greg Farnum <greg@inktank.com>
Introduce a 'refs' subsys for logging. Print log ref count inc and dec
for any RefCountedObject that gets a cct passed to its ctor.
Signed-off-by: Sage Weil <sage@inktank.com>