-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reproducibility and test suite issues from upgrading to commons-compress 1.22+ #3987
Comments
As discovered by #3962 (comment), this issue already happens for the current Jib version when you have other dependencies pulling in common-compress 1.22+. For better searchability: The reproducible tars have UStar format. In my example, the tar has a layout like this:
The non-reproducible tars have included pax headers. In my example, the tar has a layout like this:
|
Same issue here. When using jib gradle plugin with for example any using Apache Avro +1.11.0, common-compress 1.22+ is pulled and reproducible builds are broken. It's a tricky issue as could remain unnoticed in many cases. |
I have a related issue, another plugin update in our build bumped
I've downgraded the other plugin for now (it's nothing critical). |
I believe this is fixed by #4204, although the fix is not yet in the lastest Jib release. |
Update on this: Closing this issue as jib-gradle-plugin:3.4.2 and jib-maven-plugin:3.4.2 have been released with a fix! Please open an new issue if this is still occurring. Thank you. |
See #3856 (comment), #3964 (currently blocked PR) for attempts to upgrade from 1.21 to 1.22 and 1.23.
Unit tests failing with:
The first two errors can be addressed in the test suite by increasing precision of the expected values for FileTime in the tests. The third error
testToBlob_reproducibility
, is the main blocker for this upgrade.As noted in #3962, commons-compress 1.22.0 adds atime and ctime support (in addition to mtime), which breaks image reproducibility in Jib (ref of upstream changes: TarArchiveEntry, PR#254)
I think that upgrading to 1.22+ would also need additional handling of atime and ctime in
TarArchiveEntry
andFileEntry
(set defaults for reproducibility, and potentially also supporting custom configuration), in a similar way as mtime (modification time) in the current implementation.The text was updated successfully, but these errors were encountered: