[LU-3046] lfs getstripe fails on files with basenames longer than max_easize Created: 27/Mar/13  Updated: 24/Apr/13  Resolved: 24/Apr/13

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

Type: Bug Priority: Minor
Reporter: John Hammond Assignee: John Hammond
Resolution: Fixed Votes: 0
Labels: lfs, liblustreapi

Issue Links:
Related
is related to LU-3048 lfs getstripe heap corruption with MO... Resolved
Severity: 3
Rank (Obsolete): 7440

 Description   
# llmount.sh
...
# cd /mnt/lustre
# touch 129-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# ls 129-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | wc
      1       1     130
# stat 129-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
  File: `129-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
  Size: 0         	Blocks: 0          IO Block: 4194304 regular empty file
Device: 2c54f966h/743766374d	Inode: 180144002274691233  Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2013-03-27 15:39:46.000000000 -0500
Modify: 2013-03-27 15:39:46.000000000 -0500
Change: 2013-03-27 15:39:46.000000000 -0500
# lfs getstripe 129-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
warning: cb_getstripe: 129-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX does not exist: No such file or directory (2)

In liblustreapi's cb_getstripe() the lumlen member of param is initialized to the max_easize read from /proc/fs/lustre/llite/*/max_easize. This can cause truncation of the basename before ioctl() is called:

        strncpy((char *)&param->lmd->lmd_lmm, fname, param->lumlen);

The underlying IOC_MDC_GETFILESTRIPE ioctl() handles this (mostly) correctly.



 Comments   
Comment by John Hammond [ 03/Apr/13 ]

A patch is attached to LU-3048.

Comment by John Hammond [ 24/Apr/13 ]

Patch landed for 2.4.

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