]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd/PG: skip rollforward when !transaction_applied during append_log()
authorNeha Ojha <nojha@redhat.com>
Mon, 4 Mar 2019 04:29:05 +0000 (20:29 -0800)
committerNathan Cutler <ncutler@suse.com>
Wed, 15 May 2019 15:35:48 +0000 (17:35 +0200)
commit561fcfc1bc7e09150aa4db2a6e4db98b9f3234bd
treea1802c0a2c1652f3e38354f7563e5dda46345d0b
parentba7740c451c12fc3a7ad7e04cc515b35c5d3052a
osd/PG: skip rollforward when !transaction_applied during append_log()

Earlier, we did pg_log.roll_forward(&handler), when
!transaction_applied, which advanced the crt and trimmed the entries
in rollforward(). Due to this, during _merge_object_divergent_entries(),
when we tried to rollback entries, those objects were not found in the
backend, and thus we hit this bug http://tracker.ceph.com/issues/36739.

With this change, we are advancing the crt value, without deleting the
objects, so that _merge_object_divergent_entries() does not fail
because of deleted objects.

Fixes: http://tracker.ceph.com/issues/36739
Signed-off-by: Neha Ojha <nojha@redhat.com>
(cherry picked from commit 17419ee39342257f5a6f41c792e8e45a8e243720)
src/osd/PG.cc
src/osd/PGLog.h