Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

osd: fixes to make rbd on ec work #12305

Merged
merged 14 commits into from Dec 5, 2016
Merged

Conversation

athanatos
Copy link
Contributor

No description provided.

…ned offset

Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
The offending transaction was [call rbd.copyup,delete] on a non-existent
object.  PGTransaction incorrectly ended up with Create and delete_first
causing a transaction beginning with trying to collection_move_rename a
non-existent head object.  In fact, if we delete an object which the
transaction currently claims to be creating, the transaction should show
as empty (for that object).  Rather than going through the normal write
pipeline for that case, let's just record a 0 error code in the log and
call it a day.  That way, the transaction generating code only needs to
worry about about updates to actual objects.

Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
If the state is flipped, ops already in the pipeline need to
continue to maintain it.

Signed-off-by: Samuel Just <sjust@redhat.com>
This way, the replies come back in order and we don't expose
uncommitted results.

Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
This way, we can deal with waiting_for_commit appropriately.
Also, add more debugging to new_repop and already_*.

Signed-off-by: Samuel Just <sjust@redhat.com>
This was always a pretty silly concept and it has gotten in
the way of something else.

Signed-off-by: Samuel Just <sjust@redhat.com>
Up to now, the repop machinery depended on all repops commiting and
applying in order.  For MOSDPGUpdateLogMissing operations, however,
we don't really want to send two messages in the ECBackend case.
Instead, just allow those repops to skip the applied stage and be
completed in order once the repops ahead of them finish.

Signed-off-by: Samuel Just <sjust@redhat.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
…e op

This isn't really important, but it's nice to be consistent with
OSD::reply_op_error.  Yet another reason to do away with the ack flag.

Signed-off-by: Samuel Just <sjust@redhat.com>
Now that repops can represent an error, we need to remember
the error code so that we can reply to waiting_for_* messages
with the right value.

Signed-off-by: Samuel Just <sjust@redhat.com>
@athanatos
Copy link
Contributor Author

@athanatos
Copy link
Contributor Author

Merge ceph/ceph-qa-suite#1299 at the same time.

@liewegas liewegas changed the title Fixes to make rbd on ec work osd: fixes to make rbd on ec work Dec 5, 2016
@liewegas liewegas merged commit 2041a18 into ceph:master Dec 5, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants