The had_map_since always sticks to the timestamp
of the last map we ever updated. So this shall ease
CPU a liitle when the set of maps gets huge.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
The heartbeat_check() logic requires heartbeat_lock only, so it shall
work without osd_lock in hand. By doing this, we avoid the latency to
acquire the big osd_lock and does heartbeat_check() much accurately.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
The rbd-mirror daemon will use this API to delete images instead
of attempting to use the local image name.
Fixes: http://tracker.ceph.com/issues/16227
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
When testing < v10.2.1 with standby replay, I was often confused why the
MDS daemons would go into replay even when this was false.
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
os/bluestore: get rid off blob's ref_map for non-shared objects
Mark's Comments:
This passed Jenkins checks.
This PR did not appear to have a significant impact on performance tests.
This initially failed "ceph_test_objectstore --gtest_filter=*/2" segfaulting in one of the tests. See the attached log in the comments for the PR for details. Subsequent reruns passed, and a run through valgrind's memcheck also passed. Igor indicated that he has seen this particular segfault previously and believes it is related to running out of memory. Given that the PR has passed the object store tests multiple times and the segfault has been observed in the past, I believe this PR is unrelated.
Reviewed-by: Mark Nelson <mnelson@redhat.com>
allows the default zone and zonegroup (created with empty realm_id) to
be later added to a realm. the 'modify' command now accepts either
--realm_id=id or --rgw-realm=name
Fixes: http://tracker.ceph.com/issues/16839
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Since FSMap was added, the state of a daemon can lead
to an entirely invalid map, but we were letting daemons
send any state they wanted.
Especially, we must not allow standby daemons to set
any state other than STANDBY.
Fixes: http://tracker.ceph.com/issues/16592
Signed-off-by: John Spray <john.spray@redhat.com>
When a primiry image is being deleted, the mirrored image might
temporary be reported in error state, before deletion is propagated.
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- log to stderr;
- log status if a `wait_for` function failed;
- don't needlessly sleep in `wait_for` functions after the last
unsuccessful iteration;
- make `wait_for_pool_images` work for image removal case;
- fix `wait_for_pool_images` reset timeout (last_count set).
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
we should avoid exposing non-public symbols from user facing dynamic
libraries. so pass '--exclude-libs' with appropriate argument to linker.
as libcephfs does not add the ((visibility ("default"))) specifier to
the exported symbols, we can not set the default visiblity to hidden for
libcephfs, and "-export-symbols-regex" is a libtool option, we need to
develop a way for cmake to fix the visibility of libcephfs. it's still a
TODO.
* librados
- pass '--exclude-libs=ALL' to linker
- add buffer.cc to librados, so we can use '--exclude-libs=ALL'.
* libcephfs: pass '--exclude-libs=libcommon.a,libclient.a,libosdc.a' to
linker
* libcommon
- extract common_buffer_obj from libcommon, to avoid compilation
this source file repeatly.
* tests:
- link against common_internal_objs explicitly if the test in
question is using the internal symbols.
* ceph-client-debug:
- link against client explicitly, and do not link against librados
anymore, as it is not used in this tool.
Fixes: http://tracker.ceph.com/issues/16556
Signed-off-by: Kefu Chai <kchai@redhat.com>
for example, json_spirit uses common_utf8, so link json_spirit against common_utf8.
because libcommon includes json_spirit, this change does not impact the
consumers of libcommon.
Signed-off-by: Kefu Chai <kchai@redhat.com>
The _load() process can fail. By detecting there error
cases earlier, we can avoid other weird failure cases
later.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
If the specified osd is not down or doesn't exist, we shall
return error instead of success. So caller can abort(if does not exist)
or mark osd as down and retry(if not down).
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
The is_up() check implicitly coveres the exist() check,
so below here the exist() check is not necessary.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>