Project

General

Profile

This project is closed and read-only.

Actions

Backport #5755

closed

Errors raised and rescued in Kernel#loaded file still propagate

Backport #5755: Errors raised and rescued in Kernel#loaded file still propagate

Added by now (Nikolai Weibull) almost 15 years ago. Updated over 14 years ago.


Description

a.rb:

load 'b.rb'

b.rb:

begin
BasicObject.new.inspect
rescue => e
p e
end

% ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33569) [x86_64-darwin10.8.0]
% ruby a.rb
#<NoMethodError: undefined method inspect' for #<BasicObject:0x0000010090b388>> b.rb:4:in to_str': undefined method inspect' for #<BasicObject:0x0000010090b388> (NoMethodError) from b.rb:4:in to_s'
from b.rb:4:in inspect' from b.rb:4:in p'
from b.rb:4:in rescue in <top (required)>' from b.rb:1:in <top (required)>'
from a.rb:1:in load' from a.rb:1:in

'
% ruby b.rb
#<NoMethodError: undefined method `inspect' for #BasicObject:0x0000010090b388>

This is a bug, right?


Files

bug_5755.patch (590 Bytes) bug_5755.patch nagachika (Tomoyuki Chikanaga), 12/13/2011 12:24 PM

Updated by nagachika (Tomoyuki Chikanaga) almost 15 years ago Actions #1 [ruby-core:41625]

  • File bug_5755.patch bug_5755.patch added
  • Category set to core
  • Status changed from Open to Assigned
  • Assignee set to nagachika (Tomoyuki Chikanaga)
  • Target version set to 2.0.0

Thank you for your report.
I think this is a bug too.

I've found a bad usage of rb_protect() in name_err_mesg_to_str(). When an exception is going to ignored, rb_thread_t::errinfo should be cleared. I'll attach a patch. I'd like to commit it later if there's no objection.

BTW, I wonder if the similar problem exists in openssl extension. nahi-san, how do you think?

Updated by nagachika (Tomoyuki Chikanaga) almost 15 years ago Actions #2

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r34030.
Nikolai, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


Updated by nagachika (Tomoyuki Chikanaga) almost 15 years ago Actions #3

  • Tracker changed from Bug to Backport
  • Project changed from Ruby to 13
  • Category deleted (core)
  • Status changed from Closed to Open
  • Target version deleted (2.0.0)

Please backport r34028 and r34030.

Updated by naruse (Yui NARUSE) over 14 years ago Actions #4

  • Status changed from Open to Closed

This issue was solved with changeset r34466.
Nikolai, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


merge revision(s) 34028,34030:

* error.c (name_err_mesg_to_str): clear rb_thread_t::errinfo when
  ignore exception under rb_protect().

* test/ruby/test_exception.rb (test_exception_in_name_error_to_str):
  add a corresponding test.
  ignore exception under rb_protect(). [ruby-core:41612] [Bug #5755]
Actions

Also available in: PDF Atom