[DRE-maint] Bug#1125237: ruby-progressbar: autopkgtest regression on i386

Paul Gevers elbrus at debian.org
Sun Jan 11 11:10:35 GMT 2026


Source: ruby-progressbar
Version: 1.13.0-1
Severity: serious
User: debian-ci at lists.debian.org
Usertags: regression

Dear maintainer(s),

I'm filing this bug to enable me to fix bug 1123765 (I'll hint 
ruby-progressbar to testing). The error log in the tests hint at i386 
numerical precision test problems rather than real issues. Please let me 
know if I judged that wrong.

With a recent upload of ruby-progressbar the autopkgtest of 
ruby-progressbar fails in testing when that autopkgtest is run with the 
binary packages of ruby-progressbar from unstable. It passes when run 
with only packages from testing. In tabular form:

                        pass            fail
ruby-progressbar       from testing    1.13.0-1
all others             from testing    from testing

I copied some of the output at the bottom of this report.

Currently this regression is blocking the migration to testing [1]. Can 
you please investigate the situation and fix it?

More information about this bug and the reason for filing it can be found on
https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation

Paul

[1] https://qa.debian.org/excuses.php?package=ruby-progressbar

https://ci.debian.net/data/autopkgtest/testing/i386/r/ruby-progressbar/67692911/log.gz

ion
  35s     can properly calculate a running average
  35s     knows the running average even when progress has been made 
(FAILED - 1)
  35s     knows the running average is reset even after progress is 
started (FAILED - 2)
  35s   #start
  35s     resets the projection (FAILED - 3)
  35s   #reset
  35s     resets the projection (FAILED - 4)
  35s     resets based on the starting position (FAILED - 5)
  35s   #strength
  35s     allows the default strength to be overridden (FAILED - 6)
  35s     has a default strength (FAILED - 7)
  35s  35s ProgressBar::Projector
  35s   .from_type
  35s     has a default projector
  35s     can return a specific projector
  35s  35s ProgressBar::Refinements::Enumerator
  35s  35s Progress: 
|====================================================================|
  35s   creates a progress bar with the Enumerable size
  35s  35s Progress: 
|====================================================================|
  35s   does not allow the user to override the progress bar total
  35s  35s Progress: 
|====================================================================|
  35s   does not allow the user to override the progress bar starting 
position
  35s  35s We All Float: 
|================================================================|
  35s   passes arguments to create
  35s   calls progressbar.increment the right number of times
  35s  35s Progress: 
|====================================================================|
  35s   chains return values properly
  35s  35s Progress: 
|====================================================================|
  35s   chains properly in the middle
  35s  35s Progress: 
|====================================================================|
  35s   returns an enumerator
  35s  35s Progress: 
|====================================================================|
  35s   passes the progressbar instance to the block when two arguments 
are requested for the block
  35s  35s ProgressBar::Time
  35s   when Time is being mocked by Timecop retrieves the unmocked 
Timecop time
  35s   when Time is being mocked by Delorean retrieves the unmocked 
Delorean time
  35s   when Time is being mocked by ActiveSupport retrieves the 
unmocked time
  35s   when Time is not being mocked will return the actual time
  35s  35s ProgressBar::Timer
  35s   can be reset and queried
  35s  35s Pending: (Failures listed here are expected and do not affect 
your suite's status)
  35s  35s   1) ProgressBar::Base can be converted into a hash
  35s      # Temporarily skipped with xit
  35s      # ./spec/lib/ruby-progressbar/base_spec.rb:634
  35s  35s   2) ProgressBar::Base when formatting the bar allows the bar 
format to be updated dynamically after it is started
  35s      # Temporarily skipped with xit
  35s      # ./spec/lib/ruby-progressbar/base_spec.rb:537
  35s  35s   3) ProgressBar::Base when formatting the bar allows the bar 
to be reset back to the default format
  35s      # Temporarily skipped with xit
  35s      # ./spec/lib/ruby-progressbar/base_spec.rb:549
  35s  35s   4) ProgressBar::Calculators::Length asks stream for length 
if it is a TTY
  35s      # Temporarily skipped with xit
  35s      # ./spec/lib/ruby-progressbar/calculators/length_spec.rb:60
  35s  35s   5) ProgressBar::Calculators::Length asks IO.console to 
calculate length if the output is null
  35s      # Temporarily skipped with xit
  35s      # ./spec/lib/ruby-progressbar/calculators/length_spec.rb:70
  35s  35s   6) ProgressBar::Calculators::Length asks IO.console to 
calculate length if the output is not a TTY
  35s      # Temporarily skipped with xit
  35s      # ./spec/lib/ruby-progressbar/calculators/length_spec.rb:81
  35s  35s Failures:
  35s  35s   1) ProgressBar::Projectors::SmoothedAverage#projection 
knows the running average even when progress has been made
  35s      Failure/Error: expect(projector.projection).to be 36.0
  35s  35s        expected #<Float:2080> => 36.0
  35s             got #<Float:2090> => 36.0
  35s  35s        Compared using equal?, which compares object identity,
  35s        but expected and actual are not the same object. Use
  35s        `expect(actual).to eq(expected)` if you don't care about
  35s        object identity in this example.
  35s      # 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:40:in 
