Project

General

Profile

Actions

Bug #15234

closed

Running redis on the #all? block returns nil

Added by hazi (yuhei mukoyama) over 5 years ago. Updated over 5 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
[ruby-dev:50655]

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

よろしくお願いいたします。


Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #15105: `rb_debug_inspector_open` breaks lazy proc optimizationClosedko1 (Koichi Sasada)Actions
Actions #1

Updated by mame (Yusuke Endoh) over 5 years ago

  • Related to Bug #15105: `rb_debug_inspector_open` breaks lazy proc optimization added

Updated by mame (Yusuke Endoh) over 5 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) over 5 years ago

ありがとうございます!
すでに修正されていたんですね。よかったです。

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0