[LU-12078] File path for zfs scripts are too long Created: 15/Mar/19 Updated: 08/Dec/20 |
|
| Status: | Open |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.10.6 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | Shuichi Ihara | Assignee: | WC Triage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Severity: | 3 | ||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||
| Description |
|
I've added test commit top of 2.10.7_rc1 tag for test. at the end, tar filename is a bit longer. (lustre-2.10.7_RC1.tar.gz vs lustre-2.10.7_RC1_1_g8c8ff5f.tar.gz) and there are some file path are longer than limitation below. # sh ./autogen.sh; ./configure --enable-dist; make dist
- snip -
test -n "" \
|| find "lustre-2.10.7_RC1_1_g8c8ff5f" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec /bin/sh /scratch/lustre-release/config/install-sh -c -m a+r {} {} \; \
|| chmod -R a+r "lustre-2.10.7_RC1_1_g8c8ff5f"
tardir=lustre-2.10.7_RC1_1_g8c8ff5f && tar --format=ustar -chf - "$tardir" | GZIP=--best gzip -c >lustre-2.10.7_RC1_1_g8c8ff5f.tar.gz
tar: lustre-2.10.7_RC1_1_g8c8ff5f/contrib/lbuild/lustre-2.10.7_RC1/zfs/scripts/zpios-test/4th-1024rc-4rs-1cs-4off.sh: link name is too long; not dumped
tar: lustre-2.10.7_RC1_1_g8c8ff5f/contrib/lbuild/lustre-2.10.7_RC1/zfs/scripts/zpios-test/1x256th-65536rc-4rs-1cs-4off.sh: link name is too long; not dumped
tar: lustre-2.10.7_RC1_1_g8c8ff5f/contrib/lbuild/lustre-2.10.7_RC1/zfs/scripts/zpios-test/16th-8192rc-4rs-1cs-4off.sh: link name is too long; not dumped
tar: lustre-2.10.7_RC1_1_g8c8ff5f/contrib/lbuild/lustre-2.10.7_RC1/zfs/scripts/zpios-test/1th-16rc-4rs-1cs-4off.sh: link name is too long; not dumped
tar: lustre-2.10.7_RC1_1_g8c8ff5f/contrib/lbuild/lustre-2.10.7_RC1/zfs/cmd/zed/zed.d/resilver_finish-notify.sh: link name is too long; not dumped
tar: Exiting with failure status due to previous errors
make[1]: Leaving directory `/scratch/lustre-release'
if test -d "lustre-2.10.7_RC1_1_g8c8ff5f"; then find "lustre-2.10.7_RC1_1_g8c8ff5f" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "lustre-2.10.7_RC1_1_g8c8ff5f" || { sleep 5 && rm -rf "lustre-2.10.7_RC1_1_g8c8ff5f"; }; else :; fi
this tarball gets broken whtn it extracts. |
| Comments |
| Comment by Andreas Dilger [ 15/Mar/19 ] |
|
One thing that stands out is using "--format=ustar". I suspect this is causing ancient filename length limits to be used... I see an old commit that is supposed to fix this: commit 7ef98b9c2549185b1ee2e758eb2cf0da261d75b5
Author: Brian J. Murrell <brian@whamcloud.com>
AuthorDate: Mon Jan 24 15:53:53 2011 -0500
Commit: Brian J. Murrell <brian@whamcloud.com>
CommitDate: Mon Feb 28 12:51:27 2011 -0500
b=21581 too long file / path names for old tar
Instruct automake to use tar's ustar format to prevent errors when
pathnames are longer than 99 chars.
but it may not be enough. Could you try replacing "tar-ustar" in configure.ac with "tar-pax" to see if this fixes your problem? This is not being hit in anyone else's build environment, so you will need to verify this fixes the problem on your system. The "--format=pax" support has been available in GNU tar since version 1.14, which is really old already (I think we were patching tar 1.22 for Lustre many years ago), and is not a portability concern since Lustre will only run on Linux and use GNU tar. Also note that there probably shouldn't be a whole ZFS tree under lbuild/lustre-2.10.7_RC1 in the build directory, but I don't use lbuild very much and can't comment authoritatively. |