From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id yIpUNQLJ8176agAA0tVLHw (envelope-from ) for ; Wed, 24 Jun 2020 21:43:30 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id WCoQMQLJ814FYgAAbx9fmQ (envelope-from ) for ; Wed, 24 Jun 2020 21:43:30 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 78C03940990 for ; Wed, 24 Jun 2020 21:43:30 +0000 (UTC) Received: from localhost ([::1]:42492 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1joDB3-0005nP-DG for larch@yhetil.org; Wed, 24 Jun 2020 17:43:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47060) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1joD8i-0002ry-5t for bug-guix@gnu.org; Wed, 24 Jun 2020 17:41:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:55948) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1joD8h-0005wh-QL for bug-guix@gnu.org; Wed, 24 Jun 2020 17:41:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1joD8h-0006e3-NX for bug-guix@gnu.org; Wed, 24 Jun 2020 17:41:03 -0400 X-Loop: help-debbugs@gnu.org Subject: bug#42009: package.cache not deterministic Resent-From: Msavoritias Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 24 Jun 2020 21:41:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 42009 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: zimoun Received: via spool by 42009-submit@debbugs.gnu.org id=B42009.159303480725382 (code B ref 42009); Wed, 24 Jun 2020 21:41:03 +0000 Received: (at 42009) by debbugs.gnu.org; 24 Jun 2020 21:40:07 +0000 Received: from localhost ([127.0.0.1]:39246 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1joD7m-0006bI-Ib for submit@debbugs.gnu.org; Wed, 24 Jun 2020 17:40:07 -0400 Received: from knopi.disroot.org ([178.21.23.139]:53440) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1joAcE-0002cr-CT for 42009@debbugs.gnu.org; Wed, 24 Jun 2020 14:59:23 -0400 Received: from localhost (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id C006D4821E; Wed, 24 Jun 2020 20:59:20 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at disroot.org Received: from knopi.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ij0kQxSFptUB; Wed, 24 Jun 2020 20:59:18 +0200 (CEST) Date: Wed, 24 Jun 2020 20:59:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1593025158; bh=4ykDRo8JuCrHkzsD8hytWsiXonF1DwFlr2n7YE0R7eQ=; h=Date:From:Subject:To:Cc:In-Reply-To:References; b=UPIR/9kjHtDYBHtiMQRt/s0ycfACKHr0sf1mPOgrkNFClYN82UEU/HupawTWEfFI5 s8ZtenonxI5x1eFfkMeYoODmhg5oxqipy+gcNCIfZJ/TuPJFtlmtC6lP1TZhU1cj5L Kgsuhly4kQ5T7hMs0tQEZKC4d2ZseEgp4w5TuqB2HHFPZ+XUzxSiAxr00obZM/tlDn 9oqyETIBdYthYjS1zQJyJKinTPK+ebGg5MptiGNt3KqI7HW9cYfpNh1K/Zlcbm2Vob mrRrJvfTgtMIQ7Wupy5qebxEEhySG44p9oL0j7kesAdCdE6Onty/0PkxvuRV6pvshT 8Vc3zSnfALa0w== From: Msavoritias Message-Id: <1593025157.3861.2@disroot.org> In-Reply-To: <86ftalqu37.fsf@gmail.com> References: <20200622190742.04a62732@disroot.org> <86ftalqu37.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="=-8jj3MTje5Ex8fXeBTM41" X-Spam-Score: 0.0 (/) X-Mailman-Approved-At: Wed, 24 Jun 2020 17:40:05 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -1.0 (-) X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: 42009@debbugs.gnu.org Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=fail (rsa verify failed) header.d=disroot.org header.s=mail header.b=UPIR/9kj; dmarc=fail reason="SPF not aligned (relaxed)" header.from=disroot.org (policy=none); spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Spam-Score: 1.59 X-TUID: wPJAoOVwrOHn --=-8jj3MTje5Ex8fXeBTM41 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Hi, Yeah seems like it. Although I have to admit I'm pretty newbie in a lot=20 of this stuff. Do you suggest this bug should be filed against Guile? Marinus On Wed, Jun 24, 2020 at 00:46, zimoun wrote: > Dear, >=20 > Thank you for the bug report. It is something already noticed [1] but > without a clean bug report to track it. :-) >=20 > 1: >=20 >=20 > On Mon, 22 Jun 2020 at 19:07, Marinus > wrote: >=20 >> Run into a determinism problem today with guix pull. >> I run guix pull --rounds=3D3 but guix ended in error that the result >> wasn't the same. >=20 > For reproducing, the simplest is: >=20 > --8<---------------cut here---------------start------------->8--- > $ guix build --check --no-grafts -K \ > $(guix gc --derivers \ > $(readlink -f ~/.config/guix/current/lib/guix/package.cache)) > The following profile hooks will be built: > /gnu/store/l50sinckbl1y0fz2y4yk4vvfdvay9c8l-guix-package-cache.drv > /gnu/store/h69hdf14c11q7dip0gssfd4cv0qw8j7k-guix-package-cache.drv > building package cache... > (repl-version 0 1 1) > Generating package cache for=20 > '/gnu/store/67zi87xwv2d90kx8pzxsbw2q7qkh11ns-profile'... > (values (value=20 > "/gnu/store/0009whxhfz00lm027wbars8q4wb3rvia-guix-package-cache/lib/guix/= package.cache")) > guix build: error: derivation=20 > `/gnu/store/h69hdf14c11q7dip0gssfd4cv0qw8j7k-guix-package-cache.drv'=20 > may not be deterministic: output=20 > `/gnu/store/0009whxhfz00lm027wbars8q4wb3rvia-guix-package-cache'=20 > differs > --8<---------------cut here---------------end--------------->8--- >=20 > Then the usual "diffoscope": >=20 > --8<---------------cut here---------------start------------->8--- > diffoscope \ > /gnu/store/0009whxhfz00lm027wbars8q4wb3rvia-guix-package-cache/lib/guix/p= ackage.cache=20 > \ > /gnu/store/0009whxhfz00lm027wbars8q4wb3rvia-guix-package-cache-check/lib/= guix/package.cache\ > | head -n50 > --8<---------------cut here---------------end--------------->8--- >=20 > outputs something like: >=20 > --8<---------------cut here---------------start------------->8--- > ---=20 > /gnu/store/0009whxhfz00lm027wbars8q4wb3rvia-guix-package-cache/lib/guix/p= ackage.cache > +++=20 > /gnu/store/0009whxhfz00lm027wbars8q4wb3rvia-guix-package-cache-check/lib/= guix/package.cache > =E2=94=9C=E2=94=80=E2=94=80 readelf --wide --file-header {} > =E2=94=82 @@ -6,15 +6,15 @@ > =E2=94=82 OS/ABI: > =E2=94=82 ABI Version: 0 > =E2=94=82 Type: DYN (Shared object file) > =E2=94=82 Machine: None > =E2=94=82 Version: 0x1 > =E2=94=82 Entry point address: 0x0 > =E2=94=82 Start of program headers: 64 (bytes into file) > =E2=94=82 - Start of section headers: 4900296 (bytes into file) > =E2=94=82 + Start of section headers: 4900456 (bytes into file) > =E2=94=82 Flags: 0x0 > =E2=94=82 Size of this header: 64 (bytes) > =E2=94=82 Size of program headers: 56 (bytes) > =E2=94=82 Number of program headers: 3 > =E2=94=82 Size of section headers: 64 (bytes) > =E2=94=82 Number of section headers: 20 > =E2=94=82 Section header string table index: 17 > =E2=94=9C=E2=94=80=E2=94=80 readelf --wide --program-header {} > =E2=94=82 @@ -1,16 +1,16 @@ > =E2=94=82 > =E2=94=82 Elf file type is DYN (Shared object file) > =E2=94=82 Entry point 0x0 > =E2=94=82 There are 3 program headers, starting at offset 64 > =E2=94=82 > =E2=94=82 Program Headers: > =E2=94=82 Type Offset VirtAddr PhysAddr = =20 > FileSiz MemSiz Flg Align > =E2=94=82 - LOAD 0x000000 0x0000000000000000 0x000000000000000= 0=20 > 0x286a68 0x286a68 R 0x10000 > =E2=94=82 - LOAD 0x290000 0x0000000000290000 0x000000000029000= 0=20 > 0x21c5c8 0x21c5c8 RW 0x10000 > =E2=94=82 - DYNAMIC 0x286a08 0x0000000000286a08 0x0000000000286a0= 8=20 > 0x000060 0x000060 R 0x8 > =E2=94=82 + LOAD 0x000000 0x0000000000000000 0x000000000000000= 0=20 > 0x286b78 0x286b78 R 0x10000 > =E2=94=82 + LOAD 0x290000 0x0000000000290000 0x000000000029000= 0=20 > 0x21c668 0x21c668 RW 0x10000 > =E2=94=82 + DYNAMIC 0x286b18 0x0000000000286b18 0x0000000000286b1= 8=20 > 0x000060 0x000060 R 0x8 > =E2=94=82 > =E2=94=82 Section to Segment mapping: > =E2=94=82 Segment Sections... > =E2=94=82 00 .rodata .rtl-text .dynamic > =E2=94=82 01 .data > =E2=94=82 02 .dynamic > =E2=94=9C=E2=94=80=E2=94=80 readelf --wide --sections {} > =E2=94=82=E2=94=84 stderr from `readelf --wide --sections {}`: > =E2=94=82=E2=94=84 readelf: Warning: [ 5]: Link field (0) should index a = string=20 > section. > =E2=94=82 @@ -1,29 +1,29 @@ > =E2=94=82 -There are 20 section headers, starting at offset 0x4ac5c8: > =E2=94=82 +There are 20 section headers, starting at offset 0x4ac668: > --8<---------------cut here---------------end--------------->8--- >=20 > Well, I do not know what should the next step. I mean this > "package.cache" file is created by the function > gnu/packages.scm:(generate-package-cache) which reads: >=20 > --8<---------------cut here---------------start------------->8--- > ;; Store the cache as a '.go' file. This makes loading fast=20 > and reduces > ;; heap usage since some of the static data is directly mmapped. > (put-bytevector port > (compile `'(,@exp) > #:to 'bytecode > #:opts '(#:to-file? #t))))) > --8<---------------cut here---------------end--------------->8--- >=20 > Then it is on the Guile side, isn't it? >=20 >=20 > All the best, > simon = --=-8jj3MTje5Ex8fXeBTM41 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Yeah seems like = it. Although I have to admit I'm pretty newbie in a lot of this stuff.
Do you suggest this bug should be filed against Guile?

=
Marinus

On W= ed, Jun 24, 2020 at 00:46, zimoun <zimon.toutoune@gmail.com> wrote:
Dear, Thank you for the bug report. It is something already noticed [1] but without a clean bug report to track it. :-) 1: http://issues.guix= .gnu.org/issue/39258#86 On Mon, 22 Jun 2020 at 19:07, Marinus <marinus.savoritias@disroot.org> wrote:
Run into a determinism problem today with guix pull. I run guix pull --rounds=3D3 but guix ended in error that the result wasn't the same.
For reproducing, the simplest is: --8<---------------cut here---------------start------------->8--- $ guix build --check --no-grafts -K \ $(guix gc --derivers \ $(readlink -f ~/.config/guix/current/lib/guix/package.cache)) The following profile hooks will be built: /gnu/store/l50sinckbl1y0fz2y4yk4vvfdvay9c8l-guix-package-cache.drv /gnu/store/h69hdf14c11q7dip0gssfd4cv0qw8j7k-guix-package-cache.drv building package cache... (repl-version 0 1 1) Generating package cache for '/gnu/store/67zi87xwv2d90kx8pzxsbw2q7qkh11ns-p= rofile'... (values (value "/gnu/store/0009whxhfz00lm027wbars8q4wb3rvia-guix-package-ca= che/lib/guix/package.cache")) guix build: error: derivation `/gnu/store/h69hdf14c11q7dip0gssfd4cv0qw8j7k-= guix-package-cache.drv' may not be deterministic: output `/gnu/store/0009wh= xhfz00lm027wbars8q4wb3rvia-guix-package-cache' differs --8<---------------cut here---------------end--------------->8--- Then the usual "diffoscope": --8<---------------cut here---------------start------------->8--- diffoscope \ /gnu/store/0009whxhfz00lm027wbars8q4wb3rvia-guix-package-cache/lib/guix/pac= kage.cache \ /gnu/store/0009whxhfz00lm027wbars8q4wb3rvia-guix-package-cache-check/lib/gu= ix/package.cache\ | head -n50 --8<---------------cut here---------------end--------------->8--- outputs something like: --8<---------------cut here---------------start------------->8--- --- /gnu/store/0009whxhfz00lm027wbars8q4wb3rvia-guix-package-cache/lib/guix= /package.cache +++ /gnu/store/0009whxhfz00lm027wbars8q4wb3rvia-guix-package-cache-check/li= b/guix/package.cache =E2=94=9C=E2=94=80=E2=94=80 readelf --wide --file-header {} =E2=94=82 @@ -6,15 +6,15 @@ =E2=94=82 OS/ABI: <unknown: ff> =E2=94=82 ABI Version: 0 =E2=94=82 Type: DYN (Shared object file) =E2=94=82 Machine: None =E2=94=82 Version: 0x1 =E2=94=82 Entry point address: 0x0 =E2=94=82 Start of program headers: 64 (bytes into file) =E2=94=82 - Start of section headers: 4900296 (bytes into file) =E2=94=82 + Start of section headers: 4900456 (bytes into file) =E2=94=82 Flags: 0x0 =E2=94=82 Size of this header: 64 (bytes) =E2=94=82 Size of program headers: 56 (bytes) =E2=94=82 Number of program headers: 3 =E2=94=82 Size of section headers: 64 (bytes) =E2=94=82 Number of section headers: 20 =E2=94=82 Section header string table index: 17 =E2=94=9C=E2=94=80=E2=94=80 readelf --wide --program-header {} =E2=94=82 @@ -1,16 +1,16 @@ =E2=94=82 =20 =E2=94=82 Elf file type is DYN (Shared object file) =E2=94=82 Entry point 0x0 =E2=94=82 There are 3 program headers, starting at offset 64 =E2=94=82 =20 =E2=94=82 Program Headers: =E2=94=82 Type Offset VirtAddr PhysAddr = FileSiz MemSiz Flg Align =E2=94=82 - LOAD 0x000000 0x0000000000000000 0x0000000000000000 = 0x286a68 0x286a68 R 0x10000 =E2=94=82 - LOAD 0x290000 0x0000000000290000 0x0000000000290000 = 0x21c5c8 0x21c5c8 RW 0x10000 =E2=94=82 - DYNAMIC 0x286a08 0x0000000000286a08 0x0000000000286a08 = 0x000060 0x000060 R 0x8 =E2=94=82 + LOAD 0x000000 0x0000000000000000 0x0000000000000000 = 0x286b78 0x286b78 R 0x10000 =E2=94=82 + LOAD 0x290000 0x0000000000290000 0x0000000000290000 = 0x21c668 0x21c668 RW 0x10000 =E2=94=82 + DYNAMIC 0x286b18 0x0000000000286b18 0x0000000000286b18 = 0x000060 0x000060 R 0x8 =E2=94=82 =20 =E2=94=82 Section to Segment mapping: =E2=94=82 Segment Sections... =E2=94=82 00 .rodata .rtl-text .dynamic =20 =E2=94=82 01 .data=20 =E2=94=82 02 .dynamic =E2=94=9C=E2=94=80=E2=94=80 readelf --wide --sections {} =E2=94=82=E2=94=84 stderr from `readelf --wide --sections {}`: =E2=94=82=E2=94=84 readelf: Warning: [ 5]: Link field (0) should index a st= ring section. =E2=94=82 @@ -1,29 +1,29 @@ =E2=94=82 -There are 20 section headers, starting at offset 0x4ac5c8: =E2=94=82 +There are 20 section headers, starting at offset 0x4ac668: --8<---------------cut here---------------end--------------->8--- Well, I do not know what should the next step. I mean this "package.cache" file is created by the function gnu/packages.scm:(generate-package-cache) which reads: --8<---------------cut here---------------start------------->8--- ;; Store the cache as a '.go' file. This makes loading fast and redu= ces ;; heap usage since some of the static data is directly mmapped. (put-bytevector port (compile `'(,@exp) #:to 'bytecode #:opts '(#:to-file? #t))))) --8<---------------cut here---------------end--------------->8--- Then it is on the Guile side, isn't it?=20 All the best, simon
= --=-8jj3MTje5Ex8fXeBTM41--