Diff of the two buildlogs: -- --- b1/build.log 2025-03-16 11:48:18.816790749 +0000 +++ b2/build.log 2025-03-16 11:52:44.972774072 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat Apr 18 06:10:24 -12 2026 -I: pbuilder-time-stamp: 1776535824 +I: Current time: Mon Mar 17 01:48:21 +14 2025 +I: pbuilder-time-stamp: 1742125701 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -27,52 +27,84 @@ dpkg-source: info: applying 0004-fix-FTBFS-with-ruby-rspec-3.12.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1069836/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/960430/tmp/hooks/D01_modify_environment starting +debug: Running on ionos11-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Mar 16 11:48 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/960430/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/960430/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=20 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='2ef3f2ffe2e0494c8dcfe3608621a939' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='1069836' - PS1='# ' - PS2='> ' + INVOCATION_ID=88b8201025eb420c8337d1a030672ad3 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=960430 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.JgKhmZHk/pbuilderrc_rCfa --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.JgKhmZHk/b1 --logfile b1/build.log ruby-seamless-database-pool_1.0.20-4.dsc' - SUDO_GID='110' - SUDO_UID='105' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://213.165.73.152:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.JgKhmZHk/pbuilderrc_eU8J --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.JgKhmZHk/b2 --logfile b2/build.log ruby-seamless-database-pool_1.0.20-4.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://46.16.76.132:3128 I: uname -a - Linux ionos5-amd64 6.12.12+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.12-1~bpo12+1 (2025-02-23) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Mar 4 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1069836/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Mar 4 11:20 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/960430/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -261,7 +293,7 @@ Get: 143 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 144 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 145 http://deb.debian.org/debian trixie/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 49.8 MB in 3s (19.5 MB/s) +Fetched 49.8 MB in 3s (18.4 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19803 files and directories currently installed.) @@ -742,8 +774,8 @@ Setting up tzdata (2025a-2) ... Current default time zone: 'Etc/UTC' -Local time is now: Sat Apr 18 18:11:00 UTC 2026. -Universal Time is now: Sat Apr 18 18:11:00 UTC 2026. +Local time is now: Sun Mar 16 11:50:45 UTC 2025. +Universal Time is now: Sun Mar 16 11:50:45 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-2) ... @@ -876,7 +908,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-seamless-database-pool-1.0.20/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-seamless-database-pool_1.0.20-4_source.changes +I: user script /srv/workspace/pbuilder/960430/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/960430/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-seamless-database-pool-1.0.20/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-seamless-database-pool_1.0.20-4_source.changes dpkg-buildpackage: info: source package ruby-seamless-database-pool dpkg-buildpackage: info: source version 1.0.20-4 dpkg-buildpackage: info: source distribution unstable @@ -909,7 +945,7 @@ │ ruby-seamless-database-pool: Installing files and building extensions for ruby3.3│ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20260418-1082032-khvcka/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250317-1018465-9yy99k/gemspec WARNING: open-ended dependency on activerecord (>= 3.2.0) is not recommended if activerecord is semantically versioned, use: add_runtime_dependency "activerecord", "~> 3.2", ">= 3.2.0" @@ -928,7 +964,7 @@ Name: seamless_database_pool Version: 1.0.20 File: seamless_database_pool-1.0.20.gem -/usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-seamless-database-pool/usr/share/rubygems-integration/all /tmp/d20260418-1082032-khvcka/seamless_database_pool-1.0.20.gem +/usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-seamless-database-pool/usr/share/rubygems-integration/all /tmp/d20250317-1018465-9yy99k/seamless_database_pool-1.0.20.gem /build/reproducible-path/ruby-seamless-database-pool-1.0.20/debian/ruby-seamless-database-pool/usr/share/rubygems-integration/all/gems/seamless_database_pool-1.0.20/VERSION /build/reproducible-path/ruby-seamless-database-pool-1.0.20/debian/ruby-seamless-database-pool/usr/share/rubygems-integration/all/gems/seamless_database_pool-1.0.20/lib/active_record/connection_adapters/seamless_database_pool_adapter.rb /build/reproducible-path/ruby-seamless-database-pool-1.0.20/debian/ruby-seamless-database-pool/usr/share/rubygems-integration/all/gems/seamless_database_pool-1.0.20/lib/seamless_database_pool.rb @@ -972,93 +1008,93 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 13566 - -SeamlessDatabasePool::ControllerFilter - should allow setting a connection type for all actions - should work with nothing set - should be able to force using the master connection on the next request - should allow setting a connection type for actions - should allow setting a connection type for a single action - should not break trying to force the master connection if sessions are not enabled - should inherit the superclass' options - should force the master connection on the next request for a redirect in master connection block - should not force the master connection on the next request for a redirect not in master connection block - should work with a Rails 2 controller +Randomized with seed 16415 SeamlessDatabasePoolAdapter ActiveRecord::Base extension - should raise an error if the adapter would be recursive should establish the connections in the pool merging global options into the connection options + should raise an error if the adapter would be recursive + +SeamlessDatabasePool::ConnectionStatistics + should increment counts only once within a block + should increment statistics on execute + should be able to clear the statistics + should increment statistics on update + should increment statistics on insert + should increment statistics on select SeamlessDatabasePool - should be able to specify a default read connection type instead of :master - should use the master connection if the connection is forcing it - should be able to use persistent read connections within a block + should be able to set using the master connection + should be able to change the persistent connection + should be able to set using random read connections should pull out the master configurations for compatibility with rake db:* tasks - should be able to use random read connections within a block - should use the master connection by default should be able to use the master connection within a block - should be able to set using the master connection + should be able to use random read connections within a block + should use the master connection if the connection is forcing it should be able to set using persistent read connections - should be able to change the persistent connection + should be able to specify a default read connection type instead of :master should be able to use connection blocks within connection blocks - should be able to set using random read connections - -SeamlessDatabasePool::ConnectionStatistics - should increment statistics on insert - should increment statistics on update - should be able to clear the statistics - should increment counts only once within a block - should increment statistics on execute - should increment statistics on select + should be able to use persistent read connections within a block + should use the master connection by default SeamlessDatabasePoolAdapter should be able to be converted to a string - reconnection - should use a different connection on a retry if the original connection could not be reconnected - should try to execute a read statement again after a connection error - should not return a connection to the pool until it can be reconnected - should not try to execute a read statement again after a connection error if the master connection must be used - should try to reconnect dead connections when they become available again - should not try to reconnect a connection during a retry - should proxy requests to a connection - should return dead connections to the pool after the timeout has expired - should not try to reconnect live connections - should not try to suppress a read connection that wasn't available in the read pool - should try all connections again if none of them can be reconnected - should keep track of read connections that can't be reconnected for a set period - should not try to execute a read statement again after a non-connection error - read connection methods - should proxy execute methods to a read connection - should proxy select methods to a read connection - should proxy select_rows methods to a read connection fork to all connections - should fork disconnect! to all connections - should fork reconnect! to all connections should fork reset_runtime to all connections + should fork reconnect! to all connections + should fork disconnect! to all connections When read-only connection type is persistent or random + should fork active? to all connections and return true if all are up should fork active? to all connections and return false if one is down should fork verify! to all connections - should fork active? to all connections and return true if all are up when read-only connection type is master should fork active? to master connection only should fork verify! to master connection only selecting a connection from the pool - should select the master connection if the read pool is empty - should use the master connection inside a transaction should select a random read connection - should return the current read connection should initialize the connection pool + should use the master connection inside a transaction + should return the current read connection + should select the master connection if the read pool is empty should use the master connection in a block + read connection methods + should proxy execute methods to a read connection + should proxy select methods to a read connection + should proxy select_rows methods to a read connection master connection methods should proxy update method to the master connection should proxy columns method to the master connection should proxy insert method to the master connection + reconnection + should return dead connections to the pool after the timeout has expired + should not try to execute a read statement again after a connection error if the master connection must be used + should not return a connection to the pool until it can be reconnected + should try to execute a read statement again after a connection error + should use a different connection on a retry if the original connection could not be reconnected + should try all connections again if none of them can be reconnected + should keep track of read connections that can't be reconnected for a set period + should not try to reconnect a connection during a retry + should try to reconnect dead connections when they become available again + should not try to suppress a read connection that wasn't available in the read pool + should not try to execute a read statement again after a non-connection error + should not try to reconnect live connections + should proxy requests to a connection + +SeamlessDatabasePool::ControllerFilter + should allow setting a connection type for a single action + should not force the master connection on the next request for a redirect not in master connection block + should be able to force using the master connection on the next request + should allow setting a connection type for all actions + should allow setting a connection type for actions + should inherit the superclass' options + should not break trying to force the master connection if sessions are not enabled + should work with a Rails 2 controller + should work with nothing set + should force the master connection on the next request for a redirect in master connection block -Finished in 0.79328 seconds (files took 0.75092 seconds to load) +Finished in 1.42 seconds (files took 4.42 seconds to load) 64 examples, 0 failures -Randomized with seed 13566 +Randomized with seed 16415 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1092,12 +1128,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/960430/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/960430/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/1069836 and its subdirectories -I: Current time: Sat Apr 18 06:11:17 -12 2026 -I: pbuilder-time-stamp: 1776535877 +I: removing directory /srv/workspace/pbuilder/960430 and its subdirectories +I: Current time: Mon Mar 17 01:52:44 +14 2025 +I: pbuilder-time-stamp: 1742125964