`set +o` prints out the full command line which is echoed if "xtrace" is
enabled. this increases the verbosity of get_timeout_delays().
in this change, we follow the way of kill_daemons() to kill the extra
output. see aefcf6d.
Signed-off-by: Kefu Chai <kchai@redhat.com>
Since we have only one constructor, just use default initialization for
every member that doesn't depend on an argument.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
This has always been a bug, but until
68defc2b05, nothing deleted those contexts
without calling complete().
Fixes: http://tracker.ceph.com/issues/18809
Bug shadowed until: 68defc2b05
Signed-off-by: Samuel Just <sjust@redhat.com>
msg: allow different ms type for cluster network and public network
Reviewed-by: Adir Lev <adirl@mellanox.com>
Reviewed-by: Sage Weil <sage@redhat.com>
If we only fill OSDs to 95%, we should factor that into
the MAX AVAIL calculation for the pool.
Fixes: http://tracker.ceph.com/issues/18522
Signed-off-by: Sage Weil <sage@redhat.com>
On a busy cluster, the PGMap will turn over every 1-2 seconds and
OSDs will report PG stats every 5-10 seconds. Averaging over only
two PGMap versions (2-4 seconds) will lead to erratic and spikey
delta values. Move to 6 versions (6-12 seconds) to better match
the reporting interval while still keeping the values somewhat
responsive.
Signed-off-by: Sage Weil <sage@redhat.com>
This is mirrored in shard_info, which we have a pointer to.
Note that shard_info is also a bit redundant as we can also look it up in
the onode vector in the same position, but it makes it more awkward to use
iterators. Something to consider later to save memory.
Signed-off-by: Sage Weil <sage@redhat.com>
Only reshard extents in the requested range.
Note that the strategy for unspanning blobs changed; we now span or
unspan specific blobs at the end based on our reshard result instead
of unspanning all at the start. This keeps the spanning id stable,
which is important because it may be referenced from another that
we aren't even looking at.
Also note that this requires a bit of restructuring: an encode_some may
hit a spanning shard, *requiring* us to reshard, which means we should
always conduct the initial pass through update to discover other reshard
requirements, even if we already know some resharding will be needed.
Signed-off-by: Sage Weil <sage@redhat.com>
If Thrasher.__init__() spawns the do_thrash thread before initializing the
ceph_objectstore_tool property, do_thrash races with the rest
of Thrasher.__init__() and in some cases do_thrash can call kill_osd() before
Trasher.__init__() progresses much further. This can lead to an exception
("AttributeError: Thrasher instance has no attribute 'ceph_objectstore_tool'")
being thrown in kill_osd().
This commit eliminates the race by making sure the ceph_objectstore_tool
attribute is initialized before the do_thrash thread is spawned.
Fixes: http://tracker.ceph.com/issues/18799
Signed-off-by: Nathan Cutler <ncutler@suse.com>
This is intended to allow an "extra" unparsed argument string
containing various cmdline options to be passed as the last argument
in the argv array of librgw_create(), which nfs-ganesha is
expecting to happen.
While at it, hook env_args() too.
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
This ensure we mop up shards past EOF instead of encoding them
empty and confusing future code (that, say, assumes no shards past
EOF).
Signed-off-by: Sage Weil <sage@redhat.com>