Howdy Ricardo, Ricardo Wurmus skribis: >> Unfortunately, this is not fully deterministic: when running --check >> several times in a row, I occasionally get different results. I suspect >> GDBM’s output is not fully deterministic. > > Hmm, I dumped the contents of the generated databases with gdbm_dump and > couldn’t find any difference aside from the header (which is produced by > gdbm_dump itself). Diffoscope shows a lot of differences, though. > > I thought that maybe the difference comes from the fact that upon adding > new entries gdbm grows the hash table. After setting the initial size > to a multiple of the number of entries I haven’t been able to generate a > non-reproducible database. > > My only change is in “write-mandb-database”: > > (gdbm-open file GDBM_WRCREAT #:block-size (* 512 (length entries))) > > I tried this: > > ./pre-inst-env guix package -p foo -i coreutils guile > for i in `seq 30`; do ./pre-inst-env guix build --check -K /gnu/store/pg3684khpj69py40v7p76b90r9q4j2lv-manual-database.drv; done > > Seems fine. Coincidence or did I get lucky? I checked with the program below. It helps, but does not entirely fix it: