X-Debbugs-CC: t...@invisible-island.net 在 2024-07-03星期三的 16:28 +0200,Kristian Nielsen写道: > Package: mawk > Version: 1.3.4.20240622-1 > Severity: normal > > Dear Maintainer, > > Running mawk produces wrong output from rand() on i386: > > $ echo | mawk 'BEGIN {srand(10);} {print rand()};' > 0.158578 > $ echo | mawk 'BEGIN {srand(10);} {print rand()};' > -0.276944 > $ echo | mawk 'BEGIN {srand(10);} {print rand()};' > -0.387807 > $ echo | mawk 'BEGIN {srand(10);} {print rand()};' > 0.470306 > > The result of rand() should never be negative; and it should be > deterministic after calling srand(). > > This occurs on i386 (tested in sbuild --arch=i386 as part of debugging a > reproducible build problem of package openscad). > > The expected output is the same value between 0 and 1, for example: > > $ echo | mawk 'BEGIN {srand(10);} {print rand()};' > 0.559536 > $ echo | mawk 'BEGIN {srand(10);} {print rand()};' > 0.559536 > $ echo | mawk 'BEGIN {srand(10);} {print rand()};' > 0.559536 > > The longer story, for completeness: I am the maintainer for openscad, and I > see openscad sometimes failing to build reproducibly on (only) i386 during > the past year. The root cause seems to be a test script that calls awk and > behaves unexpectedly due to getting a negative number out of rand(). > > The problem does not seem to occur on amd64 or arm64. Openscad doesn't build > on armhf, so not sure if the problem in mawk is specific to i386 or may be > specific to 32-bit for example.
Ack. Reproducible on Debian Sid (mawk/1.3.4.20240622), not reproducible on Debian 12 Bookworm (mawk/1.3.4.20200120). Likely a regression since 2020. CC the mawk upstream developer to make them aware of this issue. Thomas: if you need help in setting up a proper Debian Sid i386 environment to reproduce the issue and do debugging, feel free to let me know. Thanks, Boyuan Yang
signature.asc
Description: This is a digitally signed message part