Project

General

Profile

Bug #53129

Updated by Adam Kupczyk over 2 years ago

It is possible to create condition in which a BlueFS contains file that is corrupted. 
 It can happen when BlueFS replay log is on device A and we just wrote to device B and truncated file. 

 Scenario: 
 1) write to file h1 on SLOW device 
 2) flush h1 (initiate data transfer, (and trigger h1 mark to be added to bluefs replay log, but no fdatasync yet) 
 3) truncate h1 
 4) write to file h2 on DB 
 5) fsync h2 (forces replay log to be written, after fdatasync to DB) 
 6) poweroff 

 In result we have file h1 that is properly declared in replay log, but with uninitialized content. 
 This happens even with 
 https://tracker.ceph.com/issues/50965 
 applied. 

 I think it is regression introduced by above fix.

Back