[LU-2152] network index transfer and IAM Created: 11/Oct/12  Updated: 19/Apr/13  Resolved: 05/Nov/12

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

Type: Bug Priority: Minor
Reporter: Johann Lombardi (Inactive) Assignee: Niu Yawei (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Severity: 3
Rank (Obsolete): 5174

 Description   

While chasing a reintegration issue in LU-2147, i realized that ldiskfs OSD and ZFS OSD behave differently WRT index transfer. With ZFS, the entry for ID 0 is always transferred, while it is not in the case with ldiskfs/IAM. Therefore, i think we might have an iterator issue with IAM (maybe due to different return code on ->load?).
We are good as long as all entries can fit in one bulk transfer since we don't need too access grace time (store in ID 0) on slaves, but we might miss some entries if we require multiple bulks to transfer the index.

This also shows us that we don't have enough tests with multiple IDs and we should definitely add a test case exercising the code to transfer the global/slave index in multiple bulks.



 Comments   
Comment by Niu Yawei (Inactive) [ 12/Oct/12 ]

osd_it_iam_load()-> iam_it_load() -> iam_it_iget() -> __iam_it_get(it, 1) -> iam_path_lookup(patch, 1) -> iam_lfix_ilookup()

static int iam_lfix_ilookup(struct iam_leaf *l, const struct iam_ikey *ik)
{
        assert(0);
        return IAM_LOOKUP_OK;
}

so the ilookup() isn't implemented for lfix at all. (the assert(0) must be filtered when compiling, that's why it was not triggered).

I'm getting confused with it->load() & it->get(), from the comment, looks their functionality is quite similar, (in fact, for quota accounting, load() & get() are exactly same) so I'm going to change the osd_it_iam_load() to make it call iam_it_get() instead of iam_it_iget() (which is half implemented).

Comment by Niu Yawei (Inactive) [ 15/Oct/12 ]

http://review.whamcloud.com/4266

Comment by Niu Yawei (Inactive) [ 05/Nov/12 ]

patch landed for 2.4

Generated at Sat Feb 10 01:22:48 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.