[LU-16887] scrub does not handle OI->wrong inode situation Created: 09/Jun/23  Updated: 20/Jun/23  Resolved: 20/Jun/23

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: Lustre 2.16.0

Type: Bug Priority: Minor
Reporter: Alexander Boyko Assignee: Alexander Boyko
Resolution: Fixed Votes: 0
Labels: patch

Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

The simple case when file is removed with ldiskfs mount leads to situation when OI exist and points to inode, but inode is reused. For such fid osd_fid_lookup() will always return EINPROGRESS. Scrub doesnot handle this problem.
The next check compares two oi records(from inconsistent list and a fresh oi from fid) and decides that oi is fine. But unfortunately it was added to inconsistent list base on wrong inode.

  } else if (osd_id_eq(lid, lid2)) {
               if (converted)
                       sf->sf_items_updated++;
               GOTO(out, rc = 0);
}


 Comments   
Comment by Gerrit Updater [ 09/Jun/23 ]

"Alexander Boyko <alexander.boyko@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/51263
Subject: LU-16887 scrub: delete OI when inode missing
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 36ee75b74556b61c89770e9bc26baf4e871b6fef

Comment by Gerrit Updater [ 20/Jun/23 ]

"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/51263/
Subject: LU-16887 scrub: delete OI when inode missing
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: c24a090ec389ae9ca2bedb4c7e3ee777deb63c7f

Comment by Peter Jones [ 20/Jun/23 ]

Landed for 2.16

Generated at Sat Feb 10 03:30:50 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.