We want to know how old the pools currently are, on which mgr/balancer
can make some time-related smart decisions based.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
We send ops until we get a EDQUOT, and then assert our next op to
a different object also gets EDQUOT. However, if the second osd
doesn't have as new a map it may succeed. Make sure the client has
the latest (mon) map, and thus the one marking the pool full, before
we send the second op. That ensures the second OSD also has that
newer map and also returns EDQUOT.
Fixes: http://tracker.ceph.com/issues/23917
Signed-off-by: Sage Weil <sage@redhat.com>
Fix for this cppcheck issue:
[src/common/TrackedOp.cc:385]: (style) The scope of the variable
'warned' can be reduced.
Actually it seems that warned was not set correctly anymore
after rewrite of the code. Set 'warned' in with_slow_ops_in_flight()
as already done with number of slow iops.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Jewel clients see
will not decode message of type 41 version 4 because compat_version 4 > supported version 3
The problem is when compat_version == 0 and head_version != 0, we
interpret compat_version == head_version. From Message::encode,
// if the encoder didn't specify past compatibility, we assume it
// is incompatible.
if (header.compat_version == 0)
header.compat_version = header.version;
Broken by 49833c3bb2 for the
head_version=4 case (compat_version needs to be 3).
Signed-off-by: Sage Weil <sage@redhat.com>
1. MOSDMap go with features indicating the features
this map encoded for.
2. Only reencode if significant bits mismatch between
target features and my features.
also update mon/OSDMonitor and osd/OSDService to adopt this change.
Signed-off-by: Xiaoxi CHEN <xiaoxchen@ebay.com>
Change the cache from
SimpleLRU<version_t, bufferlist> inc_osd_cache;
to
SimpleLRU<pair<version_t, uint64_t>, bufferlist> inc_osd_cache;
By doing this , we can cache several encoded osdmap for different
features, not necessary to re-encoding for each client.
Signed-off-by: Xiaoxi CHEN <xiaoxchen@ebay.com>
Since boost::threads support interruption by default locking over
boost::shared_mutexes may throw if the thread is interrupted. Replacing this by
std:: variant
Fixes: http://tracker.ceph.com/issues/23910
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- Do some minor improvements in the RGW client
- Do not catch ALL exceptions to do not block the current exception handler that prints the stack trace in the log file
- Throw RequestException istead of Exception when user does not have the required keys
Signed-off-by: Volker Theile <vtheile@suse.com>
Very similar to restful module. Cribbed from
earlier patch by @sebastian-philipp, this works
now because of the cherrypy 3.5.0 workaround
in the preceding commit.
This is missing the StandbyMgrModule part because
it is missing get_store for the moment.
Signed-off-by: John Spray <john.spray@redhat.com>
If a more recent version of cherrypy is in use
this should all Just Work, but this particular
buggy version happens to be in both Fedora 27
and Ubuntu Xenial, so for practical purposes
we need to handle it.
Signed-off-by: John Spray <john.spray@redhat.com>
* Enabled warnings that actually make sense
* Enabled `fixme` as we only have two left.
* Removed disable statements that use warning-ids
* Removed disable statements that are no longer needed
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
Both Locker::_do_cap_update() and Locker::_do_snap_update() can update
snap inode. But only the second function is called in the case that a
client has finished snap data writeback,
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>