`block (3 levels) in <module:Projectors>'
  35s  35s   2) ProgressBar::Projectors::SmoothedAverage#projection 
knows the running average is reset even after progress is started
  35s      Failure/Error: expect(projector.projection).to be 0.0
  35s  35s        expected #<Float:2100> => 0.0
  35s             got #<Float:2110> => 0.0
  35s  35s        Compared using equal?, which compares object identity,
  35s        but expected and actual are not the same object. Use
  35s        `expect(actual).to eq(expected)` if you don't care about
  35s        object identity in this example.
  35s      # 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:53:in 
`block (3 levels) in <module:Projectors>'
  35s  35s   3) ProgressBar::Projectors::SmoothedAverage#start resets 
the projection
  35s      Failure/Error: expect(projector.projection).to be 0.0
  35s  35s        expected #<Float:2120> => 0.0
  35s             got #<Float:2130> => 0.0
  35s  35s        Compared using equal?, which compares object identity,
  35s        but expected and actual are not the same object. Use
  35s        `expect(actual).to eq(expected)` if you don't care about
  35s        object identity in this example.
  35s      # 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:67:in 
`block (3 levels) in <module:Projectors>'
  35s  35s   4) ProgressBar::Projectors::SmoothedAverage#reset resets 
the projection
  35s      Failure/Error: expect(projector.projection).to be 0.0
  35s  35s        expected #<Float:2140> => 0.0
  35s             got #<Float:2150> => 0.0
  35s  35s        Compared using equal?, which compares object identity,
  35s        but expected and actual are not the same object. Use
  35s        `expect(actual).to eq(expected)` if you don't care about
  35s        object identity in this example.
  35s      # 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:81:in 
`block (3 levels) in <module:Projectors>'
  35s  35s   5) ProgressBar::Projectors::SmoothedAverage#reset resets 
based on the starting position
  35s      Failure/Error: expect(projector.projection).to be 9.0
  35s  35s        expected #<Float:2160> => 9.0
  35s             got #<Float:2170> => 9.0
  35s  35s        Compared using equal?, which compares object identity,
  35s        but expected and actual are not the same object. Use
  35s        `expect(actual).to eq(expected)` if you don't care about
  35s        object identity in this example.
  35s      # 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:94:in 
`block (3 levels) in <module:Projectors>'
  35s  35s   6) ProgressBar::Projectors::SmoothedAverage#strength allows 
the default strength to be overridden
  35s      Failure/Error: expect(projector.strength).to be 0.3
  35s  35s        expected #<Float:2180> => 0.3
  35s             got #<Float:2190> => 0.3
  35s  35s        Compared using equal?, which compares object identity,
  35s        but expected and actual are not the same object. Use
  35s        `expect(actual).to eq(expected)` if you don't care about
  35s        object identity in this example.
  35s      # 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:102:in 
`block (3 levels) in <module:Projectors>'
  35s  35s   7) ProgressBar::Projectors::SmoothedAverage#strength has a 
default strength
  35s      Failure/Error: expect(SmoothedAverage.new.strength).to be 0.1
  35s  35s        expected #<Float:2200> => 0.1
  35s             got #<Float:2210> => 0.1
  35s  35s        Compared using equal?, which compares object identity,
  35s        but expected and actual are not the same object. Use
  35s        `expect(actual).to eq(expected)` if you don't care about
  35s        object identity in this example.
  35s      # 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:106:in 
`block (3 levels) in <module:Projectors>'
  35s  35s Finished in 0.76023 seconds (files took 0.34042 seconds to load)
  35s 244 examples, 7 failures, 6 pending
  35s  35s Failed examples:
  35s  35s rspec 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:30 # 
ProgressBar::Projectors::SmoothedAverage#projection knows the running 
average even when progress has been made
  35s rspec 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:43 # 
ProgressBar::Projectors::SmoothedAverage#projection knows the running 
average is reset even after progress is started
  35s rspec 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:58 # 
ProgressBar::Projectors::SmoothedAverage#start resets the projection
  35s rspec 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:72 # 
ProgressBar::Projectors::SmoothedAverage#reset resets the projection
  35s rspec 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:84 # 
ProgressBar::Projectors::SmoothedAverage#reset resets based on the 
starting position
  35s rspec 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:99 # 
ProgressBar::Projectors::SmoothedAverage#strength allows the default 
strength to be overridden
  35s rspec 
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:105 # 
ProgressBar::Projectors::SmoothedAverage#strength has a default strength
  35s  35s /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 failed
  35s mv ./.gem2deb.lib lib
  35s mv ./.gem2deb.Gemfile.lock Gemfile.lock
  35s mv gemfiles/v1/.gem2deb.Gemfile.lock gemfiles/v1/Gemfile.lock
  35s mv gemfiles/v2/.gem2deb.Gemfile.lock gemfiles/v2/Gemfile.lock
  35s autopkgtest [22:19:20]: test gem2deb-test-runner

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 585 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-ruby-extras-maintainers/attachments/20260111/2588b0b3/attachment.sig>


More information about the Pkg-ruby-extras-maintainers mailing list