[LU-708] OSD Misc feature landing tracker Created: 22/Sep/11  Updated: 25/Apr/13  Resolved: 25/Apr/13

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

Type: Story Priority: Minor
Reporter: Andreas Dilger Assignee: Zhenyu Xu
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Related
Sub-Tasks:
Key
Summary
Type
Status
Assignee
LU-709 Remove obsolete configure checks from... Technical task Resolved Yang Sheng  
LU-732 Remove CMM module Technical task Resolved Zhenyu Xu  
Story Points: 8
Project: Orion
Rank (Obsolete): 4493

 Description   

Task to track landings of various small fixes and code cleanups from orion onto master.



 Comments   
Comment by Andreas Dilger [ 22/Sep/11 ]

I'm using "More Actions->Link Issue" to link to ORI-300, another change that can land on master directly. Hopefully this will be a useful way to track these changes for landing on master.

Comment by Andreas Dilger [ 23/Sep/11 ]

The restructuring of the mkfs.lustre, tunefs.lustre and mount.lustre could be landed on master without affecting the functionality.

Comment by Zhenyu Xu [ 05/Nov/11 ]

ORI-300 port to master patch tracking at http://review.whamcloud.com/1653

Comment by Zhenyu Xu [ 05/Dec/11 ]

refactor mkfs/tunefs/mount port to master patch tracking at http://review.whamcloud.com/1762 (ORI-294)

Comment by Johann Lombardi (Inactive) [ 07/Dec/11 ]

This last patch seems to break mgs failover. Chris has been using this patch and is now unable to mount a lustre client with two mgs nids.

# mount -t lustre -o user_xattr,acl,flock 10.10.4.190@tcp0:10.10.4.194@tcp0:/lustre /mnt/lustre
mount.lustre: 10.10.4.190@tcp:10.10.4.194@tcp:/lustre has not been formatted with mkfs.lustre or the backend filesystem type is not supported by this tool

This error message is returned by parse_ldd() and from the code:

        if (!devname_is_client(mop.mo_usource)) {
                rc = parse_ldd(mop.mo_source, &mop, options);
                if (rc)
                        goto out;
        }

Obviously, parse_ldd() should not be executed for client mount, so somehow devname_is_client() failed to detect that we are trying to mount a lustre client. Then i ran mount.lustre directly to check the arguments:

# mount.lustre -v -o user_xattr,acl,flock 10.10.4.190@tcp0:10.10.4.194@tcp0:/lustre /mnt/lustre
arg[0] = mount.lustre
arg[1] = -v
arg[2] = -o
arg[3] = user_xattr,acl,flock
arg[4] = 10.10.4.190@tcp0
arg[5] = /mnt/lustre
source = 10.10.4.190@tcp0 (10.10.4.190@tcp:10.10.4.194@tcp:/lustre)
target = /mnt/lustre
options = user_xattr,acl,flock
checking for existing Lustre data: not found
mount.lustre: 10.10.4.190@tcp:10.10.4.194@tcp:/lustre has not been formatted with mkfs.lustre or the backend filesystem type is not supported by this tool

As you can see, mop.mo_usource = 10.10.4.190@tcp0 instead of 10.10.4.190@tcp:10.10.4.194@tcp:/lustre. This explains why devname_is_client() fails.
However, i have no idea yet why mo_usource is truncated.
For the record, it works well with just one nid:

# mount.lustre -v -o user_xattr,acl,flock 10.10.4.194@tcp0:/lustre /mnt/lustre
arg[0] = mount.lustre
arg[1] = -v
arg[2] = -o
arg[3] = user_xattr,acl,flock
arg[4] = 10.10.4.194@tcp0:/lustre
arg[5] = /mnt/lustre
source = 10.10.4.194@tcp0:/lustre (10.10.4.194@tcp:/lustre)
target = /mnt/lustre
options = user_xattr,acl,flock
Comment by Johann Lombardi (Inactive) [ 07/Dec/11 ]

Actually, the problem is that convert_hostnames() modifies the string given as argument, so the following does not work:

/* convert nids part, but not fsname part */                                 
tmp = *ptr;                                                                  
*ptr = '\0';                                                                 
nids = convert_hostnames(mop->mo_usource);
if (!nids)                                                                   
        usage(stderr);                                                       
*ptr = tmp;
Comment by Zhenyu Xu [ 07/Dec/11 ]

I think Orion also has this issue, the char *convert_hostnames(char *s1) has changed argument @s1 while it should not.

        while ((left > 0) && (s1 < end)) {
                s2 = strpbrk(s1, ",:");
                if (s2 == NULL)
                        s2 = end;
                sep = *s2;
                *s2 = '\0';
                nid = libcfs_str2nid(s1);
+               *s2 = sep;                             // Forget to put back the separator in s1.


Comment by Johann Lombardi (Inactive) [ 08/Dec/11 ]

Right, could you please push a fix to the orion branch too?

Comment by Zhenyu Xu [ 08/Dec/11 ]

Ok, orion fix posted at http://review.whamcloud.com/1821

Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » x86_64,client,el5,inkernel #340
LU-708 utils: convert_hostnames() should not change its arg (Revision cf6b187c6fe73447455478998554f3662779e9e8)

Result = SUCCESS
Mikhail Pershin : cf6b187c6fe73447455478998554f3662779e9e8
Files :

  • lustre/utils/mount_utils.c
Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » i686,client,el6,inkernel #340
LU-708 utils: convert_hostnames() should not change its arg (Revision cf6b187c6fe73447455478998554f3662779e9e8)

Result = SUCCESS
Mikhail Pershin : cf6b187c6fe73447455478998554f3662779e9e8
Files :

  • lustre/utils/mount_utils.c
Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » i686,server,el5,inkernel #340
LU-708 utils: convert_hostnames() should not change its arg (Revision cf6b187c6fe73447455478998554f3662779e9e8)

Result = SUCCESS
Mikhail Pershin : cf6b187c6fe73447455478998554f3662779e9e8
Files :

  • lustre/utils/mount_utils.c
Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » x86_64,server,el6,inkernel #340
LU-708 utils: convert_hostnames() should not change its arg (Revision cf6b187c6fe73447455478998554f3662779e9e8)

Result = SUCCESS
Mikhail Pershin : cf6b187c6fe73447455478998554f3662779e9e8
Files :

  • lustre/utils/mount_utils.c
Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » i686,client,el5,inkernel #340
LU-708 utils: convert_hostnames() should not change its arg (Revision cf6b187c6fe73447455478998554f3662779e9e8)

Result = SUCCESS
Mikhail Pershin : cf6b187c6fe73447455478998554f3662779e9e8
Files :

  • lustre/utils/mount_utils.c
Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » x86_64,server,el5,inkernel #340
LU-708 utils: convert_hostnames() should not change its arg (Revision cf6b187c6fe73447455478998554f3662779e9e8)

Result = SUCCESS
Mikhail Pershin : cf6b187c6fe73447455478998554f3662779e9e8
Files :

  • lustre/utils/mount_utils.c
Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » x86_64,client,el6,inkernel #340
LU-708 utils: convert_hostnames() should not change its arg (Revision cf6b187c6fe73447455478998554f3662779e9e8)

Result = SUCCESS
Mikhail Pershin : cf6b187c6fe73447455478998554f3662779e9e8
Files :

  • lustre/utils/mount_utils.c
Generated at Sat Feb 10 01:09:39 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.