Actions
Bug #15234
closedRunning redis on the #all? block returns nil
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
Description
all?
が nil
を返すバグに遭遇しました。
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
よろしくお願いいたします。
Updated by mame (Yusuke Endoh) about 6 years ago
- Related to Bug #15105: `rb_debug_inspector_open` breaks lazy proc optimization added
Updated by mame (Yusuke Endoh) about 6 years ago
- Status changed from Open to Closed
2.5.3 で再現し、trunk では動きました。#15105 と同じ問題のようで、r64800 で直ったと思われます。バックポートをお待ちください。
(bindex という gem が tracepoint のフックの中で rb_debug_inspector_open を呼んでました。恐ろしい)
Updated by hazi (yuhei mukoyama) about 6 years ago
ありがとうございます!
すでに修正されていたんですね。よかったです。
Actions
Like0
Like0Like0Like0