Nix-prefetch-url adding trailing zeros?

Summary:

nix-prefetch-url on one of my pcs (AMD Ryzen 7 notebook) fetches different
md5sum than on server whereas curl locally does the right thing.
The funny thing is that the store-paths of nix-prefetch-url locally and on
my server are the same. Local command with env -i yields same result.

I also tried php -S to make sure it’s not my apapche/nginx setup causing the differences.
Same result (!?)

I also checked nix-store --verify --check-contents [–repair] (had some non
related empty files probably due to btrfs)

local-md5: 3f7203c51706d57f8d77ebe7ff041e8d
server-md5: 28e48c3c4eeed07237840bbbe165c1db
local-curl-md5: 28e48c3c4eeed07237840bbbe165c1db
md5 on server servig using apache behind nginx is also 28e48c3c4eeed07237840bbbe165c1db

%curl -s -O https://mawercer.de/tmp/tmp/tsmono.js
%md5sum tsmono.js
28e48c3c4eeed07237840bbbe165c1db tsmono.js

curl --version
curl 7.74.0 (x86_64-pc-linux-gnu) libcurl/7.74.0 OpenSSL/1.1.1j zlib/1.2.11 libssh2/1.9.0 nghttp2/1.41.0

local:
%nix-prefetch-url --print-path https://mawercer.de/tmp/tmp/tsmono.js
[0.1 MiB DL]
10bdn523551x73prbg1hjca1m8g0g0nrr5g4q892f3xhzqwpv2px
/nix/store/wj1pgfwq881pdrmndvggs6nldvjidb9h-tsmono.js

%md5sum /nix/store/wj1pgfwq881pdrmndvggs6nldvjidb9h-tsmono.js
3f7203c51706d57f8d77ebe7ff041e8d /nix/store/wj1pgfwq881pdrmndvggs6nldvjidb9h-tsmono.js

nix-prefetch-url --version
nix-prefetch-url (Nix) 2.3.10
store path: /nix/store/ppgcg2ns9sqq5dqzm05s6x8xddmb2q2l-nix-2.3.10/bin/nix-prefetch-url

server:

nix-prefetch-url --print-path https://mawercer.de/tmp/tsmono.js
[0.1 MiB DL]
10bdn523551x73prbg1hjca1m8g0g0nrr5g4q892f3xhzqwpv2px
/nix/store/wj1pgfwq881pdrmndvggs6nldvjidb9h-tsmono.js

md5sum /nix/store/wj1pgfwq881pdrmndvggs6nldvjidb9h-tsmono.js ~
28e48c3c4eeed07237840bbbe165c1db /nix/store/wj1pgfwq881pdrmndvggs6nldvjidb9h-tsmono.js

same version/store path as local
nix-prefetch-url --version
nix-prefetch-url (Nix) 2.3.10
store path: /nix/store/ppgcg2ns9sqq5dqzm05s6x8xddmb2q2l-nix-2.3.10/bin/nix-prefetch-url

               CURL          nix-prefetch result:

desk tmp i%diff -b tsmono.js /nix/store/wj1pgfwq881pdrmndvggs6nldvjidb9h-tsmono.js
1733a1734

\ No newline at end of file

desk tmp i%diff <(hexdump tsmono.js ) <(hexdump /nix/store/wj1pgfwq881pdrmndvggs6nldvjidb9h-tsmono.js)
5936,5937c5936,5940
< 0017340 297d 0a3b
< 0017344

0017340 297d 0a3b 0000 0000 0000 0000 0000 0000
0017350 0000 0000 0000 0000 0000 0000 0000 0000
*
0027340 0000 0000
0027344

1 Like

I added some tracing lines to prefetch-url.cc
storePath = store->addToStore(name, tmpFile, unpack, ht);

before this line the md5sum is fine. So addToStore must be doing something unexpected.