[ruby-dev:50657] [Ruby trunk Bug#15234] Running redis on the #all? block returns nil
From:
yuhei.mukoyama@...
Date:
2018-10-20 06:58:38 UTC
List:
ruby-dev #50657
Issue #15234 has been updated by hazi (yuhei mukoyama).
ありがとうございます!
すでに修正されていたんですね。よかったです。
----------------------------------------
Bug #15234: Running redis on the #all? block returns nil
https://bugs.ruby-lang.org/issues/15234#change-74537
* Author: hazi (yuhei mukoyama)
* Status: Closed
* Priority: Normal
* Assignee:
* Target version:
* ruby -v: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
`all?` が `nil` を返すバグに遭遇しました。
~~~ ruby
redis = Redis.new(url: 'redis://localhost:6379/0')
(0..0).all? { |_| redis.get('A'); false }
~~~
この現象は Ruby 2.5.0 から確認されています。 Ruby 2.4.4 および、2.4.5、2.3.7 では確認できませんでした。
また、rails をロードしていない環境では再現されませんでした。
もう少しコンパクトなコードにしたいと思ったのですが、力及ばずでこの程度のコードにしかなりませんでした。
再現環境は下記の通りです。
https://github.com/hazi/rails_all_method_bug_sample
よろしくお願いいたします。
--
https://bugs.ruby-lang.org/