From: xtkoba+ruby@... Date: 2021-03-24T02:41:24+00:00 Subject: [ruby-core:102986] [Ruby master Bug#17742] Random.rand gets wrong after using Ractor and requiring benchmark Issue #17742 has been updated by xtkoba (Tee KOBAYASHI). I cannot reproduce this with a recent development version (3.1.0dev) on Git. It is possible that this issue has already been fixed, although I cannot point out exactly when it was fixed. FWIW, I can reproduce this with Ruby 3.0.0p0, and it is not necessary to require `benchmark`. ``` $ cat bug17742.rb r = [] 3.times.map{ r << Ractor.new{ p receive } } r.map{|x| x.send(rand) } p rand sleep 1 $ ruby -v ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [arm-linux-android] $ ruby --disable-gems bug17742.rb :267: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues. 0.9; 0.9O 0.1 0.1 $ ruby --disable-gems bug17742.rb :267: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues. 0.308592334553756 0.05065486369735517 0.6489208709468116 0.042977039455267096 $ ruby --disable-gems bug17742.rb :267: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues. 0.3780271760002001 0.2946530653738084 0.7840270366549699 0.04166502381699466 $ ruby --disable-gems bug17742.rb :267: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues. 0.9371173786797564 0.02501308906114741 0.7470842632567019 0.847737184948548 $ ruby --disable-gems bug17742.rb :267: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues. 0.3578481078852569 0.4340746690184164 0.2731715341203722 0.6503945796067339 $ ruby --disable-gems bug17742.rb :267: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues. 1.0 0.2 0.9 1.0 ``` ---------------------------------------- Bug #17742: Random.rand gets wrong after using Ractor and requiring benchmark https://bugs.ruby-lang.org/issues/17742#change-91049 * Author: andras@frontfoo.com (Andras Horvath) * Status: Open * Priority: Normal * ruby -v: ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- Dear All, I use Ruby v3.0.0 on Ubuntu 18.04 x64 compiled from source the recommended way and when I run the following code: require "benchmark"; r = []; 3.times.map{ r << Ractor.new{ p receive } }; r.map{|x| x.send(rand) }; rand Then the "rand" method gets messed up. Running simply "rand" give weird values like 0.00000 or 1.0 or 0.3. The same issue happens when running from pry or the installed irb shell or even when running from command line with the -e option. -- https://bugs.ruby-lang.org/ Unsubscribe: