[ruby-dev:50656] [Ruby trunk Bug#15234][Closed] Running redis on the #all? block returns nil

From: mame@...
Date: 2018-10-20 06:53:31 UTC
List: ruby-dev #50656
Issue #15234 has been updated by mame (Yusuke Endoh).

Status changed from Open to Closed

2.5.3 で再現し、trunk では動きました。#15105 と同じ問題のようで、r64800 で直ったと思われます。バックポートをお待ちください。

(bindex という gem が tracepoint のフックの中で rb_debug_inspector_open を呼んでました。恐ろしい)

----------------------------------------
Bug #15234: Running redis on the #all? block returns nil
https://bugs.ruby-lang.org/issues/15234#change-74536

* 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/

In This Thread

Prev Next