Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.bugs.dist > #1019610 > unrolled thread

Bug#933031: pristine-tar: unable to unpack some deltas of version 2

Started bySteve McIntyre <steve@einval.com>
First post2020-07-28 17:30 +0200
Last post2020-07-28 17:30 +0200
Articles 1 — 1 participant

Back to article view | Back to linux.debian.bugs.dist

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Bug#933031: pristine-tar: unable to unpack some deltas of version 2 Steve McIntyre <steve@einval.com> - 2020-07-28 17:30 +0200

#1019610 — Bug#933031: pristine-tar: unable to unpack some deltas of version 2

FromSteve McIntyre <steve@einval.com>
Date2020-07-28 17:30 +0200
SubjectBug#933031: pristine-tar: unable to unpack some deltas of version 2
Message-ID<AxzId-4Be-3@gated-at.bofh.it>
Control: severity -1 grave

On Thu, Jul 25, 2019 at 11:53:39PM +0300, Коля Гурьев wrote:
>Package: pristine-tar
>Version: 1.46
>Severity: important
>
>pristine-tar of version 1.46 available in Debian Unstable can't unpack
>deltas of versions 2 generated by pristine-tar 1.33 from Ubuntu Xenial.
>
>I've committed a tarball for the rlottie package into my Git repository
>using pristine-tar 1.33. Then I try to regenerate the tarball inside
>Debian chroot and get the next error.
>
>$ pristine-tar --debug --verbose checkout ../rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz
>pristine-tar: git archive --format=tar 9fed0d3da5cfa7eabd4fa8c2590dd86e5b1442e1 | (cd '/tmp/pristine-tar.2a5pcCDc3n' && tar x)
>pristine-tar: tar xf /tmp/pristine-tar.cBbx8nKDp6/tmpin -C /tmp/pristine-tar.Dvxlxlx8Qn
>pristine-tar: set subdir to rlottie
>pristine-tar: subdir is rlottie
>pristine-tar: mkdir /tmp/pristine-tar.o0lKEjWozz/workdir
>pristine-tar: mv /tmp/pristine-tar.2a5pcCDc3n /tmp/pristine-tar.o0lKEjWozz/workdir/rlottie
>pristine-tar: rlottie/example/resource/360\302\272_degree.json is listed in the manifest but may not be present in the source directory
>pristine-tar: creating missing rlottie/example/resource/360\302\272_degree.json
>pristine-tar: doing full tree sweep to catch missing files
>pristine-tar: tar cf /tmp/pristine-tar.o0lKEjWozz/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.o0lKEjWozz/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.o0lKEjWozz/manifest
>pristine-tar: xdelta patch --pristine /tmp/pristine-tar.Dvxlxlx8Qn/delta /tmp/pristine-tar.o0lKEjWozz/recreatetarball /tmp/pristine-tar.i1k0xBo1aP/rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz.tmp
>xdelta: expected from file (/tmp/pristine-tar.o0lKEjWozz/recreatetarball) of length 12779520 bytes
>pristine-tar: tar cf /tmp/pristine-tar.o0lKEjWozz/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.o0lKEjWozz/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.o0lKEjWozz/manifest
>pristine-tar: xdelta patch --pristine /tmp/pristine-tar.Dvxlxlx8Qn/delta /tmp/pristine-tar.o0lKEjWozz/recreatetarball /tmp/pristine-tar.i1k0xBo1aP/rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz.tmp
>xdelta: expected from file (/tmp/pristine-tar.o0lKEjWozz/recreatetarball) of length 12779520 bytes
>pristine-tar: set subdir to rlottie
>pristine-tar: subdir is rlottie
>pristine-tar: mkdir /tmp/pristine-tar.4XNCSF8pDG/workdir
>pristine-tar: mv /tmp/pristine-tar.o0lKEjWozz/workdir/rlottie /tmp/pristine-tar.4XNCSF8pDG/workdir/rlottie
>pristine-tar: tar cf /tmp/pristine-tar.4XNCSF8pDG/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.4XNCSF8pDG/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.4XNCSF8pDG/manifest -H gnu
>pristine-tar: xdelta patch --pristine /tmp/pristine-tar.Dvxlxlx8Qn/delta /tmp/pristine-tar.4XNCSF8pDG/recreatetarball /tmp/pristine-tar.i1k0xBo1aP/rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz.tmp
>xdelta: expected from file (/tmp/pristine-tar.4XNCSF8pDG/recreatetarball) of length 12779520 bytes
>pristine-tar: set subdir to rlottie
>pristine-tar: subdir is rlottie
>pristine-tar: mkdir /tmp/pristine-tar.SY9ZY0yfKg/workdir
>pristine-tar: mv /tmp/pristine-tar.4XNCSF8pDG/workdir/rlottie /tmp/pristine-tar.SY9ZY0yfKg/workdir/rlottie
>pristine-tar: tar cf /tmp/pristine-tar.SY9ZY0yfKg/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.SY9ZY0yfKg/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.SY9ZY0yfKg/manifest -H posix
>pristine-tar: xdelta patch --pristine /tmp/pristine-tar.Dvxlxlx8Qn/delta /tmp/pristine-tar.SY9ZY0yfKg/recreatetarball /tmp/pristine-tar.i1k0xBo1aP/rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz.tmp
>xdelta: expected from file (/tmp/pristine-tar.SY9ZY0yfKg/recreatetarball) of length 12779520 bytes
>pristine-tar: tar cf /tmp/pristine-tar.SY9ZY0yfKg/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.SY9ZY0yfKg/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.SY9ZY0yfKg/manifest
>pristine-tar: xdelta patch --pristine /tmp/pristine-tar.Dvxlxlx8Qn/delta /tmp/pristine-tar.SY9ZY0yfKg/recreatetarball /tmp/pristine-tar.i1k0xBo1aP/rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz.tmp
>xdelta: expected from file (/tmp/pristine-tar.SY9ZY0yfKg/recreatetarball) of length 12779520 bytes
>pristine-tar: Failed to reproduce original tarball. Please file a bug report.
>pristine-tar: failed to generate tarball
>
>You'll find problematic delta in the repository of the rlottie package
>under the mymedia/weird-delta tag. Steps to reproduce:
>
>    git clone https://salsa.debian.org/debian/rlottie.git
>    git branch pristine-tar mymedia/weird-delta
>    pristine-tar checkout ../rlottie_0~git20190721.24346d0+dfsg.orig.tar.gz
>
>Here is version numbers of dependencies of both programs.

