Bug #18604
closed[BUG] ERROR(VpDivd): space for remainder too small
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
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?
Updated by hsbt (Hiroshi SHIBATA) over 1 year ago
Use bigdecimal-3.1.2 or later.