Diff of the two buildlogs: -- --- b1/build.log 2025-11-05 00:13:42.483550754 +0000 +++ b2/build.log 2025-11-05 00:14:36.039613139 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Dec 7 18:35:53 -12 2026 -I: pbuilder-time-stamp: 1796711753 +I: Current time: Wed Nov 5 14:13:54 +14 2025 +I: pbuilder-time-stamp: 1762301634 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -24,53 +24,85 @@ dpkg-source: info: applying 0001-Drop-spec-hpack_test_spec.rb-since-there-is-no-raw-d.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/398847/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2875165/tmp/hooks/D01_modify_environment starting +debug: Running on codethink04-arm64. +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 Nov 5 00:14 /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/2875165/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2875165/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='arm64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='arm64' + 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]="3" [2]="3" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 nocheck' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='cf958e193ba64ed4a95153306707d527' - 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='398847' - PS1='# ' - PS2='> ' + INVOCATION_ID=b7a4f3fd5b3a4f31925f3f870e8ac960 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-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=2875165 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.aLS81vvK/pbuilderrc_7AZZ --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.aLS81vvK/b1 --logfile b1/build.log ruby-http-2_1.1.1-1.dsc' - SUDO_GID='109' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4: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.aLS81vvK/pbuilderrc_Vlh2 --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.aLS81vvK/b2 --logfile b2/build.log ruby-http-2_1.1.1-1.dsc' + SUDO_GID=109 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink03-arm64 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/398847/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2875165/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -264,7 +296,7 @@ Get: 148 http://deb.debian.org/debian unstable/main arm64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 149 http://deb.debian.org/debian unstable/main arm64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 150 http://deb.debian.org/debian unstable/main arm64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 36.4 MB in 0s (108 MB/s) +Fetched 36.4 MB in 0s (161 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1:arm64. (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 ... 19968 files and directories currently installed.) @@ -762,8 +794,8 @@ Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Tue Dec 8 06:36:20 UTC 2026. -Universal Time is now: Tue Dec 8 06:36:20 UTC 2026. +Local time is now: Wed Nov 5 00:14:15 UTC 2025. +Universal Time is now: Wed Nov 5 00:14:15 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-3) ... @@ -899,7 +931,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-http-2-1.1.1/ && 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-http-2_1.1.1-1_source.changes +I: user script /srv/workspace/pbuilder/2875165/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/2875165/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-http-2-1.1.1/ && 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-http-2_1.1.1-1_source.changes dpkg-buildpackage: info: source package ruby-http-2 dpkg-buildpackage: info: source version 1.1.1-1 dpkg-buildpackage: info: source distribution unstable @@ -920,8 +956,7 @@ dh_ruby --configure dh_auto_build -O--buildsystem=ruby dh_ruby --build - dh_auto_test -O--buildsystem=ruby - dh_ruby --test +dh: command-omitted: The call to "dh_auto_test -O--buildsystem=ruby" was omitted due to "DEB_BUILD_OPTIONS=nocheck" create-stamp debian/debhelper-build-stamp dh_testroot -O--buildsystem=ruby dh_prep -O--buildsystem=ruby @@ -932,7 +967,7 @@ │ ruby-http-2: Installing files and building extensions for ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20261207-415248-rr06vb/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20251105-2886198-e51dz2/gemspec WARNING: description and summary are identical WARNING: You have specified the uri: https://github.com/igrigorik/http-2 @@ -945,7 +980,7 @@ Name: http-2 Version: 1.1.1 File: http-2-1.1.1.gem -/usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-http-2/usr/share/rubygems-integration/all /tmp/d20261207-415248-rr06vb/http-2-1.1.1.gem +/usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-http-2/usr/share/rubygems-integration/all /tmp/d20251105-2886198-e51dz2/http-2-1.1.1.gem /build/reproducible-path/ruby-http-2-1.1.1/debian/ruby-http-2/usr/share/rubygems-integration/all/gems/http-2-1.1.1/lib/http/2.rb /build/reproducible-path/ruby-http-2-1.1.1/debian/ruby-http-2/usr/share/rubygems-integration/all/gems/http-2-1.1.1/lib/http/2/base64.rb /build/reproducible-path/ruby-http-2-1.1.1/debian/ruby-http-2/usr/share/rubygems-integration/all/gems/http-2-1.1.1/lib/http/2/client.rb @@ -996,604 +1031,7 @@ cd - cd - dh_installchangelogs -pruby-http-2 /build/reproducible-path/ruby-http-2-1.1.1/CHANGELOG.md upstream -/usr/bin/ruby3.3 /usr/bin/gem2deb-test-runner - -┌──────────────────────────────────────────────────────────────────────────────┐ -│ Checking Rubygems dependency resolution on ruby3.3 │ -└──────────────────────────────────────────────────────────────────────────────┘ - -RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-http-2-1.1.1/debian/ruby-http-2/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-http-2-1.1.1/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.3.0:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/aarch64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/aarch64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -e gem\ \"http-2\" - -┌──────────────────────────────────────────────────────────────────────────────┐ -│ Run tests for ruby3.3 from debian/ruby-tests.rake │ -└──────────────────────────────────────────────────────────────────────────────┘ - -RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-http-2-1.1.1/debian/ruby-http-2/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-http-2-1.1.1/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.3.0:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/aarch64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/aarch64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake -/usr/bin/ruby3.3 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation - -HTTP2::Client - behaves like a connection - settings synchronization - should reflect incoming settings when SETTINGS is received - should send SETTINGS ACK when SETTINGS is received - flow control - should initialize to default flow window - should update connection and stream windows on SETTINGS - should initialize streams with window specified by peer - should observe connection flow control - should update window when data received is over half of the maximum local window size - connection management - should respond to PING frames - should fire callback on PONG - should fire callback on receipt of GOAWAY - should raise error when opening new stream after sending GOAWAY - should raise error when opening new stream after receiving GOAWAY - should not raise error when receiving connection management frames immediately after emitting goaway - should respond with protocol error when receiving goaway - should raise error on frame for invalid stream ID - should allow to change the frame size - stream management - should initialize to default stream limit (100) - should change stream limit to received SETTINGS value - should count open streams against stream limit - should not count reserved streams against stream limit - should not exceed stream limit set by peer - should initialize idle stream on PRIORITY frame - framing - should chain continuation frames - should refuse continuation frames which overflow the max frame size - should require that split header blocks are a contiguous sequence - should require that split promise blocks are a contiguous sequence - should raise connection error on decode of invalid frame - should emit encoded frames via on(:frame) - should compress stream headers - should generate CONTINUATION if HEADERS is too long - should not generate CONTINUATION if HEADERS fits exactly in a frame - should not generate CONTINUATION if HEADERS fits exactly in a frame - should generate CONTINUATION if HEADERS exceed the max payload by one byte - API - .settings should emit SETTINGS frames - .ping should generate PING frames - .window_update should emit WINDOW_UPDATE frames - initialization and settings - should raise error if first frame is not settings - should not raise error if first frame is SETTINGS - should raise error if SETTINGS stream != 0 - should return odd stream IDs - should emit connection header and SETTINGS on new client connection - should initialize client with custom connection settings - should initialize client when receiving server settings before sending ack - settings synchronization - should reflect outgoing settings when ack is received - upgrade - fails when client has already created streams - sends the preface - initializes the first stream in the half-closed state - push - should disallow client initiated push - should raise error on PUSH_PROMISE against stream 0 - should raise error on PUSH_PROMISE against bogus stream - should raise error on PUSH_PROMISE against non-idle stream - should emit stream object for received PUSH_PROMISE - should emit promise headers for received PUSH_PROMISE - should auto RST_STREAM promises against locally-RST stream - alt-svc - received in the connection - should emit :altsvc when receiving one - should not emit :altsvc when the frame when contains no host - received in a stream - should emit :altsvc - should not emit :alt_svc when the frame when contains a origin - origin - received in the connection - should emit :origin when receiving one - initialized as h2c - should be ignored - when receiving a reserved flag - should be ignored - received in a stream - should be ignored - connection management - should send GOAWAY frame on connection error - stream management - should process connection management frames after GOAWAY - framing - should buffer incomplete frames - should decompress header blocks regardless of stream state - should decode non-contiguous header blocks - API - .goaway should generate GOAWAY frame with last processed stream ID - .settings_header - encodes the settings frame in base64 - -HTTP2::Header - literal representation - integer - should encode 10 using a 5-bit prefix - should encode 10 using a 0-bit prefix - should encode 1337 using a 5-bit prefix - should encode 1337 using a 0-bit prefix - string - should handle ascii codepoints with huffman - should handle utf-8 codepoints with huffman - should handle long utf-8 strings with huffman - should handle ascii codepoints without huffman - should handle utf-8 codepoints without huffman - should handle long utf-8 strings without huffman - choosing shorter representation - should return plain representation - should return huffman representation - should return plain representation - header representation - should handle indexed representation - should raise when decoding indexed representation with index zero - literal w/o indexing representation - should handle indexed header - should handle literal header - literal w/ incremental indexing - should handle indexed header - should handle literal header - literal never indexed - should handle indexed header - should handle literal header - shared compression context - should be initialized with empty headers - processing - should clear table if entry exceeds table size - should shrink table if set smaller size - should reject table size update if exceed limit - no indexing - should process indexed header with literal value - should process literal header with literal value - never indexed - should process indexed header with literal value - should process literal header with literal value - incremental indexing - should process indexed header with literal value - should process literal header with literal value - size bounds - should drop headers from end of table - encode - downcases the field - fills :path if empty - decode - spec example D.3. Request Examples without Huffman - request 1 - should emit expected headers - should update header table - should compute header table size - request 2 - should emit expected headers - should update header table - should compute header table size - request 3 - should emit expected headers - should update header table - should compute header table size - spec example D.4. Request Examples with Huffman - request 1 - should emit expected headers - should update header table - should compute header table size - request 2 - should emit expected headers - should update header table - should compute header table size - request 3 - should emit expected headers - should update header table - should compute header table size - spec example D.4.a. Request Examples with Huffman - Client Handling of Improperly Ordered Headers - request 1 - should emit expected headers - should update header table - should compute header table size - request 2 - should emit expected headers - should update header table - should compute header table size - request 3 - should emit expected headers - should update header table - should compute header table size - spec example D.4.b. Request Examples with Huffman - Server Handling of Improperly Ordered Headers - request 1 - should raise CompressionError - spec example D.5. Response Examples without Huffman - request 1 - should emit expected headers - should update header table - should compute header table size - request 2 - should emit expected headers - should update header table - should compute header table size - request 3 - should emit expected headers - should update header table - should compute header table size - spec example D.6. Response Examples with Huffman - request 1 - should emit expected headers - should update header table - should compute header table size - request 2 - should emit expected headers - should update header table - should compute header table size - request 3 - should emit expected headers - should update header table - should compute header table size - spec example D.6.a. Response Examples with Huffman - dynamic table size updates should not trigger exceptions - request 1 - should emit expected headers - should update header table - should compute header table size - encode - spec example D.3. Request Examples without Huffman - request 1 - should emit expected bytes on wire - should update header table - should compute header table size - request 2 - should emit expected bytes on wire - should update header table - should compute header table size - request 3 - should emit expected bytes on wire - should update header table - should compute header table size - spec example D.4. Request Examples with Huffman - request 1 - should emit expected bytes on wire - should update header table - should compute header table size - request 2 - should emit expected bytes on wire - should update header table - should compute header table size - request 3 - should emit expected bytes on wire - should update header table - should compute header table size - spec example D.4.a. Request Examples with Huffman - Client Handling of Improperly Ordered Headers - request 1 - should emit expected bytes on wire - should update header table - should compute header table size - request 2 - should emit expected bytes on wire - should update header table - should compute header table size - request 3 - should emit expected bytes on wire - should update header table - should compute header table size - spec example D.5. Response Examples without Huffman - request 1 - should emit expected bytes on wire - should update header table - should compute header table size - request 2 - should emit expected bytes on wire - should update header table - should compute header table size - request 3 - should emit expected bytes on wire - should update header table - should compute header table size - spec example D.6. Response Examples with Huffman - request 1 - should emit expected bytes on wire - should update header table - should compute header table size - request 2 - should emit expected bytes on wire - should update header table - should compute header table size - request 3 - should emit expected bytes on wire - should update header table - should compute header table size - -HTTP2::Connection - Headers pre/post processing - should not concatenate multiple occurences of a header field with the same name - should not split zero-concatenated header field values - -HTTP2::Emitter - should raise error on missing callback - should allow multiple callbacks on single event - should execute callback with optional args - should pass emitted callbacks to listeners - should allow events with no callbacks - should execute callback exactly once - -HTTP2::Framer - should determine frame length - should parse single frame at a time - should process full frames only - should ignore unknown extension frames - common header - should generate common 9 byte header - should parse common 9 byte header - should generate a large frame - should raise exception on invalid frame type when sending - should raise exception on invalid stream ID - should raise exception on invalid frame flag - should raise exception on invalid frame size - DATA - should generate and parse bytes - HEADERS - should generate and parse bytes - should carry an optional stream priority - PRIORITY - should generate and parse bytes - RST_STREAM - should generate and parse bytes - SETTINGS - should generate and parse bytes - should generate settings when id is given as an integer - should ignore custom settings when sending - should ignore custom settings when receiving - should raise exception on sending invalid stream ID - should raise exception on receiving invalid stream ID - should raise exception on sending invalid setting - should raise exception on receiving invalid payload length - PUSH_PROMISE - should generate and parse bytes - PING - should generate and parse bytes - should raise exception on invalid payload - GOAWAY - should generate and parse bytes - should treat debug payload as optional - WINDOW_UPDATE - should generate and parse bytes - should break when the increment is too large - CONTINUATION - should generate and parse bytes - ALTSVC - should generate and parse bytes - Padding - generating data frame padded 1 - should generate a frame with padding - should fill padded octets with zero - should parse a frame with padding - should preserve payload - generating data frame padded 256 - should generate a frame with padding - should fill padded octets with zero - should parse a frame with padding - should preserve payload - generating headers frame padded 1 - should generate a frame with padding - should fill padded octets with zero - should parse a frame with padding - should preserve payload - generating headers frame padded 256 - should generate a frame with padding - should fill padded octets with zero - should parse a frame with padding - should preserve payload - generating push_promise frame padded 1 - should generate a frame with padding - should fill padded octets with zero - should parse a frame with padding - should preserve payload - generating push_promise frame padded 256 - should generate a frame with padding - should fill padded octets with zero - should parse a frame with padding - should preserve payload - generating with invalid padding length - should raise error on trying to generate data frame padded with invalid 0 - should raise error on trying to generate data frame padded with invalid 257 - should raise error on trying to generate data frame padded with invalid 1334 - should raise error when adding a padding would make frame too large - parsing frames with invalid paddings - should raise exception when the given padding is longer than the payload - -HTTP2::Header::Huffman - encode - should encode www.example.com into f1e3c2e5f23a6ba0ab90f4ff - should encode no-cache into a8eb10649cbf - should encode Mon, 21 Oct 2013 20:13:21 GMT into d07abe941054d444a8200595040b8166e082a62d1bff - decode - should decode f1e3c2e5f23a6ba0ab90f4ff into www.example.com - should decode a8eb10649cbf into no-cache - should decode d07abe941054d444a8200595040b8166e082a62d1bff into Mon, 21 Oct 2013 20:13:21 GMT - should encode then decode 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0' into the same - should encode then decode 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' into the same - should encode then decode 'http://www.craigslist.org/about/sites/' into the same - should encode then decode 'cl_b=AB2BKbsl4hGM7M4nH5PYWghTM5A; cl_def_lang=en; cl_def_hp=shoals' into the same - should encode then decode 'image/png,image/*;q=0.8,*/*;q=0.5' into the same - should encode then decode 'BX=c99r6jp89a7no&b=3&s=q4; localization=en-us%3Bus%3Bus' into the same - should encode then decode 'UTF-8でエンコードした日本語文字列' into the same - should encode/decode all_possible 2-byte sequences - should raise when input is shorter than expected - should raise when input is not padded by 1s - should raise when exceedingly padded - should raise when EOS is explicitly encoded - -HTTP2::Server - should allow server push - should allow to send supported origins - behaves like a connection - settings synchronization - should reflect incoming settings when SETTINGS is received - should send SETTINGS ACK when SETTINGS is received - flow control - should initialize to default flow window - should update connection and stream windows on SETTINGS - should initialize streams with window specified by peer - should observe connection flow control - should update window when data received is over half of the maximum local window size - connection management - should respond to PING frames - should fire callback on PONG - should fire callback on receipt of GOAWAY - should raise error when opening new stream after sending GOAWAY - should raise error when opening new stream after receiving GOAWAY - should not raise error when receiving connection management frames immediately after emitting goaway - should respond with protocol error when receiving goaway - should raise error on frame for invalid stream ID - should allow to change the frame size - stream management - should initialize to default stream limit (100) - should change stream limit to received SETTINGS value - should count open streams against stream limit - should not count reserved streams against stream limit - should not exceed stream limit set by peer - should initialize idle stream on PRIORITY frame - framing - should chain continuation frames - should refuse continuation frames which overflow the max frame size - should require that split header blocks are a contiguous sequence - should require that split promise blocks are a contiguous sequence - should raise connection error on decode of invalid frame - should emit encoded frames via on(:frame) - should compress stream headers - should generate CONTINUATION if HEADERS is too long - should not generate CONTINUATION if HEADERS fits exactly in a frame - should not generate CONTINUATION if HEADERS fits exactly in a frame - should generate CONTINUATION if HEADERS exceed the max payload by one byte - API - .settings should emit SETTINGS frames - .ping should generate PING frames - .window_update should emit WINDOW_UPDATE frames - initialization and settings - should return even stream IDs - should emit SETTINGS on new connection - should initialize client with custom connection settings - should allow upgrade - for bodyless responses - for responses with body - connection management - should raise error on invalid connection header - should not raise an error on frame for a closed stream ID - stream management - should initialize stream with HEADERS priority value - should process connection management frames after GOAWAY - API - .goaway should generate GOAWAY frame with last processed stream ID - -HTTP2::Stream - stream states - should initiliaze all streams to IDLE - should set custom stream priority - idle - should transition to open on sent HEADERS - should transition to open on received HEADERS - should transition to reserved (local) on sent PUSH_PROMISE - should transition to reserved (remote) on received PUSH_PROMISE - should reprioritize stream on sent PRIORITY - should reprioritize stream on received PRIORITY - reserved (local) - should transition on sent PUSH_PROMISE - should allow HEADERS to be sent - should raise error if sending invalid frames - should raise error on receipt of invalid frames - should transition to half closed (remote) on sent HEADERS - should transition to closed on sent RST_STREAM - should transition to closed on received RST_STREAM - should reprioritize stream on PRIORITY - should increment remote_window on received WINDOW_UPDATE - should not increment connection remote_window on received WINDOW_UPDATE - reserved (remote) - should transition on received PUSH_PROMISE - should raise error if sending invalid frames - should raise error on receipt of invalid frames - should transition to half closed (local) on received HEADERS - should transition to closed on sent RST_STREAM - should transition to closed on received RST_STREAM - should reprioritize stream on PRIORITY - should increment local_window on sent WINDOW_UPDATE - open - should allow any valid frames types to be sent - should allow frames of any type to be received - should transition to half closed (local) if sending END_STREAM - should transition to half closed (remote) if receiving END_STREAM - should transition to half closed if remote opened with END_STREAM - should transition to half closed if local opened with END_STREAM - should transition to closed if sending RST_STREAM - should transition to closed if receiving RST_STREAM - should emit :active on open transition - should not emit :active on transition from open - should emit :close on close transition - should emit :close after frame is processed - should emit :close with reason - should reprioritize stream on sent PRIORITY - should reprioritize stream on received PRIORITY - half closed (local) - should raise error on attempt to send invalid frames - should transition to closed on receipt of END_STREAM flag - should transition to closed on receipt of RST_STREAM frame - should transition to closed if RST_STREAM frame is sent - should ignore received WINDOW_UPDATE frames - should ignore received PRIORITY frames - should reprioritize stream on sent PRIORITY - should reprioritize stream (and decendants) on received PRIORITY - should increment local_window on sent WINDOW_UPDATE - should emit :half_close event on transition - should emit :close event on transition to closed - half closed (remote) - should raise STREAM_CLOSED error on reciept of frames - should transition to closed if END_STREAM flag is sent - should not transition to closed if END_STREAM flag is sent when overflowing window - should transition to closed when send buffer is emptied - should transition to closed if RST_STREAM is sent - should transition to closed on reciept of RST_STREAM frame - should ignore sent WINDOW_UPDATE frames - should increment remote_window on received WINDOW_UPDATE - should reprioritize stream on sent PRIORITY - should reprioritize stream on received PRIORITY - should emit :half_close event on transition - should emit :close event on close transition - closed - remote closed stream - should raise STREAM_CLOSED on attempt to send frames - should raise STREAM_CLOSED on receipt of frame - should allow PRIORITY, RST_STREAM to be sent - should allow PRIORITY, RST_STREAM to be received - should reprioritize stream on sent PRIORITY - should reprioritize stream on received PRIORITY - should ignore received WINDOW_UPDATE frames - local closed via RST_STREAM frame - should ignore received frames - flow control - should initialize to default flow control window - should update window size on DATA frames only - should update window size on receipt of WINDOW_UPDATE - should observe session flow control - should not update window when data received is less than half of maximum local window size - should update window when data received is over half of the maximum local window size - should send a DATA frame with size 0 when there is no window, as long as end_stream flag is set - client API - .reprioritize should emit PRIORITY frame - .reprioritize should raise error if invoked by server - .headers should emit HEADERS frames - .data should emit DATA frames - .data should split large DATA frames - .data should split large multibyte DATA frames - .cancel should reset stream with cancel error code - .refuse should reset stream with refused stream error code - .window_update should emit WINDOW_UPDATE frames - server API - should emit received headers via on(:headers) - should emit received payload via on(:data) - should emit received priority parameters via on(:priority) - push - .promise should emit server initiated stream - .promise push stream should have parent stream - stream states - server: active > half close > close - client: promise_headers > active > headers > .. > data > close - -Finished in 1.42 seconds (files took 0.31804 seconds to load) -428 examples, 0 failures - +DEB_BUILD_OPTIONS includes nocheck, skipping all checks (test suite etc). ┌──────────────────────────────────────────────────────────────────────────────┐ │ dh_ruby --install finished │ @@ -1623,12 +1061,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/2875165/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2875165/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/398847 and its subdirectories -I: Current time: Mon Dec 7 18:36:40 -12 2026 -I: pbuilder-time-stamp: 1796711800 +I: removing directory /srv/workspace/pbuilder/2875165 and its subdirectories +I: Current time: Wed Nov 5 14:14:35 +14 2025 +I: pbuilder-time-stamp: 1762301675