Diff of the two buildlogs: -- --- b1/build.log 2025-01-16 01:37:25.644231235 +0000 +++ b2/build.log 2025-01-16 01:38:31.461252915 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Jan 15 13:34:02 -12 2025 -I: pbuilder-time-stamp: 1736991242 +I: Current time: Wed Feb 18 22:00:26 +14 2026 +I: pbuilder-time-stamp: 1771401626 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -26,52 +26,84 @@ dpkg-source: info: applying disable-redis-5-tests.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/2253370/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3543979/tmp/hooks/D01_modify_environment starting +debug: Running on ionos15-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 Feb 18 08:00 /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/3543979/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3543979/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=20 ' - DISTRIBUTION='unstable' - 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=42 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='c6bb47aa0df74848878e0c3358965bd5' - 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='2253370' - PS1='# ' - PS2='> ' + INVOCATION_ID=89caff0509574ec8b30b0d34f639a74c + 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=3543979 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.t0rbL2Ms/pbuilderrc_XzCR --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.t0rbL2Ms/b1 --logfile b1/build.log ruby-mail-room_0.10.0+really0.0.24-2.dsc' - SUDO_GID='111' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132: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.t0rbL2Ms/pbuilderrc_opsC --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.t0rbL2Ms/b2 --logfile b2/build.log ruby-mail-room_0.10.0+really0.0.24-2.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://213.165.73.152:3128 I: uname -a - Linux ionos11-amd64 6.1.0-30-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.124-1 (2025-01-12) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.11.10+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.11.10-1~bpo12+1 (2024-12-19) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/2253370/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/3543979/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -329,7 +361,7 @@ Get: 186 http://deb.debian.org/debian unstable/main amd64 ruby-simplecov-html all 0.12.3-2 [468 kB] Get: 187 http://deb.debian.org/debian unstable/main amd64 ruby-simplecov all 0.22.0-2 [45.2 kB] Get: 188 http://deb.debian.org/debian unstable/main amd64 ruby-webmock all 3.24.0-1 [68.5 kB] -Fetched 61.6 MB in 1s (44.4 MB/s) +Fetched 61.6 MB in 7s (9019 kB/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 ... 19850 files and directories currently installed.) @@ -945,8 +977,8 @@ Setting up tzdata (2024b-6) ... Current default time zone: 'Etc/UTC' -Local time is now: Thu Jan 16 01:35:46 UTC 2025. -Universal Time is now: Thu Jan 16 01:35:46 UTC 2025. +Local time is now: Wed Feb 18 08:00:58 UTC 2026. +Universal Time is now: Wed Feb 18 08:00:58 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -1119,7 +1151,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/ && 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-mail-room_0.10.0+really0.0.24-2_source.changes +I: user script /srv/workspace/pbuilder/3543979/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/3543979/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/ && 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-mail-room_0.10.0+really0.0.24-2_source.changes dpkg-buildpackage: info: source package ruby-mail-room dpkg-buildpackage: info: source version 0.10.0+really0.0.24-2 dpkg-buildpackage: info: source distribution unstable @@ -1207,47 +1243,7 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 60608 - -MailRoom::Logger::Structured - logs warn - logs error - logs debug - logs info - only accepts hashes - logs unknown - logs fatal - logging a hash as a message - merges the contents - #format_message - with DateTime - behaves like timestamp formatting - outputs ISO8601 timestamps - with no timestamp - behaves like timestamp formatting - outputs ISO8601 timestamps - with string - behaves like timestamp formatting - outputs ISO8601 timestamps - -MailRoom::Coordinator - #run - should go to sleep after running watchers - runs each watcher - should set attribute running to true - #initialize - builds a watcher for each mailbox - makes no watchers when mailboxes is empty - sets the health check - #quit - quits each watcher - -MailRoom::IMAP::Message - #== - matches an equivalent message - does not match a base message - #initalize - initializes with required parameters +Randomized with seed 21015 MailRoom::Configuration #initalize @@ -1258,99 +1254,81 @@ parses yaml into mailbox objects parses health check -MailRoom::Delivery::Que +MailRoom::IMAP::Message + #== + does not match a base message + matches an equivalent message + #initalize + initializes with required parameters + +MailRoom::JWT + #valid? + returns false if either header or secret_path are missing + returns true if header and secret path are present + returns true if all essential components are present + #token + generates a different token for each invocation + generates a valid jwt token + +MailRoom::Delivery::Logger #deliver - stores the message in que_jobs table + writes the message to info + #initialize + with a log path + creates a new file to append to + without a log path + creates a new ruby logger -MailRoom::Arbitration::Redis - #deliver? - when called the second time -Redis namespaces are deprecated. This option will be ignored in future versions. -See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - after expiration returns true -Redis namespaces are deprecated. This option will be ignored in future versions. -See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - returns false - when called the first time -Redis namespaces are deprecated. This option will be ignored in future versions. -See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - returns true -Redis namespaces are deprecated. This option will be ignored in future versions. -See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - increments the delivered flag -Redis namespaces are deprecated. This option will be ignored in future versions. -See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - sets an expiration on the delivered flag - when called for another uid -Redis namespaces are deprecated. This option will be ignored in future versions. -See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - returns true - redis client connection params - when namespace is present -Redis namespaces are deprecated. This option will be ignored in future versions. -See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - client has same specified namespace -Redis namespaces are deprecated. This option will be ignored in future versions. -See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - client is a instance of RedisNamespace class - when sentinel is present - client has same specified sentinel params (PENDING: Temporarily skipped with xit) - when only url is present - client has same specified url (PENDING: Temporarily skipped with xit) - client is a instance of Redis class +MailRoom::Delivery::LetterOpener + #deliver + delivers the mail message + creates a new LetterOpener::DeliveryMethod + parses the message string with Mail -MailRoom::CrashHandler - #handle - when given a nonexistent format - raises an error as designed - when given a blank format - raises an error as designed - when given a json format - writes a json message to stdout +MailRoom::IMAP::Connection + with imap set up + is logged in + is not idling + is ready to idle + is not disconnected + waits for a message to process MailRoom::Mailbox + with IMAP configuration + #imap? + configured as an IMAP inbox #validate! with Microsoft Graph configuration raises an error when the inbox options are not present - configured as a Microsoft Graph inbox + raises an error when the client_secret is not present + allows password omission raises an error when the tenant_id is not present + configured as a Microsoft Graph inbox raises an error when the client_id is not present - allows password omission - raises an error when the client_secret is not present with missing configuration raises an error - with IMAP configuration - #imap? - configured as an IMAP inbox #deliver - with arbitration_method of noop - arbitrates with a Noop instance - with ssl options hash - replaces verify mode with constant without an RFC822 attribute doesn't deliver the message + with delivery_method of letter_opener + delivers with a LetterOpener instance structured logger setup -{"severity":"INFO","time":"2025-01-15T13:36:57.726-12:00","message":"asdf"} - accepts stdout symbol to mean STDOUT sets up the noop logger correctly and does not error sets up the logger correctly and does not error +{"severity":"INFO","time":"2026-02-18T22:01:19.993+14:00","message":"asdf"} + accepts stdout symbol to mean STDOUT + with delivery_method of postback + delivers with a Postback instance with delivery_method of logger delivers with a Logger instance + with arbitration_method of noop + arbitrates with a Noop instance + with ssl options hash + replaces verify mode with constant with arbitration_method of redis arbitrates with a Redis instance with delivery_method of noop delivers with a Noop instance - with delivery_method of letter_opener - delivers with a LetterOpener instance - with delivery_method of postback - delivers with a Postback instance - -MailRoom::Message - #initalize - initializes with required parameters - #== - matches an equivalent message - does not match a message with a different UID MailRoom::CLI #start @@ -1359,157 +1337,215 @@ json format provided passes onto CrashHandler .new - with configuration args - parses arguments into configuration with coordinator args creates a new coordinator with configuration + with configuration args + parses arguments into configuration -MailRoom::Delivery::LetterOpener - #deliver - creates a new LetterOpener::DeliveryMethod - delivers the mail message - parses the message string with Mail +MailRoom::Message + #initalize + initializes with required parameters + #== + does not match a message with a different UID + matches an equivalent message MailRoom::MicrosoftGraph::Connection - #quit - does not attempt to process the mailbox - returns true - returns false #wait + 500 error + terminates due to error with multiple pages of messages requests message ID + invalid JSON response + ignores the message and logs a warning too many requests behaves like request backoff backs off + poll interval + calls do_sleep 60 times + defaults to 60 seconds + interval set to 10 + calls do_sleep 10 times + sets the poll interval to 10 + with an alternative Azure deployment + behaves like with a single message + requests message ID with default Azure settings behaves like with a single message {:delete_after_delivery=>true, :expunge_deleted=>true, :password=>nil, :inbox_method=>:microsoft_graph, :inbox_options=>{:tenant_id=>"98776", :client_id=>"12345", :client_secret=>"MY-SECRET"}} requests message ID - 500 error - terminates due to error too much bandwidth behaves like request backoff backs off - with an alternative Azure deployment - behaves like with a single message - requests message ID - invalid JSON response - ignores the message and logs a warning - poll interval - defaults to 60 seconds - calls do_sleep 60 times - interval set to 10 - calls do_sleep 10 times - sets the poll interval to 10 - -MailRoom::MailboxWatcher - with Microsoft Graph configured - initializes a Microsoft Graph connection - with IMAP configured - #run - loops over wait while running - #quit - closes and waits for the connection - #running? - is false by default + #quit + returns false + returns true + does not attempt to process the mailbox MailRoom::Delivery::Sidekiq #options - when only redis_url is specified - with simple redis url - client is a instance of RedisNamespace class - connection has correct values - client has same specified redis_url (PENDING: Temporarily skipped with xit) - with redis_db specified in options - connection has correct values - client has correct redis_url (PENDING: Temporarily skipped with xit) when sentinel is specified client has same specified sentinel params when namespace is specified Redis namespaces are deprecated. This option will be ignored in future versions. See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - client is a instance of RedisNamespace class + client has same specified namespace Redis namespaces are deprecated. This option will be ignored in future versions. See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - client has same specified namespace + client is a instance of RedisNamespace class + when only redis_url is specified + with redis_db specified in options + client has correct redis_url (PENDING: Temporarily skipped with xit) + connection has correct values + with simple redis url + client has same specified redis_url (PENDING: Temporarily skipped with xit) + client is a instance of RedisNamespace class + connection has correct values -MailRoom::HealthCheck - #run - sets running to true - #initialize -Mocha deprecation warning at /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/lib/mail_room/health_check.rb:18:in `block in run': # was instantiated in one test but it is receiving invocations within another test. This can lead to unintended interactions between tests and hence unexpected test failures. Ensure that every test correctly cleans up any state that it introduces. A Mocha::StubbingError will be raised in this scenario in the future. - with valid parameters - validates successfully - with invalid address - raises an error - with invalid port - raises an error - #quit - sets running to false +MailRoom::Delivery::Que + #deliver + stores the message in que_jobs table -MailRoom::IMAP::Connection - with imap set up - is logged in - is ready to idle - waits for a message to process - is not idling - is not disconnected +MailRoom::MailboxWatcher + with IMAP configured + #running? + is false by default + #run + loops over wait while running + #quit + closes and waits for the connection + with Microsoft Graph configured + initializes a Microsoft Graph connection MailRoom::Delivery::Postback #deliver - with token auth delivery -#, @formatter=nil, @logdev=nil>, content_type=nil, jwt=#> - posts the message with faraday with basic auth delivery options -#, @formatter=nil, @logdev=nil>, content_type=nil, jwt=#> +#, @formatter=nil, @logdev=nil>, content_type=nil, jwt=#> posts the message with faraday - with content type in the delivery options -#, @formatter=nil, @logdev=nil>, content_type="text/plain", jwt=#> - posts the message with faraday with jwt token in the delivery options -#, @formatter=nil, @logdev=nil>, content_type=nil, jwt=#> +#, @formatter=nil, @logdev=nil>, content_type=nil, jwt=#> + posts the message with faraday + with content type in the delivery options +#, @formatter=nil, @logdev=nil>, content_type="text/plain", jwt=#> posts the message with faraday + with token auth delivery +#, @formatter=nil, @logdev=nil>, content_type=nil, jwt=#> + posts the message with faraday -MailRoom::JWT - #valid? - returns false if either header or secret_path are missing - returns true if all essential components are present - returns true if header and secret path are present - #token - generates a valid jwt token - generates a different token for each invocation +MailRoom::Arbitration::Redis + redis client connection params + when namespace is present +Redis namespaces are deprecated. This option will be ignored in future versions. +See https://github.com/sidekiq/sidekiq/issues/2586 for more details." + client has same specified namespace +Redis namespaces are deprecated. This option will be ignored in future versions. +See https://github.com/sidekiq/sidekiq/issues/2586 for more details." + client is a instance of RedisNamespace class + when sentinel is present + client has same specified sentinel params (PENDING: Temporarily skipped with xit) + when only url is present + client has same specified url (PENDING: Temporarily skipped with xit) + client is a instance of Redis class + #deliver? + when called for another uid +Redis namespaces are deprecated. This option will be ignored in future versions. +See https://github.com/sidekiq/sidekiq/issues/2586 for more details." + returns true + when called the second time +Redis namespaces are deprecated. This option will be ignored in future versions. +See https://github.com/sidekiq/sidekiq/issues/2586 for more details." + after expiration returns true +Redis namespaces are deprecated. This option will be ignored in future versions. +See https://github.com/sidekiq/sidekiq/issues/2586 for more details." + returns false + when called the first time +Redis namespaces are deprecated. This option will be ignored in future versions. +See https://github.com/sidekiq/sidekiq/issues/2586 for more details." + sets an expiration on the delivered flag +Redis namespaces are deprecated. This option will be ignored in future versions. +See https://github.com/sidekiq/sidekiq/issues/2586 for more details." + returns true +Redis namespaces are deprecated. This option will be ignored in future versions. +See https://github.com/sidekiq/sidekiq/issues/2586 for more details." + increments the delivered flag -MailRoom::Delivery::Logger +MailRoom::Logger::Structured + logs warn + logs fatal + logs debug + logs error + only accepts hashes + logs info + logs unknown + #format_message + with string + behaves like timestamp formatting + outputs ISO8601 timestamps + with DateTime + behaves like timestamp formatting + outputs ISO8601 timestamps + with no timestamp + behaves like timestamp formatting + outputs ISO8601 timestamps + logging a hash as a message + merges the contents + +MailRoom::CrashHandler + #handle + when given a nonexistent format + raises an error as designed + when given a blank format + raises an error as designed + when given a json format + writes a json message to stdout + +MailRoom::HealthCheck + #quit + sets running to false #initialize - with a log path - creates a new file to append to - without a log path - creates a new ruby logger - #deliver - writes the message to info + with invalid port + raises an error + with valid parameters + validates successfully + with invalid address + raises an error + #run + sets running to true +Mocha deprecation warning at /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/lib/mail_room/health_check.rb:18:in `block in run': # was instantiated in one test but it is receiving invocations within another test. This can lead to unintended interactions between tests and hence unexpected test failures. Ensure that every test correctly cleans up any state that it introduces. A Mocha::StubbingError will be raised in this scenario in the future. + +MailRoom::Coordinator + #run + should go to sleep after running watchers + should set attribute running to true + runs each watcher + #quit + quits each watcher + #initialize + makes no watchers when mailboxes is empty + builds a watcher for each mailbox + sets the health check Pending: (Failures listed here are expected and do not affect your suite's status) - 1) MailRoom::Arbitration::Redis redis client connection params when sentinel is present client has same specified sentinel params + 1) MailRoom::Delivery::Sidekiq#options when only redis_url is specified with redis_db specified in options client has correct redis_url # Temporarily skipped with xit - # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/arbitration/redis_spec.rb:147 + # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/delivery/sidekiq_spec.rb:54 - 2) MailRoom::Arbitration::Redis redis client connection params when only url is present client has same specified url + 2) MailRoom::Delivery::Sidekiq#options when only redis_url is specified with simple redis url client has same specified redis_url # Temporarily skipped with xit - # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/arbitration/redis_spec.rb:105 + # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/delivery/sidekiq_spec.rb:33 - 3) MailRoom::Delivery::Sidekiq#options when only redis_url is specified with simple redis url client has same specified redis_url + 3) MailRoom::Arbitration::Redis redis client connection params when sentinel is present client has same specified sentinel params # Temporarily skipped with xit - # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/delivery/sidekiq_spec.rb:33 + # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/arbitration/redis_spec.rb:147 - 4) MailRoom::Delivery::Sidekiq#options when only redis_url is specified with redis_db specified in options client has correct redis_url + 4) MailRoom::Arbitration::Redis redis client connection params when only url is present client has same specified url # Temporarily skipped with xit - # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/delivery/sidekiq_spec.rb:54 + # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/arbitration/redis_spec.rb:105 -Finished in 4.45 seconds (files took 2.77 seconds to load) +Finished in 2.44 seconds (files took 0.71271 seconds to load) 117 examples, 0 failures, 4 pending -Randomized with seed 60608 +Randomized with seed 21015 Coverage report generated for RSpec to /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/coverage. 1475 / 1541 LOC (95.72%) covered. pkill redis-server || true @@ -1526,257 +1562,235 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 61094 - -MailRoom::MailboxWatcher - with Microsoft Graph configured - initializes a Microsoft Graph connection - with IMAP configured - #quit - closes and waits for the connection - #running? - is false by default - #run - loops over wait while running - -MailRoom::Delivery::Logger - #initialize - without a log path - creates a new ruby logger - with a log path - creates a new file to append to - #deliver - writes the message to info - -MailRoom::MicrosoftGraph::Connection - #quit - returns false - does not attempt to process the mailbox - returns true - #wait - invalid JSON response - ignores the message and logs a warning - poll interval - calls do_sleep 60 times - defaults to 60 seconds - interval set to 10 - calls do_sleep 10 times - sets the poll interval to 10 - with an alternative Azure deployment - behaves like with a single message - requests message ID - with multiple pages of messages - requests message ID - too much bandwidth - behaves like request backoff - backs off - 500 error - terminates due to error - too many requests - behaves like request backoff - backs off - with default Azure settings - behaves like with a single message -{:delete_after_delivery=>true, :expunge_deleted=>true, :password=>nil, :inbox_method=>:microsoft_graph, :inbox_options=>{:tenant_id=>"98776", :client_id=>"12345", :client_secret=>"MY-SECRET"}} - requests message ID +Randomized with seed 3990 -MailRoom::Logger::Structured - only accepts hashes - logs unknown - logs info - logs error - logs debug - logs warn - logs fatal - #format_message - with string - behaves like timestamp formatting - outputs ISO8601 timestamps - with DateTime - behaves like timestamp formatting - outputs ISO8601 timestamps - with no timestamp - behaves like timestamp formatting - outputs ISO8601 timestamps - logging a hash as a message - merges the contents +MailRoom::Message + #initalize + initializes with required parameters + #== + does not match a message with a different UID + matches an equivalent message MailRoom::IMAP::Connection with imap set up - is ready to idle + waits for a message to process is not idling is logged in is not disconnected - waits for a message to process - -MailRoom::JWT - #valid? - returns true if all essential components are present - returns true if header and secret path are present - returns false if either header or secret_path are missing - #token - generates a valid jwt token - generates a different token for each invocation + is ready to idle MailRoom::Delivery::Que #deliver stores the message in que_jobs table -MailRoom::IMAP::Message - #== - does not match a base message - matches an equivalent message +MailRoom::Configuration #initalize - initializes with required parameters + with config_path + parses yaml into mailbox objects + parses health check + without config_path + sets mailboxes to an empty set + sets the health check to nil -MailRoom::Delivery::Postback +MailRoom::Delivery::Logger + #initialize + without a log path + creates a new ruby logger + with a log path + creates a new file to append to #deliver - with token auth delivery -#, @formatter=nil, @logdev=nil, @level_override={}>, content_type=nil, jwt=#> - posts the message with faraday - with basic auth delivery options -#, @formatter=nil, @logdev=nil, @level_override={}>, content_type=nil, jwt=#> - posts the message with faraday - with jwt token in the delivery options -#, @formatter=nil, @logdev=nil, @level_override={}>, content_type=nil, jwt=#> - posts the message with faraday - with content type in the delivery options -#, @formatter=nil, @logdev=nil, @level_override={}>, content_type="text/plain", jwt=#> - posts the message with faraday + writes the message to info MailRoom::CrashHandler #handle - when given a json format - writes a json message to stdout - when given a nonexistent format - raises an error as designed when given a blank format raises an error as designed + when given a nonexistent format + raises an error as designed + when given a json format + writes a json message to stdout + +MailRoom::Coordinator + #initialize + builds a watcher for each mailbox + sets the health check + makes no watchers when mailboxes is empty + #run + should go to sleep after running watchers + runs each watcher + should set attribute running to true + #quit + quits each watcher MailRoom::CLI .new - with coordinator args - creates a new coordinator with configuration with configuration args parses arguments into configuration + with coordinator args + creates a new coordinator with configuration #start starts running the coordinator on error json format provided passes onto CrashHandler -MailRoom::Message - #== - matches an equivalent message - does not match a message with a different UID - #initalize - initializes with required parameters +MailRoom::JWT + #valid? + returns true if all essential components are present + returns true if header and secret path are present + returns false if either header or secret_path are missing + #token + generates a different token for each invocation + generates a valid jwt token MailRoom::Mailbox with IMAP configuration #imap? configured as an IMAP inbox #deliver + with arbitration_method of noop + arbitrates with a Noop instance + without an RFC822 attribute + doesn't deliver the message + with delivery_method of postback + delivers with a Postback instance + with delivery_method of letter_opener + delivers with a LetterOpener instance structured logger setup -{"severity":"INFO","time":"2025-01-15T13:37:06.913-12:00","message":"asdf"} + sets up the noop logger correctly and does not error +{"severity":"INFO","time":"2026-02-18T22:01:23.711+14:00","message":"asdf"} accepts stdout symbol to mean STDOUT sets up the logger correctly and does not error - sets up the noop logger correctly and does not error - with arbitration_method of noop - arbitrates with a Noop instance - with arbitration_method of redis - arbitrates with a Redis instance with ssl options hash replaces verify mode with constant - with delivery_method of letter_opener - delivers with a LetterOpener instance - without an RFC822 attribute - doesn't deliver the message with delivery_method of noop delivers with a Noop instance with delivery_method of logger delivers with a Logger instance - with delivery_method of postback - delivers with a Postback instance + with arbitration_method of redis + arbitrates with a Redis instance #validate! - with missing configuration - raises an error with Microsoft Graph configuration + raises an error when the client_secret is not present + raises an error when the tenant_id is not present + allows password omission raises an error when the client_id is not present raises an error when the inbox options are not present configured as a Microsoft Graph inbox - raises an error when the tenant_id is not present - raises an error when the client_secret is not present - allows password omission - -MailRoom::HealthCheck - #run - sets running to true -Mocha deprecation warning at /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/lib/mail_room/health_check.rb:18:in `block in run': # was instantiated in one test but it is receiving invocations within another test. This can lead to unintended interactions between tests and hence unexpected test failures. Ensure that every test correctly cleans up any state that it introduces. A Mocha::StubbingError will be raised in this scenario in the future. - #quit - sets running to false - #initialize - with invalid port - raises an error - with valid parameters - validates successfully - with invalid address + with missing configuration raises an error -MailRoom::Delivery::LetterOpener - #deliver - creates a new LetterOpener::DeliveryMethod - delivers the mail message - parses the message string with Mail - -MailRoom::Coordinator +MailRoom::MicrosoftGraph::Connection + #wait + too much bandwidth + behaves like request backoff + backs off + 500 error + terminates due to error + with an alternative Azure deployment + behaves like with a single message + requests message ID + poll interval + defaults to 60 seconds + calls do_sleep 60 times + interval set to 10 + sets the poll interval to 10 + calls do_sleep 10 times + with default Azure settings + behaves like with a single message +{:delete_after_delivery=>true, :expunge_deleted=>true, :password=>nil, :inbox_method=>:microsoft_graph, :inbox_options=>{:tenant_id=>"98776", :client_id=>"12345", :client_secret=>"MY-SECRET"}} + requests message ID + with multiple pages of messages + requests message ID + too many requests + behaves like request backoff + backs off + invalid JSON response + ignores the message and logs a warning #quit - quits each watcher - #initialize - makes no watchers when mailboxes is empty - sets the health check - builds a watcher for each mailbox - #run - should go to sleep after running watchers - runs each watcher - should set attribute running to true + returns false + does not attempt to process the mailbox + returns true MailRoom::Arbitration::Redis - redis client connection params - when sentinel is present - client has same specified sentinel params (PENDING: Temporarily skipped with xit) - when only url is present - client has same specified url (PENDING: Temporarily skipped with xit) - client is a instance of Redis class - when namespace is present + #deliver? + when called for another uid Redis namespaces are deprecated. This option will be ignored in future versions. See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - client is a instance of RedisNamespace class + returns true + when called the second time Redis namespaces are deprecated. This option will be ignored in future versions. See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - client has same specified namespace - #deliver? - when called the first time + after expiration returns true Redis namespaces are deprecated. This option will be ignored in future versions. See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - returns true + returns false + when called the first time Redis namespaces are deprecated. This option will be ignored in future versions. See https://github.com/sidekiq/sidekiq/issues/2586 for more details." sets an expiration on the delivered flag Redis namespaces are deprecated. This option will be ignored in future versions. See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - increments the delivered flag - when called for another uid + returns true Redis namespaces are deprecated. This option will be ignored in future versions. See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - returns true - when called the second time + increments the delivered flag + redis client connection params + when sentinel is present + client has same specified sentinel params (PENDING: Temporarily skipped with xit) + when only url is present + client has same specified url (PENDING: Temporarily skipped with xit) + client is a instance of Redis class + when namespace is present Redis namespaces are deprecated. This option will be ignored in future versions. See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - returns false + client is a instance of RedisNamespace class Redis namespaces are deprecated. This option will be ignored in future versions. See https://github.com/sidekiq/sidekiq/issues/2586 for more details." - after expiration returns true + client has same specified namespace + +MailRoom::IMAP::Message + #initalize + initializes with required parameters + #== + does not match a base message + matches an equivalent message + +MailRoom::Delivery::Postback + #deliver + with token auth delivery +#, @formatter=nil, @logdev=nil, @level_override={}>, content_type=nil, jwt=#> + posts the message with faraday + with basic auth delivery options +#, @formatter=nil, @logdev=nil, @level_override={}>, content_type=nil, jwt=#> + posts the message with faraday + with content type in the delivery options +#, @formatter=nil, @logdev=nil, @level_override={}>, content_type="text/plain", jwt=#> + posts the message with faraday + with jwt token in the delivery options +#, @formatter=nil, @logdev=nil, @level_override={}>, content_type=nil, jwt=#> + posts the message with faraday + +MailRoom::Logger::Structured + logs unknown + logs error + logs info + logs warn + only accepts hashes + logs fatal + logs debug + #format_message + with string + behaves like timestamp formatting + outputs ISO8601 timestamps + with DateTime + behaves like timestamp formatting + outputs ISO8601 timestamps + with no timestamp + behaves like timestamp formatting + outputs ISO8601 timestamps + logging a hash as a message + merges the contents MailRoom::Delivery::Sidekiq #options @@ -1787,25 +1801,47 @@ Redis namespaces are deprecated. This option will be ignored in future versions. See https://github.com/sidekiq/sidekiq/issues/2586 for more details." client has same specified namespace - when sentinel is specified - client has same specified sentinel params when only redis_url is specified - with redis_db specified in options - client has correct redis_url (PENDING: Temporarily skipped with xit) - connection has correct values with simple redis url connection has correct values client is a instance of RedisNamespace class client has same specified redis_url (PENDING: Temporarily skipped with xit) + with redis_db specified in options + connection has correct values + client has correct redis_url (PENDING: Temporarily skipped with xit) + when sentinel is specified + client has same specified sentinel params -MailRoom::Configuration - #initalize - without config_path - sets mailboxes to an empty set - sets the health check to nil - with config_path - parses health check - parses yaml into mailbox objects +MailRoom::MailboxWatcher + with Microsoft Graph configured + initializes a Microsoft Graph connection + with IMAP configured + #running? + is false by default + #quit + closes and waits for the connection + #run + loops over wait while running + +MailRoom::Delivery::LetterOpener + #deliver + parses the message string with Mail + creates a new LetterOpener::DeliveryMethod + delivers the mail message + +MailRoom::HealthCheck + #run + sets running to true +Mocha deprecation warning at /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/lib/mail_room/health_check.rb:18:in `block in run': # was instantiated in one test but it is receiving invocations within another test. This can lead to unintended interactions between tests and hence unexpected test failures. Ensure that every test correctly cleans up any state that it introduces. A Mocha::StubbingError will be raised in this scenario in the future. + #initialize + with invalid port + raises an error + with valid parameters + validates successfully + with invalid address + raises an error + #quit + sets running to false Pending: (Failures listed here are expected and do not affect your suite's status) @@ -1817,18 +1853,18 @@ # Temporarily skipped with xit # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/arbitration/redis_spec.rb:105 - 3) MailRoom::Delivery::Sidekiq#options when only redis_url is specified with redis_db specified in options client has correct redis_url + 3) MailRoom::Delivery::Sidekiq#options when only redis_url is specified with simple redis url client has same specified redis_url # Temporarily skipped with xit - # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/delivery/sidekiq_spec.rb:54 + # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/delivery/sidekiq_spec.rb:33 - 4) MailRoom::Delivery::Sidekiq#options when only redis_url is specified with simple redis url client has same specified redis_url + 4) MailRoom::Delivery::Sidekiq#options when only redis_url is specified with redis_db specified in options client has correct redis_url # Temporarily skipped with xit - # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/delivery/sidekiq_spec.rb:33 + # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/delivery/sidekiq_spec.rb:54 -Finished in 4.4 seconds (files took 2.85 seconds to load) +Finished in 2.47 seconds (files took 0.7047 seconds to load) 117 examples, 0 failures, 4 pending -Randomized with seed 61094 +Randomized with seed 3990 Coverage report generated for RSpec to /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/coverage. 1475 / 1541 LOC (95.72%) covered. pkill redis-server || true @@ -1862,12 +1898,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/3543979/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3543979/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/2253370 and its subdirectories -I: Current time: Wed Jan 15 13:37:24 -12 2025 -I: pbuilder-time-stamp: 1736991444 +I: removing directory /srv/workspace/pbuilder/3543979 and its subdirectories +I: Current time: Wed Feb 18 22:01:29 +14 2026 +I: pbuilder-time-stamp: 1771401689