Actions
Backport #2728
closedruby segfaults returning from dynamically defined method in ensure block
Status:
Closed
Assignee:
Description
=begin
As best as I can work out, the conditions to reproduce this crash are:
- A begin/ensure block yields to a block passed by Enumerable (maybe passed by any compiled function?).
- Control is forced to the ensure block from 'break' being called from Enumerable.
- The ensure block contains a call to a dynamically defined method (created using define_method).
- The dynamically defined method runs.
- Instead of returning from the dynamically defined method, ruby segfaults (on windows XP), or bus errors (on OS X).
Happens on both Windows XP and Mac OS X (10.5.8). Script to reproduce and output are attached.
=end
Files
Updated by kronos (Ivan Samsonov) almost 15 years ago
=begin
It is reproducing on ruby 1.9.1p243 Mac OS X 1.6
=end
Updated by nobu (Nobuyoshi Nakada) almost 15 years ago
- Category set to core
- Status changed from Open to Closed
=begin
Fixed in r26628.
=end
Updated by nobu (Nobuyoshi Nakada) almost 15 years ago
- Status changed from Closed to Assigned
- Assignee set to yugui (Yuki Sonoda)
- Priority changed from 5 to Normal
=begin
=end
Updated by mame (Yusuke Endoh) almost 15 years ago
- Category set to core
- Assignee changed from yugui (Yuki Sonoda) to ko1 (Koichi Sasada)
- Priority changed from Normal to 5
=begin
r26628 caused new SEGV when executing rubyspec.
Though the detail is still under investigation, I temporarily reverted the commit.
It should not be backported to 1.9.1.
--
Yusuke Endoh mame@tsg.ne.jp
=end
Updated by jeremyevans0 (Jeremy Evans) over 5 years ago
- Description updated (diff)
- Status changed from Assigned to Closed
Actions
Like0
Like0Like0Like0Like0Like0