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 #1

Updated by mentalizer (Jakob Skjerning) over 2 years ago

  • Description updated (diff)

Updated by nobu (Nobuyoshi Nakada) over 2 years ago

  • Status changed from Open to Third Party's Issue

Seems fixed by BigDecimal 3.1.2.

Updated by joeyruth (Joe Ruth) about 2 years ago

We are seeing this exact same issue in ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21].
Could this bug be revisited? The BigDecimal numbers that caused us to notice the issue were different, but the attached repro.rb file in this bug still also produces a crash

Updated by Hombre2014 (Yuriy Chamkoriyski) over 1 year ago

I had the same problem with ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [arm64-darwin21]. It crashed my app. It seems that ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21] as reported by Joe Ruth still has the problem. What is the status of this bug? Has it been fixed? If so, in which version?
Thanks.

Updated by itsmegrave (Samuel Grave) over 1 year ago

got same issue here with any ruby 3.1.x version:(
Any news?

Actions

Also available in: Atom PDF

Like1
Like0Like0Like0Like1Like0Like0