[LU-5005] lustre_rsync unable to replicate new files in root of the filesystem Created: 04/May/14  Updated: 14/May/14  Resolved: 09/May/14

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.6.0
Fix Version/s: Lustre 2.6.0, Lustre 2.5.2

Type: Bug Priority: Major
Reporter: Oleg Drokin Assignee: Niu Yawei (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Severity: 3
Rank (Obsolete): 13854

 Description   

It appears that lustre_rsync is unable to replicate new files and dirs i nthe root od new filesystem
The check for deleted files triggers like this:

***** Start 22 MKDIR (2) [0x200000400:0xa:0x0] [0x80001:0xd9558f05:0x0] aaa *****
dest = /aaa; savedpath = aaa                                            <----------------------------------------------------------------------- HERE!
create: file moved ([0x200000400:0xa:0x0]). /aaa != aaa
mkfile(2) /mnt/st04fs/.lustrerepl/[0x200000400:0xa:0x0] 

Reproducer is simple
enable changelogs, create /src/dir run lustre_rsync from /src to /dst and see how /dst/dir is not created, but instead there's a dir with a fid name in /dst/.lustrerepl



 Comments   
Comment by Peter Jones [ 04/May/14 ]

Niu

Could you please create a fix for this issue?

Thanks

Peter

Comment by Niu Yawei (Inactive) [ 05/May/14 ]

MDT assumes the path of ROOT is '\0', see mdt_path():

        if (lu_fid_eq(&mdt->mdt_md_root_fid, mdt_object_fid(obj))) {
                path[0] = '\0';
                RETURN(0);
        }

However, lustre_rsync assumes the path of ROOT is '/', see lr_create():

        if (len == 1 && info->path[0] == '/')
                snprintf(info->dest, PATH_MAX, "%s", info->name);

I think all lustre components should consider the path of ROOT as '/'.

Comment by Niu Yawei (Inactive) [ 05/May/14 ]

patch against master: http://review.whamcloud.com/10211

Comment by Peter Jones [ 09/May/14 ]

Landed for 2.6

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