Skip nonexistent 'expected' Python packaging files, and add bin/ as
a possible file for symlinking during build (for Python projects with
slightly different forms, currently ceph-volume)
Signed-off-by: Dan Mick <dan.mick@redhat.com>
Fixes coverity Issue:
** 717297 Uninitialized scalar field
2. uninit_member: Non-static class member handle is not initialized in this constructor nor in any functions that it calls.
4. uninit_member: Non-static class member version is not initialized in this constructor nor in any functions that it calls.
CID 717297 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
6. uninit_member: Non-static class member oldest_version is not initialized in this constructor nor in any functions that it calls.
Signed-off-by: Amit Kumar amitkuma@redhat.com
Fixes coverity Issue:
** 717296 Uninitialized scalar field
CID 717296 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
2. uninit_member: Non-static class member handle is not initialized in this constructor nor in any functions that it calls.
Signed-off-by: Amit Kumar amitkuma@redhat.com
Fixes coverity Issue:
** 717293 Uninitialized scalar field
2. uninit_member: Non-static class member table is not initialized in this constructor nor in any functions that it calls.
4. uninit_member: Non-static class member op is not initialized in this constructor nor in any functions that it calls.
CID 717293 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
6. uninit_member: Non-static class member reqid is not initialized in this constructor nor in any functions that it calls.
Signed-off-by: Amit Kumar amitkuma@redhat.com
We might use 'ceph-disk prepare --crush-device-class' to specify a class
for an OSD and then manually change its class to quite another.
This will prevent OSD from booting on next startup:
mon_cmd_maybe_osd_create fail: 'osd.2 has already bound to class 'class2', can not reset class to 'class1'; use 'ceph osd crush rm-device-cl
ass <osd>' to remove old class first': (16) Device or resource busy
2017-08-04 15:52:41.997158 7f7c55aa4d00 -1 osd.2 231 init unable to update_crush_device_class: (16) Device or resource busy
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
The default constructed pg_missing_t for a peer with no missing
objects resets may_include_deletes to false, so when missing items for
lost deletes should be added later, they are not, and the old
version of the lost object is left on the replica.
Fix this by always setting may_include_deletes upon entering the
GetMissing state, and using clear() rather than the default
constructor to create an empty missing set.
This only affects lost_unfound delete since it is the only way for a
peer to gain missing delete entries. If the peer starts out missing
some objects, its missing set sent over the wire is used instead, with
the correct setting for may_include_deletes.
Fixes: http://tracker.ceph.com/issues/20904
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
This ensures that in-progress transactions with deferred writes queue their
IO immediately. Otherwise, we may end up waiting indefinitely.
This is a biggish hammer.
Signed-off-by: Sage Weil <sage@redhat.com>
The current code only allows two DeferredBatches per osr: one that is
accumulating new writes and one that is currently in flight to disk. If
the previous batch is in flight ot disk, then the currently accumulating
one can't also be queued for disk.
This can cause problems, notably that described in
http://tracker.ceph.com/issues/20295, where one transaction is trying to
grab deferred_throttle but cannot due to other in-progress txcs that
include deferred IO. The short version is that it cannot queue all of the
IO needed, and that later when the IO does complete it is awkward to
determine whether other IO queued behind it also needs to be queued
immediately. And since it's not, this leads to a deadlock/stall.
Simply allowing multiple batches of IO to be in flight at once is a simple
fix. Specifically, in queue_transactions(), if throttle_deferred_bytes
get_or_fail() fails, we can now deferred_submit_all() and be sure that
other IO will be submitted and thus complete and release the throttle that
we need to continue.
It is possible that the deferred_aggressive behavior could be simplified
now that the old restriction is dropped, but that needs a closer review
of the code.
Fixes: http://tracker.ceph.com/issues/20295
Signed-off-by: Sage Weil <sage@redhat.com>
This introduces a new "rbd/singleton-bluestore" suite because creating an rbd
on an EC-backed datapool will fail on filestore.
References: http://tracker.ceph.com/issues/20295
Signed-off-by: Nathan Cutler <ncutler@suse.com>
I can't for the life of me figure out what this is supposed to do.
- why remove (some) classes right after we populated them?
- why remove them after we decode the crush map?
Signed-off-by: Sage Weil <sage@redhat.com>
1- a decompiled and recompiled was parsing the class bucket ids but it
wasn't actually using them.
2- rebuild_roots_with_classes() was throwing out the old ids and assigning
new ids when the tree was rebuilt.
Fix by passing in a (potentially partial) class_bucket map into
populate_classes(). Take care to allocate new bucket ids that don't
collide with previously used ids.
Signed-off-by: Sage Weil <sage@redhat.com>
The loop in write_fd stops at IOV_MAX-1; it could go to IOV_MAX
and write in more-natural sizes without extra tail writes.
Fixes: http://tracker.ceph.com/issues/20907
Signed-off-by: Dan Mick <dan.mick@redhat.com>
* refs/remotes/upstream/pull/16766/head:
cephfs: Clarify health warning
cephfs: Always print filesystem name
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>