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
Disable dir_index ext2/3/4 option #469
Conversation
|
Hmm, but is that a good thing? We want to find and fix cases where the build depends on the filesystem ordering, don't we? |
|
We can still find and fix those outside of OBS by having a local revert of this. btw: does OBS use ext4 to build? |
|
found it: |
|
Maybe I should make it an option, so I can enable/disable it easily for testing if it makes a difference... |
1d3421c
to
40134c5
Compare
This reduces indeterminism from filesystem readdir order, e.g. this snippet suddenly delivers the same output every time: mkdir -p in; for i in $(seq 10) ; do touch in/$i ; done find in/ -type f > unreproducible Since we usually do not have large directories, it should not slow down the build processes. Quick testing with openSUSE:Factory/python-service_identity time osc build --no-service --clean --vm-type=kvm --offline showed that the difference is 0 +-0.2% Alternative approach is to use a constant hash_seed via tytso/e2fsprogs@e1f7100 but that is not yet in Leap 15.0
affects xine-ui and some others that were otherwise not building reproducibly Requires build package with openSUSE/obs-build#469
affects xine-ui and some others that were otherwise not building reproducibly Requires build package with openSUSE/obs-build#469
|
dir_index is now an option and default-off here. |
affects xine-ui and some others that were otherwise not building reproducibly Requires build package with openSUSE/obs-build#469
|
Why is the default off? |
|
default off, to make builds more reproducible by default. |
|
I'm not in favor of changing the current default. Lets see what the others have to say. |
affects xine-ui and some others that were otherwise not building reproducibly Requires build package with openSUSE/obs-build#469
|
default change is indeed not a good idea. factory project might decide for it and change it there |
affects xine-ui and some others that were otherwise not building reproducibly Requires build package with openSUSE/obs-build#469
affects xine-ui and some others that were otherwise not building reproducibly Requires build package with openSUSE/obs-build#469
affects xine-ui and some others that were otherwise not building reproducibly Requires build package with openSUSE/obs-build#469
affects xine-ui and some others that were otherwise not building reproducibly Requires build package with openSUSE/obs-build#469
affects xine-ui and some others that were otherwise not building reproducibly Requires build package with openSUSE/obs-build#469
affects xine-ui and some others that were otherwise not building reproducibly Requires build package with openSUSE/obs-build#469
affects xine-ui and some others that were otherwise not building reproducibly Requires build package with openSUSE/obs-build#469
|
@bmwiedemann shall I adapt the code to make it an opt-in? |
|
dir_index is already an opt-in option. Or you want it unreproducible by default with a |
|
I have submitted a reworked version now: it is really making this an opt-in without changing the default. It can also be configured via prjconf for OBS setups now. |
This reduces indeterminism from filesystem readdir order,
e.g. this snippet suddenly delivers the same output every time:
Since we usually do not have large directories, it should not slow
down the build processes.
Quick testing with
showed that the difference is 0 +-0.2%
Alternative approach is to use a constant hash_seed via
tytso/e2fsprogs@e1f7100
but that is not yet in Leap 15.0
Helps to limit the effect of problems like
http://bugzilla.opensuse.org/show_bug.cgi?id=1110339