Project

General

Profile

Actions

Bug #18604

closed

[BUG] ERROR(VpDivd): space for remainder too small

Added by mentalizer (Jakob Skjerning) over 2 years ago. Updated over 1 year ago.

Status:
Third Party's Issue
Assignee:
-
Target version:
-
ruby -v:
ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [arm64-darwin21]
[ruby-core:107760]

Description

After upgrading to Ruby 3.1 one of our statistical dashboards started crashing with a message saying

[BUG] ERROR(VpDivd): space for remainder too small

How to reproduce

This can be reproduced in irb (reproduction script is attached containing the below code):

$ irb
3.1.1 :001 > require "bigdecimal"
 => true
3.1.1 :002 > 1.0 / BigDecimal("0.9652409267836026803310997240835632636973e2")

Actual result

(irb):2: [BUG] ERROR(VpDivd): space for remainder too small.
ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [arm64-darwin21]

-- Crash Report log information --------------------------------------------
...

Full output from running reproduction script has been attached.

Expected results

The result of division, which is roughly:

 => 0.10360107743589181177761764314914637186293143963577706371029263e-1

Affected Rubies

So far I've been able to reproduce this on...

  • ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [arm64-darwin21]
  • ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [x86_64-linux]
  • ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [arm64-darwin21]

The following seem to work just fine:

  • ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [arm64-darwin21]

Notes

Admittedly, the precision here is way higher that we actually need it to be, and our workaround has been to simply convert the BigDecimal to Float before dividing.

1.0 / BigDecimal("0.9652409267836026803310997240835632636973e2").to_f
# => 0.010360107743589182

Files

repro.rb (86 Bytes) repro.rb Reproduction script mentalizer (Jakob Skjerning), 02/28/2022 09:41 AM
ruby-2022-02-24-161721.ips (96 KB) ruby-2022-02-24-161721.ips Crash Report log mentalizer (Jakob Skjerning), 02/28/2022 09:45 AM
crash.log (469 KB) crash.log Output from repro.rb mentalizer (Jakob Skjerning), 02/28/2022 09:55 AM
Actions

Also available in: Atom PDF

Like1
Like0Like0Like0Like1Like0Like0