[#122643] [Ruby Bug#21498] Windows - Ruby Overrides C Library APIs thus breaking them — "cfis (Charlie Savage) via ruby-core" <ruby-core@...>

Issue #21498 has been reported by cfis (Charlie Savage).

9 messages 2025/07/02

[#122658] [Ruby Feature#21501] Include native filenames in backtraces as sources for native methods — "ivoanjo (Ivo Anjo) via ruby-core" <ruby-core@...>

Issue #21501 has been reported by ivoanjo (Ivo Anjo).

10 messages 2025/07/05

[#122665] [Ruby Bug#21503] \p{Word} does not match on \p{Join_Control} while docs say it does — "procmarco (Marco Concetto Rudilosso) via ruby-core" <ruby-core@...>

SXNzdWUgIzIxNTAzIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHByb2NtYXJjbyAoTWFyY28gQ29uY2V0

8 messages 2025/07/07

[#122734] [Ruby Bug#21511] Use-after-free of the execution context after the fiber object carrying it is freed in GC — "tuonigou (tianyang sun) via ruby-core" <ruby-core@...>

Issue #21511 has been reported by tuonigou (tianyang sun).

10 messages 2025/07/14

[#122797] [Ruby Feature#21515] Add `&return` as sugar for `x=my_calculation; return x if x` — "nhorton (Noah Horton) via ruby-core" <ruby-core@...>

Issue #21515 has been reported by nhorton (Noah Horton).

13 messages 2025/07/16

[#122842] [Ruby Feature#21518] Statistical helpers to `Enumerable` — "Amitleshed (Amit Leshed) via ruby-core" <ruby-core@...>

SXNzdWUgIzIxNTE4IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IEFtaXRsZXNoZWQgKEFtaXQgTGVzaGVk

12 messages 2025/07/23

[#122847] [Ruby Feature#21520] Feature Proposal: Enumerator::Lazy#peek — "nuzair46 (Nuzair Rasheed) via ruby-core" <ruby-core@...>

SXNzdWUgIzIxNTIwIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IG51emFpcjQ2IChOdXphaXIgUmFzaGVl

12 messages 2025/07/24

[ruby-core:122717] [Ruby Bug#21456] IO.close does not work in a rescue IO::TimeoutError block.

From: "nobu (Nobuyoshi Nakada) via ruby-core" <ruby-core@...>
Date: 2025-07-10 09:23:11 UTC
List: ruby-core #122717
Issue #21456 has been updated by nobu (Nobuyoshi Nakada).

Status changed from Open to Rejected

dE (dE Techno) wrote:
> not sure what signal it sends, it's undocumented

No signal is sent.

Send a signal by yourself if you want to stop the process.
Since your example invokes a grand child process, add `pgroup` option and send "-signal" to the process group.

```ruby
execArg = 'echo testwrite; sleep 10'
tofuProcess = IO.popen(execArg, 'r', pgroup: true) ###
puts 'executed tofu process.'
tofuProcess.timeout=5
begin
  tofuOut = tofuProcess.read
rescue IO::TimeoutError
  puts 'rescue occured'
  Process.kill "-TERM", tofuProcess.pid ###
  tofuProcess.close
  puts 'process closed'
end
```



----------------------------------------
Bug #21456: IO.close does not work in a rescue IO::TimeoutError block.
https://bugs.ruby-lang.org/issues/21456#change-113994

* Author: dE (dE Techno)
* Status: Rejected
* ruby -v: ruby 3.2.8 (2025-03-26 revision 13f495dc2c) [x86_64-linux]
* Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
Invoking the close method on an IO object based on popen will forcefully close the process (not sure what signal it sends, it's undocumented), however when you handle a IO::TimeoutError exception (which you can get when you set .timeout), the close method fails to end the process. It's going to block until the process naturally terminates.

Sample code (linux based) -- 
```ruby
execArg = 'echo testwrite; sleep 10'
tofuProcess = IO.popen(execArg, 'r')
puts 'executed tofu process.'
tofuProcess.timeout=5
begin
	tofuOut = tofuProcess.read
rescue IO::TimeoutError
	puts 'rescue occured'
	tofuProcess.close
	puts 'process closed'
end
```



-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/


In This Thread

Prev Next