[#105104] [Ruby master Bug#18141] Marshal load with proc yield strings before they are fully initialized — "byroot (Jean Boussier)" <noreply@...>

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

10 messages 2021/09/01

[#105114] [Ruby master Feature#18143] Add a new method to change GC.stress only in the given block such as GC.with_stress(flag) {...} — "kou (Kouhei Sutou)" <noreply@...>

Issue #18143 has been reported by kou (Kouhei Sutou).

8 messages 2021/09/02

[#105180] [Ruby master Bug#18156] 3.0.2 configuration checks by default for C++ compiler instead of C? — "vo.x (Vit Ondruch)" <noreply@...>

Issue #18156 has been reported by vo.x (Vit Ondruch).

11 messages 2021/09/08

[#105191] [Ruby master Bug#18159] Integrate functionality of dead_end gem into Ruby — duerst <noreply@...>

Issue #18159 has been reported by duerst (Martin Dst).

37 messages 2021/09/11

[#105269] [Ruby master Bug#18169] Local copies of gemified libraries are being released out of sync with their gems — "headius (Charles Nutter)" <noreply@...>

Issue #18169 has been reported by headius (Charles Nutter).

15 messages 2021/09/15

[#105276] [Ruby master Bug#18170] Exception#inspect should not include newlines — "mame (Yusuke Endoh)" <noreply@...>

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

29 messages 2021/09/16

[#105310] [Ruby master Misc#18174] DevelopersMeeting20211021Japan — "mame (Yusuke Endoh)" <noreply@...>

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

14 messages 2021/09/16

[#105313] [Ruby master Misc#18175] Propose Jean Boussier (@byroot) as a core committer — "tenderlovemaking (Aaron Patterson)" <noreply@...>

Issue #18175 has been reported by tenderlovemaking (Aaron Patterson).

11 messages 2021/09/16

[#105354] [Ruby master Feature#18181] Introduce Enumerable#min_with_value, max_with_value, and minmax_with_value — "kyanagi (Kouhei Yanagita)" <noreply@...>

Issue #18181 has been reported by kyanagi (Kouhei Yanagita).

16 messages 2021/09/20

[#105361] [Ruby master Feature#18183] make SecureRandom.choose public — "olleicua (Antha Auciello)" <noreply@...>

Issue #18183 has been reported by olleicua (Antha Auciello).

17 messages 2021/09/21

[#105377] [Ruby master Bug#18187] Float#clamp() returns ArgumentError (comparison of Float with 1 failed) — "SouravGoswami (Sourav Goswami)" <noreply@...>

Issue #18187 has been reported by SouravGoswami (Sourav Goswami).

7 messages 2021/09/22

[#105391] [Ruby master Bug#18189] `rb_cString` can be NULL during `Init_Object` — "ioquatix (Samuel Williams)" <noreply@...>

Issue #18189 has been reported by ioquatix (Samuel Williams).

9 messages 2021/09/23

[#105428] [Ruby master Bug#18194] No easy way to format exception messages per thread/fiber scheduler context. — "ioquatix (Samuel Williams)" <noreply@...>

Issue #18194 has been reported by ioquatix (Samuel Williams).

16 messages 2021/09/26

[#105450] [Ruby master Feature#18228] Add a `timeout` option to `IO.copy_stream` — "byroot (Jean Boussier)" <noreply@...>

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

11 messages 2021/09/27

[#105452] [Ruby master Feature#18229] Proposal to merge YJIT — "maximecb (Maxime Chevalier-Boisvert)" <noreply@...>

Issue #18229 has been reported by maximecb (Maxime Chevalier-Boisvert).

21 messages 2021/09/27

[#105500] [Ruby master Feature#18231] `RubyVM.keep_script_lines` — "ko1 (Koichi Sasada)" <noreply@...>

Issue #18231 has been reported by ko1 (Koichi Sasada).

19 messages 2021/09/30

[#105504] [Ruby master Bug#18232] Ractor.make_shareable is broken in code loaded with RubyVM::InstructionSequence.load_from_binary — "byroot (Jean Boussier)" <noreply@...>

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

7 messages 2021/09/30

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

From: "ko1 (Koichi Sasada)" <noreply@...>
Date: 2021-09-17 06:09:09 UTC
List: ruby-core #105320
Issue #14479 has been updated by ko1 (Koichi Sasada).

Status changed from Open to Rejected

I want to reject this issue because of the following reasons:

* TracePoint block shouldn't raise an exception. TracePoint should not hurt non-hook (99.99..% case) execution if possible. I don't think this difference is not a matter.
* Now Ruby 2.4 is obsolete version (current last supported version is Ruby 2.6), so it also the change from stable versions if it was changed. I propose to change the definition of `call` event is "It invokes just before the first line in a method" from Ruby 2.4.

```
def foo
  # invoike here before 2.4
  begin
   # invoke here from 2.5
   foo
  rescue
   ...
  end
end
```


Please reopen this issue if it is needed.


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

* Author: dazuma (Daniel Azuma)
* Status: Rejected
* 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