]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
PGTransaction,ReplicatedPG: clarify handling of noop operations
authorSamuel Just <sjust@redhat.com>
Wed, 23 Nov 2016 19:23:54 +0000 (11:23 -0800)
committerSamuel Just <sjust@redhat.com>
Fri, 2 Dec 2016 03:39:37 +0000 (19:39 -0800)
commitd6417f4c2de4fec16afe515d662a88ca66136b2a
tree82d9fc0b10aaa81240ba4fadc2345ff6a6331441
parent9e2645a8b3265bbde4f1e022a2adf022ff4bd2e3
PGTransaction,ReplicatedPG: clarify handling of noop operations

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>
src/osd/PGTransaction.h
src/osd/ReplicatedPG.cc