Also seeing this problem with a repo of the erlang package. Older
revisions of pristine-tar were used to make the repo, but version 1.46
in buster shows exactly the same problem as described here on that
repo. Log:

erlang$ pristine-tar checkout --debug --verbose erlang_21.2.6+dfsg.orig.tar.xz
pristine-tar: git archive --format=tar 11e992e50fb4ae6890d612a17a0d0b4d47cc900e | (cd '/tmp/pristine-tar.RSjPOnC1An' && tar x)
pristine-tar: tar xf /tmp/pristine-tar.5g30csWjKL/tmpin -C /tmp/pristine-tar.zcgIesmb_Q
pristine-tar: set subdir to otp-OTP-21.2.6
pristine-tar: subdir is otp-OTP-21.2.6
pristine-tar: mkdir /tmp/pristine-tar.AMBDcqQ1Hg/workdir
pristine-tar: mv /tmp/pristine-tar.RSjPOnC1An /tmp/pristine-tar.AMBDcqQ1Hg/workdir/otp-OTP-21.2.6
pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/ is listed in the manifest but may not be present in the source directory
pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/
pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/F\344\270\200.txt is listed in the manifest but may not be present in the source directory
pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/F\344\270\200.txt
pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/big.txt is listed in the manifest but may not be present in the source directory
pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/big.txt
pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/d1/ is listed in the manifest but may not be present in the source directory
pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/d1/
pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/d1/f1 is listed in the manifest but may not be present in the source directory
pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/d1/f1
pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/d1/f2 is listed in the manifest but may not be present in the source directory
pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/d1/f2
pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/f2.txt is listed in the manifest but may not be present in the source directory
pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/f2.txt
pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/f3.txt is listed in the manifest but may not be present in the source directory
pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/f3.txt
pristine-tar: otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/g\345\233\233.txt is listed in the manifest but may not be present in the source directory
pristine-tar: creating missing otp-OTP-21.2.6/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_\351\253\230\345\205\264/g\345\233\233.txt
pristine-tar: doing full tree sweep to catch missing files
pristine-tar: tar cf /tmp/pristine-tar.AMBDcqQ1Hg/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.AMBDcqQ1Hg/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.AMBDcqQ1Hg/manifest
pristine-tar: xdelta patch --pristine /tmp/pristine-tar.zcgIesmb_Q/delta /tmp/pristine-tar.AMBDcqQ1Hg/recreatetarball /tmp/pristine-tar.1f_dVtajKN/erlang_21.2.6+dfsg.orig.tar.xz.tmp
xdelta: expected from file (/tmp/pristine-tar.AMBDcqQ1Hg/recreatetarball) of length 170475520 bytes
pristine-tar: tar cf /tmp/pristine-tar.AMBDcqQ1Hg/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.AMBDcqQ1Hg/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.AMBDcqQ1Hg/manifest
pristine-tar: xdelta patch --pristine /tmp/pristine-tar.zcgIesmb_Q/delta /tmp/pristine-tar.AMBDcqQ1Hg/recreatetarball /tmp/pristine-tar.1f_dVtajKN/erlang_21.2.6+dfsg.orig.tar.xz.tmp
xdelta: expected from file (/tmp/pristine-tar.AMBDcqQ1Hg/recreatetarball) of length 170475520 bytes
pristine-tar: set subdir to otp-OTP-21.2.6
pristine-tar: subdir is otp-OTP-21.2.6
pristine-tar: mkdir /tmp/pristine-tar.OQqz11KMwG/workdir
pristine-tar: mv /tmp/pristine-tar.AMBDcqQ1Hg/workdir/otp-OTP-21.2.6 /tmp/pristine-tar.OQqz11KMwG/workdir/otp-OTP-21.2.6
pristine-tar: tar cf /tmp/pristine-tar.OQqz11KMwG/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.OQqz11KMwG/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.OQqz11KMwG/manifest -H gnu
pristine-tar: xdelta patch --pristine /tmp/pristine-tar.zcgIesmb_Q/delta /tmp/pristine-tar.OQqz11KMwG/recreatetarball /tmp/pristine-tar.1f_dVtajKN/erlang_21.2.6+dfsg.orig.tar.xz.tmp
xdelta: expected from file (/tmp/pristine-tar.OQqz11KMwG/recreatetarball) of length 170475520 bytes
pristine-tar: set subdir to otp-OTP-21.2.6
pristine-tar: subdir is otp-OTP-21.2.6
pristine-tar: mkdir /tmp/pristine-tar.OVrlMr95XO/workdir
pristine-tar: mv /tmp/pristine-tar.OQqz11KMwG/workdir/otp-OTP-21.2.6 /tmp/pristine-tar.OVrlMr95XO/workdir/otp-OTP-21.2.6
pristine-tar: tar cf /tmp/pristine-tar.OVrlMr95XO/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.OVrlMr95XO/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.OVrlMr95XO/manifest -H posix
pristine-tar: xdelta patch --pristine /tmp/pristine-tar.zcgIesmb_Q/delta /tmp/pristine-tar.OVrlMr95XO/recreatetarball /tmp/pristine-tar.1f_dVtajKN/erlang_21.2.6+dfsg.orig.tar.xz.tmp
xdelta: expected from file (/tmp/pristine-tar.OVrlMr95XO/recreatetarball) of length 170475520 bytes
pristine-tar: tar cf /tmp/pristine-tar.OVrlMr95XO/recreatetarball --owner 0 --group 0 --numeric-owner -C /tmp/pristine-tar.OVrlMr95XO/workdir --no-recursion --mode 0644 --verbatim-files-from --files-from /tmp/pristine-tar.OVrlMr95XO/manifest
pristine-tar: xdelta patch --pristine /tmp/pristine-tar.zcgIesmb_Q/delta /tmp/pristine-tar.OVrlMr95XO/recreatetarball /tmp/pristine-tar.1f_dVtajKN/erlang_21.2.6+dfsg.orig.tar.xz.tmp
xdelta: expected from file (/tmp/pristine-tar.OVrlMr95XO/recreatetarball) of length 170475520 bytes
pristine-tar: Failed to reproduce original tarball. Please file a bug report.
pristine-tar: failed to generate tarball

