It was possible for unrelated ops to interleave within a different
transaction for a given object.
Fixes: #13313
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Fixes: #12958
Head objects are mutable, so removing them can race with object removal
and a later recreation, so we might end up cleaning them up when we don't
need to.
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
The KeyServer class has a public method get_auth() that returns a boolean
value. This value is being checked here - fix the conditional so it triggers
when get_auth() returns false.
http://tracker.ceph.com/issues/9756 References: #9756
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Otherwise, ops with need_promote() can order past ops without it
causing an rgw write sequence like:
writefull 0~0
writefull 0~512kb
write 512kb~512kb
to reorder to
writefull 0~0 -- delayed: full
writefull 0~512kb -- delayed: full
write 512kb~512kb -- promote and execute
writefull 0~0 -- execute
writefull 0~512kb -- execute
Fixes: 13240
Signed-off-by: Samuel Just <sjust@redhat.com>
os/FileStore: kludge sloppy hammer temp objects into temp collection
Reviewed-by: David Zafman <dzafman@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
This new command-line will dump all the processed events as they
are extracted from the trace file.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Avoid building the entire prep event history in memory before
attempting to write the prepped trace file.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Only track read-after-write and write-after-write IO dependencies
via the associated write completions. All IO events after a write
completion are considered to be dependent and can be pruned down
to at most the number of concurrent IOs. This reduces the prep
time from a simple 'rbd bench-write' from over 4 hrs down to seconds.
Fixes: #13378, #13384
Backport: hammer
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This test required root in order to copy its built
binary into /usr (presumably to avoid rebuilding it).
That's not really a good thing anyway because there's
no guarantee that a binary in that path is the binary
we wanted, so just run the thing straight out of /tmp. The
build is really quick anyway.
Signed-off-by: John Spray <john.spray@redhat.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
When we are running with a mixed hammer cluster, hammer primaries
will generate temp object names that are sloppy. Make sure we still
put them into the temp collection.
Note that this isn't a problem on write because the primary (hammer)
OSD generated the transaction and explicitly specified a temp
collection; it's only transactions we do on our own with the sloppy
temp ghobject_t that trip over this.
Fixes: #13395
Signed-off-by: Sage Weil <sage@redhat.com>
Since the main package and all the subpackages are built in the
same environment, concentrate all the BuildRequires in the main
package.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
"The --lazy-remove flag has been removed over 3 years ago. Docs need to be
updated."
http://tracker.ceph.com/issues/13317Fixes: #13317
Signed-off-by: Nathan Cutler <ncutler@suse.com>
We may be only calculating older past intervals and have a valid
history.same_interval_since value, in which case the local
same_interval_since value will end at the newest old interval we had to
generate.
This was introduced by 70316541bb.
Signed-off-by: Sage Weil <sage@redhat.com>
If there is a deep bug that prevents the object map from owning
the lock before objects are updated, flag the object map as invalid
regardless.
Fixes: #13372
Backport: hammer
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The SELinux man page was previously located in two places and the man
page that was supposed to be updated when rgw selinux changes were
proposed did not get updated properly. Fixing this by moving
selinux/ceph_selinux.8 to man/ceph_selinux.8. Also, populate EXTRA_DIST
with ceph_selinux.8.
Signed-off-by: Boris Ranto <branto@redhat.com>
A proxied session (see handle_forward) isn't registered, so it doesn't
need remove_session. Moreover, s->con is null, so it will crash in
remove_session.
Fixes: #13379
Signed-off-by: Sage Weil <sage@redhat.com>
It is possible that the ceph user/group will not have fixed UID/GID in SUSE.
Instead, it is possible that the ceph package will depend on a separate package
whose sole purpose will be to create the ceph user/group if they do not exist.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
The openSUSE Build Service runs a number of "post-build checks" after the RPMs
have been generated. One of these tests the RPM scriptlets for idempotence.
Without this line in the specfile, the check fails on SLE_12 because it cannot
find the systemd-tmpfiles binary.
http://tracker.ceph.com/issues/13375Fixes: #13375
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Currently, the main ceph package and the ceph-radosgw behave
differently on upgrade. This commit unifies their behavior
to the following:
On package removal, disable and stop all related systemd units.
On package upgrade, do nothing unless there is a file /etc/sysconfig/ceph
containing a parameter CEPH_AUTO_RESTART_ON_UPGRADE. If parameter is set
to "yes", restart the systemd units iff they are running.
Signed-off-by: Nathan Cutler <ncutler@suse.com>