Diff of the two buildlogs: -- --- b1/build.log 2025-01-17 10:45:54.178615201 +0000 +++ b2/build.log 2025-01-17 10:51:06.124579975 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu Jan 16 22:42:44 -12 2025 -I: pbuilder-time-stamp: 1737110564 +I: Current time: Sat Jan 18 00:46:03 +14 2025 +I: pbuilder-time-stamp: 1737110763 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/18240/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/16438/tmp/hooks/D01_modify_environment starting +debug: Running on virt64z. +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 Jan 17 10:46 /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/16438/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/16438/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='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='armhf' + 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]="arm-unknown-linux-gnueabihf") + 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=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='f1df5d240079416cbf4100f214fc7cd2' - 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='18240' - PS1='# ' - PS2='> ' + INVOCATION_ID=f454f17576e24abbb31c2e527ea06630 + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + 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=16438 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.QxChdZJY/pbuilderrc_2wVH --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.QxChdZJY/b1 --logfile b1/build.log ruby-mail-room_0.10.0+really0.0.24-2.dsc' - SUDO_GID='112' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:3142/' + 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.QxChdZJY/pbuilderrc_pCcv --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.QxChdZJY/b2 --logfile b2/build.log ruby-mail-room_0.10.0+really0.0.24-2.dsc' + SUDO_GID=110 + SUDO_UID=103 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux virt32b 6.1.0-30-armmp-lpae #1 SMP Debian 6.1.124-1 (2025-01-12) armv7l GNU/Linux + Linux i-capture-the-hostname 6.1.0-30-arm64 #1 SMP Debian 6.1.124-1 (2025-01-12) aarch64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/18240/tmp/hooks/D02_print_environment finished +I: user script /srv/workspace/pbuilder/16438/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 armhf ruby-simplecov-html all 0.12.3-2 [468 kB] Get: 187 http://deb.debian.org/debian unstable/main armhf ruby-simplecov all 0.22.0-2 [45.2 kB] Get: 188 http://deb.debian.org/debian unstable/main armhf ruby-webmock all 3.24.0-1 [68.5 kB] -Fetched 58.7 MB in 2s (27.0 MB/s) +Fetched 58.7 MB in 14s (4174 kB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:armhf. (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 ... 19564 files and directories currently installed.) @@ -945,8 +977,8 @@ Setting up tzdata (2024b-6) ... Current default time zone: 'Etc/UTC' -Local time is now: Fri Jan 17 10:44:41 UTC 2025. -Universal Time is now: Fri Jan 17 10:44:41 UTC 2025. +Local time is now: Fri Jan 17 10:48:37 UTC 2025. +Universal Time is now: Fri Jan 17 10:48:37 UTC 2025. 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/16438/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/16438/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,128 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 26250 +Randomized with seed 24732 -MailRoom::Configuration +MailRoom::IMAP::Message #initalize - with config_path - parses health check - parses yaml into mailbox objects - without config_path - sets mailboxes to an empty set - sets the health check to nil + initializes with required parameters + #== + matches an equivalent message + does not match a base message -MailRoom::Delivery::Logger - #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 +MailRoom::Arbitration::Redis + #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." + 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 +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 only url is present + client has same specified url (PENDING: Temporarily skipped with xit) + client is a instance of Redis class + when sentinel is present + client has same specified sentinel params (PENDING: Temporarily skipped with xit) + +MailRoom::MailboxWatcher + with Microsoft Graph configured + initializes a Microsoft Graph connection + with IMAP configured + #quit + closes and waits for the connection + #run + loops over wait while running + #running? + is false by default + +MailRoom::Message + #== + matches an equivalent message + does not match a message with a different UID + #initalize + initializes with required parameters MailRoom::Delivery::Postback #deliver with token auth delivery -#, @formatter=nil, @logdev=nil>, content_type=nil, jwt=#> +#, @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 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=#> +#, @formatter=nil, @logdev=nil>, content_type="text/plain", jwt=#> posts the message with faraday -MailRoom::IMAP::Message +MailRoom::Configuration #initalize - initializes with required parameters - #== - matches an equivalent message - does not match a base message + without config_path + sets the health check to nil + sets mailboxes to an empty set + with config_path + parses yaml into mailbox objects + parses health check + +MailRoom::HealthCheck + #initialize + with invalid address + raises an error + with invalid port + raises an error + with valid parameters + validates successfully + #quit + sets running to false + #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::Logger::Structured + only accepts hashes + logs warn + logs debug + logs unknown + logs fatal + logs info + logs error + logging a hash as a message + merges the contents + #format_message + with no timestamp + behaves like timestamp formatting + outputs ISO8601 timestamps + with DateTime + behaves like timestamp formatting + outputs ISO8601 timestamps + with string + behaves like timestamp formatting + outputs ISO8601 timestamps MailRoom::JWT #valid? @@ -1258,258 +1375,177 @@ generates a valid jwt token generates a different token for each invocation -MailRoom::CLI - #start - starts running the coordinator - on error - json format provided - passes onto CrashHandler - .new - with coordinator args - creates a new coordinator with configuration - with configuration args - parses arguments into configuration +MailRoom::Delivery::Sidekiq + #options + 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 has same specified redis_url (PENDING: Temporarily skipped with xit) + client is a instance of RedisNamespace class + 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 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 + +MailRoom::Delivery::LetterOpener + #deliver + creates a new LetterOpener::DeliveryMethod + delivers the mail message + parses the message string with Mail + +MailRoom::Delivery::Logger + #deliver + writes the message to info + #initialize + without a log path + creates a new ruby logger + with a log path + creates a new file to append to + +MailRoom::Delivery::Que + #deliver + stores the message in que_jobs table + +MailRoom::Coordinator + #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 + #quit + quits each watcher + +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::Mailbox #deliver - with delivery_method of letter_opener - delivers with a LetterOpener instance + with arbitration_method of noop + arbitrates 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 delivery_method of noop + delivers with a Noop instance + without an RFC822 attribute + doesn't deliver the message with arbitration_method of redis arbitrates with a Redis instance structured logger setup +{"severity":"INFO","time":"2025-01-18T00:50:18.771+14: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":"2025-01-16T22:45:24.123-12:00","message":"asdf"} - accepts stdout symbol to mean STDOUT + with delivery_method of letter_opener + delivers with a LetterOpener instance with ssl options hash replaces verify mode with constant - with delivery_method of logger - delivers with a Logger instance - without an RFC822 attribute - doesn't deliver the message - with delivery_method of noop - delivers with a Noop instance - with arbitration_method of noop - arbitrates with a Noop instance with IMAP configuration #imap? configured as an IMAP inbox #validate! - with missing configuration - raises an error with Microsoft Graph configuration - configured as a Microsoft Graph inbox - allows password omission raises an error when the client_secret is not present raises an error when the client_id is not present - raises an error when the tenant_id is not present raises an error when the inbox options are not present - -MailRoom::HealthCheck - #run - sets running to true - #initialize - with invalid port - raises an error - with invalid address + allows password omission + raises an error when the tenant_id is not present + configured as a Microsoft Graph inbox + with missing configuration raises an error - with valid parameters - validates successfully - #quit -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. - sets running to false - -MailRoom::Logger::Structured - logs unknown - logs info - logs fatal - only accepts hashes - logs warn - logs debug - logs error - #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::MicrosoftGraph::Connection + #quit + does not attempt to process the mailbox + returns false + returns true #wait - too many requests + with an alternative Azure deployment + behaves like with a single message + requests message ID + too much bandwidth behaves like request backoff backs off - 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 - 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 500 error terminates due to error + 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 multiple pages of messages requests message ID - with an alternative Azure deployment - behaves like with a single message - requests message ID - too much bandwidth + too many requests behaves like request backoff backs off - #quit - does not attempt to process the mailbox - returns false - returns true - -MailRoom::Coordinator - #run - should go to sleep after running watchers - runs each watcher - should set attribute running to true - #quit - quits each watcher - #initialize - makes no watchers when mailboxes is empty - builds a watcher for each mailbox - sets the health check - -MailRoom::Delivery::Que - #deliver - stores the message in que_jobs table - -MailRoom::Delivery::LetterOpener - #deliver - parses the message string with Mail - delivers the mail message - creates a new LetterOpener::DeliveryMethod - -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 - -MailRoom::Message - #== - does not match a message with a different UID - matches an equivalent message - #initalize - initializes with required parameters -MailRoom::MailboxWatcher - with IMAP configured - #run - loops over wait while running - #quit - closes and waits for the connection - #running? - is false by default - with Microsoft Graph configured - initializes a Microsoft Graph connection - -MailRoom::Delivery::Sidekiq - #options - when only redis_url is specified - with simple redis url - connection has correct values - client has same specified redis_url (PENDING: Temporarily skipped with xit) - client is a instance of RedisNamespace class - with redis_db specified in options - client has correct redis_url (PENDING: Temporarily skipped with xit) - connection has correct values - 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 -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 - -MailRoom::Arbitration::Redis - redis client connection params - 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." - 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." - client has same specified namespace - when sentinel is present - client has same specified sentinel params (PENDING: Temporarily skipped with xit) - #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 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 - 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 +MailRoom::CLI + #start + starts running the coordinator + on error + json format provided + passes onto CrashHandler + .new + with coordinator args + creates a new coordinator with configuration + with configuration args + parses arguments into configuration MailRoom::IMAP::Connection with imap set up - is not idling is not disconnected is logged in - waits for a message to process + is not idling is ready to idle + waits for a message to process Pending: (Failures listed here are expected and do not affect your suite's status) - 1) MailRoom::Delivery::Sidekiq#options when only redis_url is specified with simple redis url client has same specified redis_url + 1) 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:33 + # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/arbitration/redis_spec.rb:105 - 2) MailRoom::Delivery::Sidekiq#options when only redis_url is specified with redis_db specified in options client has correct redis_url + 2) 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:54 + # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/arbitration/redis_spec.rb:147 - 3) MailRoom::Arbitration::Redis redis client connection params when only url is present client has same specified url + 3) 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:105 + # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/delivery/sidekiq_spec.rb:54 - 4) MailRoom::Arbitration::Redis redis client connection params when sentinel is present client has same specified sentinel params + 4) 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:147 + # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/delivery/sidekiq_spec.rb:33 -Finished in 4.21 seconds (files took 2.78 seconds to load) +Finished in 8.38 seconds (files took 6.91 seconds to load) 117 examples, 0 failures, 4 pending -Randomized with seed 26250 +Randomized with seed 24732 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,17 +1562,55 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 14126 +Randomized with seed 22205 -MailRoom::Delivery::Que +MailRoom::Delivery::Postback #deliver - stores the message in que_jobs table + 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::Delivery::Sidekiq + #options + when only redis_url is specified + 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 + with redis_db specified in options + client has correct redis_url (PENDING: Temporarily skipped with xit) + connection has correct values + 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 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 specified + client has same specified sentinel params + +MailRoom::IMAP::Message + #== + matches an equivalent message + does not match a base message + #initalize + initializes with required parameters MailRoom::Delivery::LetterOpener #deliver - creates a new LetterOpener::DeliveryMethod parses the message string with Mail delivers the mail message + creates a new LetterOpener::DeliveryMethod MailRoom::Message #initalize @@ -1545,267 +1619,229 @@ does not match a message with a different UID matches an equivalent message -MailRoom::Delivery::Sidekiq - #options - when sentinel is specified - client has same specified sentinel params - when only redis_url is specified - 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 - client has correct redis_url (PENDING: Temporarily skipped with xit) - connection has correct values - when namespace is specified +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 + +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 only url is present + client has same specified url (PENDING: Temporarily skipped with xit) + client is a instance of Redis class + when sentinel is present + client has same specified sentinel params (PENDING: Temporarily skipped with xit) + #deliver? + 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." - client has same specified namespace - -MailRoom::IMAP::Connection - with imap set up - waits for a message to process - is not disconnected - is ready to idle - is logged in - is not idling - -MailRoom::Mailbox - with IMAP configuration - #imap? - configured as an IMAP inbox - #validate! - with missing configuration - raises an error - with Microsoft Graph configuration - raises an error when the tenant_id is not present - allows password omission - configured as a Microsoft Graph inbox - raises an error when the client_id is not present - raises an error when the inbox options are not present - raises an error when the client_secret is not present - #deliver - with ssl options hash - replaces verify mode with constant - without an RFC822 attribute - doesn't deliver the message - with delivery_method of postback - delivers with a Postback instance - with delivery_method of noop - delivers with a Noop instance - structured logger setup - sets up the noop logger correctly and does not error -{"severity":"INFO","time":"2025-01-16T22:45:33.534-12:00","message":"asdf"} - accepts stdout symbol to mean STDOUT - sets up the logger correctly and does not error - with delivery_method of logger - delivers with a Logger instance - with arbitration_method of noop - arbitrates with a Noop instance - with arbitration_method of redis - arbitrates with a Redis instance - with delivery_method of letter_opener - delivers with a LetterOpener instance + 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." + 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 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 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 MailRoom::Delivery::Logger - #deliver - writes the message to info #initialize without a log path creates a new ruby logger with a log path creates a new file to append to - -MailRoom::Coordinator - #run - should go to sleep after running watchers - should set attribute running to true - runs each watcher - #initialize - sets the health check - builds a watcher for each mailbox - makes no watchers when mailboxes is empty - #quit - quits each watcher + #deliver + writes the message to info MailRoom::Logger::Structured - logs fatal + logs unknown + logs error logs debug + logs fatal logs warn - logs error - logs unknown - logs info only accepts hashes + logs info + logging a hash as a message + merges the contents #format_message - with string + with no timestamp behaves like timestamp formatting outputs ISO8601 timestamps - with no timestamp + with string behaves like timestamp formatting outputs ISO8601 timestamps with DateTime behaves like timestamp formatting outputs ISO8601 timestamps - logging a hash as a message - merges the contents + +MailRoom::Delivery::Que + #deliver + stores the message in que_jobs table 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 valid jwt token generates a different token for each invocation + #valid? + returns true if all essential components are present + returns false if either header or secret_path are missing + returns true if header and secret path are present -MailRoom::Delivery::Postback - #deliver - 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 - with token auth delivery -#, @formatter=nil, @logdev=nil, @level_override={}>, content_type=nil, jwt=#> - posts the message with faraday +MailRoom::CLI + #start + starts running the coordinator + on error + json format provided + passes onto CrashHandler + .new + with configuration args + parses arguments into configuration + with coordinator args + creates a new coordinator with configuration + +MailRoom::Configuration + #initalize + with config_path + parses health check + parses yaml into mailbox objects + without config_path + sets mailboxes to an empty set + sets the health check to nil + +MailRoom::Coordinator + #initialize + builds a watcher for each mailbox + makes no watchers when mailboxes is empty + sets the health check + #run + runs each watcher + should go to sleep after running watchers + should set attribute running to true + #quit + quits each watcher MailRoom::MailboxWatcher - with Microsoft Graph configured - initializes a Microsoft Graph connection with IMAP configured - #running? - is false by default #run loops over wait while running + #running? + is false by default #quit closes and waits for the connection + with Microsoft Graph configured + initializes a Microsoft Graph connection + +MailRoom::HealthCheck + #quit + sets running to false + #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 invalid address + raises an error + with valid parameters + validates successfully MailRoom::MicrosoftGraph::Connection #quit - returns true returns false does not attempt to process the mailbox + returns true #wait - too many requests + with an alternative Azure deployment + behaves like with a single message + requests message ID + too much bandwidth behaves like request backoff backs off with multiple pages of messages requests message ID - 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 calls do_sleep 60 times defaults to 60 seconds interval set to 10 - calls do_sleep 10 times sets the poll interval to 10 - too much bandwidth - behaves like request backoff - backs off + 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 500 error terminates due to error + invalid JSON response + ignores the message and logs a warning + too many requests + behaves like request backoff + backs off -MailRoom::CLI - #start - starts running the coordinator - on error - json format provided - passes onto CrashHandler - .new - with configuration args - parses arguments into configuration - with coordinator args - creates a new coordinator with configuration - -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 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." - 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 -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 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 - -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 - -MailRoom::HealthCheck - #initialize - with invalid port - raises an error - with invalid address +MailRoom::Mailbox + with IMAP configuration + #imap? + configured as an IMAP inbox + #deliver + with arbitration_method of redis + arbitrates with a Redis instance + without an RFC822 attribute + doesn't deliver the message + with delivery_method of logger + delivers with a Logger instance + with ssl options hash + replaces verify mode with constant + with arbitration_method of noop + arbitrates with a Noop instance + structured logger setup +{"severity":"INFO","time":"2025-01-18T00:50:42.711+14: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 + with delivery_method of letter_opener + delivers with a LetterOpener instance + with delivery_method of noop + delivers with a Noop instance + with delivery_method of postback + delivers with a Postback instance + #validate! + with missing configuration raises an error - with valid parameters - validates successfully - #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 - -MailRoom::IMAP::Message - #== - does not match a base message - matches an equivalent message - #initalize - initializes with required parameters + with Microsoft Graph configuration + configured as a Microsoft Graph inbox + raises an error when the inbox options are not present + raises an error when the tenant_id is not present + raises an error when the client_secret is not present + allows password omission + raises an error when the client_id is not present -MailRoom::Configuration - #initalize - without config_path - sets the health check to nil - sets mailboxes to an empty set - with config_path - parses health check - parses yaml into mailbox objects +MailRoom::IMAP::Connection + with imap set up + is not idling + waits for a message to process + is not disconnected + is logged in + is ready to idle 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/delivery/sidekiq_spec.rb:54 - 3) MailRoom::Arbitration::Redis redis client connection params when sentinel is present client has same specified sentinel params + 3) 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/arbitration/redis_spec.rb:147 + # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/arbitration/redis_spec.rb:105 - 4) MailRoom::Arbitration::Redis redis client connection params when only url is present client has same specified url + 4) 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/arbitration/redis_spec.rb:105 + # /build/reproducible-path/ruby-mail-room-0.10.0+really0.0.24/spec/lib/arbitration/redis_spec.rb:147 -Finished in 4.11 seconds (files took 3.02 seconds to load) +Finished in 6.37 seconds (files took 8.13 seconds to load) 117 examples, 0 failures, 4 pending -Randomized with seed 14126 +Randomized with seed 22205 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/16438/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/16438/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/18240 and its subdirectories -I: Current time: Thu Jan 16 22:45:50 -12 2025 -I: pbuilder-time-stamp: 1737110750 +I: removing directory /srv/workspace/pbuilder/16438 and its subdirectories +I: Current time: Sat Jan 18 00:51:02 +14 2025 +I: pbuilder-time-stamp: 1737111062