apache / pekko-http

The Streaming-first HTTP server/module of Apache Pekko
https://pekko.apache.org/
Apache License 2.0
152 stars 37 forks source link

reproducible builds: TASTY differences #566

Open raboof opened 4 months ago

raboof commented 4 months ago

reproducing 1.1.0-M1 with set ThisBuild / net.bzzt.reproduciblebuilds.ReproducibleBuildsPlugin.reproducibleBuildsCheckResolver := DefaultMavenRepository; ++3.3; clean; reproducibleBuildsCheck showed a nondeterminism for me in pekko-core_3-1.1.0-M1.jar :

In org/apache/pekko/http/scaladsl/model/HttpMessage.tasty there are small differences at lines 0x0000010, 0x00000020 and 0x00002d30:

<div class="diffheader"><div id="org-apache-pekko-http-scaladsl-model-HttpMessage.tasty"><span class="source">org/apache/pekko/http/scaladsl/model/HttpMessage.tasty</span>

    </div>
    </div>

Offset 1, 10 lines modified | Offset 1, 10 lines modified
-- | --
00000000:·5ca1·ab1f·9c83·808b·5363·616c·6120·332e··\.......Scala·3. | 00000000:·5ca1·ab1f·9c83·808b·5363·616c·6120·332e··\.......Scala·3.
00000010:·332e·3300·1e07·3cfd·e113·ee00·f50d·1e5b··3.3...<........[ | 00000010:·332e·3300·1e07·3cfd·e113·ee00·09c6·706e··3.3...<.......pn
00000020:·9b3b·2b21·d001·8441·5354·7301·836f·7267··.;+!...ASTs..org | 00000020:·f03c·2b21·d001·8441·5354·7301·836f·7267··.<+!...ASTs..org
00000030:·0186·6170·6163·6865·0282·8182·0185·7065··..apache......pe | 00000030:·0186·6170·6163·6865·0282·8182·0185·7065··..apache......pe
00000040:·6b6b·6f02·8283·8401·8468·7474·7002·8285··kko......http... | 00000040:·6b6b·6f02·8283·8401·8468·7474·7002·8285··kko......http...
00000050:·8601·8873·6361·6c61·6473·6c02·8287·8801··...scaladsl..... | 00000050:·8601·8873·6361·6c61·6473·6c02·8287·8801··...scaladsl.....
00000060:·856d·6f64·656c·0282·898a·0186·7374·7265··.model......stre | 00000060:·856d·6f64·656c·0282·898a·0186·7374·7265··.model......stre
00000070:·616d·0184·466c·6f77·0189·466c·6f77·5368··am..Flow..FlowSh | 00000070:·616d·0184·466c·6f77·0189·466c·6f77·5368··am..Flow..FlowSh
00000080:·6170·6501·8547·7261·7068·018c·4d61·7465··ape..Graph..Mate | 00000080:·6170·6501·8547·7261·7068·018c·4d61·7465··ape..Graph..Mate
00000090:·7269·616c·697a·6572·0192·5379·7374·656d··rializer..System | 00000090:·7269·616c·697a·6572·0192·5379·7374·656d··rializer..System
Offset 717, 15 lines modified | Offset 717, 15 lines modified
00002cc0:·fb80·9795·9580·9789·8680·9785·af87·9787··................ | 00002cc0:·fb80·9795·9580·9789·8680·9785·af87·9787··................
00002cd0:·fe99·93f5·9493·fb8b·93f7·8693·fb80·97a4··................ | 00002cd0:·fe99·93f5·9493·fb8b·93f7·8693·fb80·97a4··................
00002ce0:·a080·9782·a587·9787·fe8b·93ef·8693·fb80··................ | 00002ce0:·a080·9782·a587·9787·fe8b·93ef·8693·fb80··................
00002cf0:·979c·9880·9782·9187·9787·fe80·9788·8280··................ | 00002cf0:·979c·9880·9782·9187·9787·fe80·9788·8280··................
00002d00:·9783·a187·9787·f886·93f5·8097·9193·8097··................ | 00002d00:·9783·a187·9787·f886·93f5·8097·9193·8097··................
00002d10:·88a3·8797·87fe·9193·f786·93f5·8097·9a96··................ | 00002d10:·88a3·8797·87fe·9193·f786·93f5·8097·9a96··................
00002d20:·8097·00c1·0051·e58d·0234·818d·ba7f·2edb··.....Q...4...... | 00002d20:·8097·00c1·0051·e58d·0234·818d·ba7f·2edb··.....Q...4......
00002d30:·b001·a68d·8db0·00d8·8403·de00·c8b0·7d48··..............}H | 00002d30:·b000·de8d·8d84·03de·00c8·b001·a0b0·7d48··..............}H
00002d40:·9e94·0051·9600·da7f·2efe·a07f·a6ec·eca7··...Q............ | 00002d40:·9e94·0051·9600·da7f·2efe·a07f·a6ec·eca7··...Q............
00002d50:·94a2·8393·f480·00df·9300·cf85·9d8a·8096··................ | 00002d50:·94a2·8393·f480·00df·9300·cf85·9d8a·8096··................
00002d60:·83cf·abb1·8093·da80·bf8e·a485·9d8c·9193··................ | 00002d60:·83cf·abb1·8093·da80·bf8e·a485·9d8c·9193··................
00002d70:·fb80·8bfb·80af·9a9d·849d·8a80·00cf·889a··................ | 00002d70:·fb80·8bfb·80af·9a9d·849d·8a80·00cf·889a··................
00002d80:·849d·8f80·b78a·9a84·9d90·80af·8baa·849d··................ | 00002d80:·849d·8f80·b78a·9a84·9d90·80af·8baa·849d··................
00002d90:·8d80·93f4·8a93·fc80·978e·8f80·bf8e·ab84··................ | 00002d90:·8d80·93f4·8a93·fc80·978e·8f80·bf8e·ab84··................
00002da0:·9d90·8093·ec80·00cf·8490·8093·fd80·bf8d··................ | 00002da0:·9d90·8093·ec80·00cf·8490·8093·fd80·bf8d··................

org/apache/pekko/http/scaladsl/model/HttpEntity.tasty is also different, and here the differences are larger.

Filed https://github.com/scala/scala3/issues/21154

raboof commented 2 months ago

(looks like this missed the train for 3.3.4 but will likely be backported to LTS in 3.3.5)

raboof commented 5 days ago

Looking at this again I'm not so sure we can expect all of this to be fixed in 3.3.5, but let's see.

We encountered it in the 1.1.0 release again: https://arnout.engelen.eu/reproducible-builds-diffoscope-output-pekko-http-core_3-1.1.0.jar/