Backport #18312
'make dist' fails because tar uses `--format=ustar`
Description
Build output:
tardir=ceph-10.2.5 && tar --format=ustar -chf - "$tardir" | BZIP2=${BZIP2--9} bzip2 -c >ceph-10.2.5.tar.bz2 tar: ceph-10.2.5/src/test/debian-jessie/debian: File removed before we read it tar: ceph-10.2.5/src/test/ubuntu-14.04/debian: File removed before we read it tar: ceph-10.2.5/src/test/ubuntu-12.04/debian: File removed before we read it tar: ceph-10.2.5/qa/suites/upgrade/firefly-hammer-x/parallel/7-final-workload/ec-rados-plugin=jerasure-k=3-m=1.yaml: link name is too long; not dumped tar: ceph-10.2.5/qa/suites/upgrade/firefly-hammer-x/parallel/7-final-workload/ec-rados-plugin=jerasure-k=2-m=1.yaml: link name is too long; not dumped tar: ceph-10.2.5/qa/suites/upgrade/firefly-hammer-x/parallel/7-final-workload/ec-rados-plugin=jerasure-k=3-m=1.yaml: link name is too long; not dumped tar: ceph-10.2.5/qa/suites/upgrade/hammer-x/stress-split-erasure-code-x86_64/9-workload/ec-rados-plugin=isa-k=2-m=1.yaml: link name is too long; not dumped tar: ceph-10.2.5/qa/suites/upgrade/hammer-x/stress-split-erasure-code-x86_64/9-workload/ec-rados-plugin=isa-k=2-m=1.yaml: link name is too long; not dumped tar: ceph-10.2.5/qa/suites/upgrade/firefly-hammer-x/parallel/7-final-workload/ec-rados-plugin=jerasure-k=2-m=1.yaml: link name is too long; not dumped tar: ceph-10.2.5/qa/suites/upgrade/firefly-hammer-x/parallel/7-final-workload/ec-rados-plugin=jerasure-k=3-m=1.yaml: link name is too long; not dumped tar: Exiting with failure status due to previous errors if test -d "ceph-10.2.5"; then find "ceph-10.2.5" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "ceph-10.2.5" || { sleep 5 && rm -rf "ceph-10.2.5"; }; else :; fi ++ ls ceph-10.2.5.tar.gz ++ cut -c 6- ++ sed s/.tar.gz// + vers=10.2.5 + extension=tar.gz + extract_flags=zxf + compress_flags=zcf + echo tarball vers 10.2.5 tarball vers 10.2.5 + echo extracting extracting + mkdir -p release/10.2.5-5526-g8a213ac/rpm + cp 'rpm/*.patch' release/10.2.5-5526-g8a213ac/rpm cp: cannot stat 'rpm/*.patch': No such file or directory + true + cd release/10.2.5-5526-g8a213ac + tar zxf /home/jenkins-build/build/workspace/ceph-dev-new-setup/ceph-10.2.5.tar.gz tar: ceph-10.2.5/qa/suites/upgrade/hammer-x/stress-split-erasure-code/9-workload/ec-rados-plugin=jerasure-k=3-m=1.yaml: Cannot hard link to 'ceph-10.2.5/qa/suites/upgrade/firefly-hammer-x/parallel/7-final-workload/ec-rados-plugin=jerasure-k=': No such file or directory tar: ceph-10.2.5/qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=jerasure-k=2-m=1.yaml: Cannot hard link to 'ceph-10.2.5/qa/suites/upgrade/firefly-hammer-x/parallel/7-final-workload/ec-rados-plugin=jerasure-k=': No such file or directory tar: ceph-10.2.5/qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=jerasure-k=3-m=1.yaml: Cannot hard link to 'ceph-10.2.5/qa/suites/upgrade/firefly-hammer-x/parallel/7-final-workload/ec-rados-plugin=jerasure-k=': No such file or directory tar: ceph-10.2.5/qa/suites/rados/thrash-erasure-code-isa/workloads/ec-rados-plugin=isa-k=2-m=1.yaml: Cannot hard link to 'ceph-10.2.5/qa/suites/upgrade/hammer-x/stress-split-erasure-code-x86_64/9-workload/ec-rados-plugin=i': No such file or directory tar: ceph-10.2.5/qa/erasure-code/ec-rados-plugin=isa-k=2-m=1.yaml: Cannot hard link to 'ceph-10.2.5/qa/suites/upgrade/hammer-x/stress-split-erasure-code-x86_64/9-workload/ec-rados-plugin=i': No such file or directory tar: ceph-10.2.5/qa/erasure-code/ec-rados-plugin=jerasure-k=2-m=1.yaml: Cannot hard link to 'ceph-10.2.5/qa/suites/upgrade/firefly-hammer-x/parallel/7-final-workload/ec-rados-plugin=jerasure-k=': No such file or directory tar: ceph-10.2.5/qa/erasure-code/ec-rados-plugin=jerasure-k=3-m=1.yaml: Cannot hard link to 'ceph-10.2.5/qa/suites/upgrade/firefly-hammer-x/parallel/7-final-workload/ec-rados-plugin=jerasure-k=': No such file or directory tar: Exiting with failure status due to previous errors Build step 'Execute shell' marked build as failure
This is a limitation on `ustar` on path length which is 100 characters. Now that the qa suite has been merged into Ceph, I think this is causing these long paths to be issues with the tar flag.
The `--format=posix` option could probably help here, but I am unsure where/what to change to make that happen or what the side effect would be (if any).
History
#1 Updated by Jeff Layton about 7 years ago
- File 0001-automake-convert-to-tar-pax.patch View added
It looks like this is part of automake. Can we try this patch to jewel?
I just repushed my current test branch that had the failing builds. We can see if it helps there,
#2 Updated by Jeff Layton about 7 years ago
PR is here:
#3 Updated by Jeff Layton about 7 years ago
- Assignee set to Jeff Layton
#4 Updated by Jeff Layton about 7 years ago
Ok, so I think this patch will work around the problem, but I have to wonder...
I have two different branches up right now. The one that failed is wip-18307-jewel. wip-18308-jewel, built just fine however. They are both based on the same jewel tip commit, and have just small C++ changes that differ between them.
I suspect that we may have different versions of autotools on different builders. Should we worry about trying to hunt down the root cause here, or just change the tarball format and move on?
#5 Updated by Nathan Cutler about 7 years ago
- Tracker changed from Bug to Backport
- Status changed from New to Resolved
- Release set to jewel
#6 Updated by Loïc Dachary about 7 years ago
- Target version set to v10.2.6