[#104169] [Ruby master Feature#17938] Keyword alternative for boolean positional arguments — matheusrichardt@...

Issue #17938 has been reported by matheusrich (Matheus Richard).

12 messages 2021/06/04

[#104213] [Ruby master Feature#17942] Add a `initialize(public @a, private @b)` shortcut syntax for defining public/private accessors for instance vars — tyler@...

SXNzdWUgIzE3OTQyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IFR5bGVyUmljayAoVHlsZXIgUmljayku

6 messages 2021/06/09

[#104288] [Ruby master Bug#17992] Upstreaming the htmlentities gem into CGI#.(un)escape_html — alexandermomchilov@...

Issue #17992 has been reported by AMomchilov (Alexander Momchilov).

9 messages 2021/06/15

[#104338] [Ruby master Misc#17997] DevelopersMeeting20210715Japan — mame@...

Issue #17997 has been reported by mame (Yusuke Endoh).

10 messages 2021/06/17

[#104361] [Ruby master Bug#18000] have_library doesn't work when ruby is compiled with --disable-shared --disable-install-static-library — jean.boussier@...

Issue #18000 has been reported by byroot (Jean Boussier).

9 messages 2021/06/18

[#104381] [Ruby master Feature#18004] Add Async to the stdlib — shannonskipper@...

Issue #18004 has been reported by shan (Shannon Skipper).

9 messages 2021/06/22

[#104401] [Ruby master Feature#18007] Help developers of C extensions meet requirements in "doc/extension.rdoc" — mike.dalessio@...

Issue #18007 has been reported by mdalessio (Mike Dalessio).

16 messages 2021/06/25

[#104430] [Ruby master Bug#18011] `Method#parameters` is incorrect for forwarded arguments — josh.cheek@...

Issue #18011 has been reported by josh.cheek (Josh Cheek).

12 messages 2021/06/29

[ruby-core:104323] [Ruby master Bug#14479] Exceptions raised from a :call tracepoint can sometimes be "rescued" inside the method

From: merch-redmine@...
Date: 2021-06-16 23:37:36 UTC
List: ruby-core #104323
Issue #14479 has been updated by jeremyevans0 (Jeremy Evans).


This is still an issue in the master branch.  I've submitted a pull request that should fix the problem: https://github.com/ruby/ruby/pull/4578

----------------------------------------
Bug #14479: Exceptions raised from a :call tracepoint can sometimes be "rescued" inside the method
https://bugs.ruby-lang.org/issues/14479#change-92545

* Author: dazuma (Daniel Azuma)
* Status: Open
* Priority: Normal
* ruby -v: ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
This is a Ruby 2.5 regression.

If you raise an exception from a :call tracepoint, it can, in certain circumstances, be caught by a rescue block inside the called method. Here is an illustration:

####
def foo
  begin
    puts "hi"
  rescue => e
    puts "In rescue"
  end
end

TracePoint.trace :call do |tp|
  raise "kaboom" if tp.method_id == :foo
end

foo
####

In Ruby 2.4.3, this results in the exception as expected.
In Ruby 2.5.0, this results in "in rescue" being printed to the console. The rescue block inside method "foo" is catching the exception.

This is highly dependent on the positioning of the rescue block in the method, and may be related to which bytecode is flagged with the trace flag. For example, the following method "foo" raises the exception in Ruby 2.5.0:

####
def foo
  puts "hi"
  begin
    puts "hi"
  rescue => e
    puts "In rescue"
  end
end
####

Here are three more interesting variants that should be considered:

####
def foo
  if true
    begin
      puts "hi"
    rescue => e
      puts "In rescue"
    end
  end
end
####
Prints "in rescue"

####
def foo
  if false
    begin
      puts "hi"
    rescue => e
      puts "In rescue"
    end
  end
end
####
Raises the exception

####
def foo
  if false
    begin
      puts "hi"
    rescue => e
      puts "In rescue"
    end
  end
  1
end
####
Segfaults!





-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next