[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: |
|
||||||||
| 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 *)¶m->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 |
| Comment by John Hammond [ 24/Apr/13 ] |
|
Patch landed for 2.4. |