IMHO this has to be a grave bug - without reimporting this repo we
can't get our older revisions back. Then I'm worried that this will
break things if we need to go back and rebuild older versions (using
older tooling). pristine-tar needs to be safe for data here. :-(

I've done a git bisect of the pristine-tar repo to see where things
broke, and that clearly tells me:

...
f287f10b48c3ca5a30db13dbf3ba918c47a943bb is the first bad commit
commit f287f10b48c3ca5a30db13dbf3ba918c47a943bb
Author: Tomasz Buchert <tomasz@debian.org>
Date:   Fri Jan 13 23:28:04 2017 +0100

    fix #851286

:100755 100755 1a34e953ba363ae1e284b97f83f63f6ef80ea544 3ba76f79d376d011451b8c572b20e185b715bed1 M      pristine-tar
:040000 040000 84bc809be6b4dcf81cfce71f0550858957a3e92f f8eb72beb458cbd9770f88f0f4efc00f0c75a299 M      test
bisect run success
...

I hope that helps the maintainers - shout if you'd like more help debugging.

-- 
Steve McIntyre, Cambridge, UK.                                steve@einval.com
"...In the UNIX world, people tend to interpret `non-technical user'
 as meaning someone who's only ever written one device driver." -- Daniel Pead

[toc] | [standalone]


Back to top | Article view | linux.debian.bugs.dist


csiph-web