Project

General

Profile

Actions

Bug #213

closed

non-idempotent transactions (clone) under ext3 may not replay correct result

Added by Sage Weil almost 14 years ago. Updated over 12 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
OSD
Target version:
% Done:

0%

Source:
Tags:
Backport:
Regression:
Severity:
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

The writeahead journaling will restore the store to a known state regardless of which operations have committed, but only if the transactions are idempotent. i.e. can be repeated and still end up at a known result. This is true of all the normal operations (remove, write, truncate, setxattr, etc., but not for clone and clone_range. E.g.,

clone foo_head -> foo_2
write foo_head

will put the old head content in _2, but if it is replayed _2 will contain the new _head content. Meh!

How to fix? We could mark which transaction are non-idempotent, and sync the store before applying them.. that's expensive, but possibly the price you pay for not using btrfs! :)


Related issues 1 (0 open1 closed)

Related to Ceph - Bug #2098: xfs/ext4 non-idempotent transactionResolvedSage Weil02/23/2012

Actions
Actions

Also available in: Atom PDF