General

Profile

ioquatix (Samuel Williams)

Issues

open closed Total
Assigned issues 14 110 124
Reported issues 24 120 144

Projects

Project Roles Registered on
Ruby Committer 09/19/2018

Activity

10/20/2025

03:50 AM Ruby Feature #21642: Introduce `IO::ConnectionResetError` and `IO::BrokenPipeError` as standardized IO-level exceptions.
Thanks for your feedback. I understand your point and I think it makes sense.
"Connection Reset" and "Broken Pipe" have well defined meanings. On the face of it, I don't know what "CloseUnrecoverable" means. Is there a concept like this...
ioquatix (Samuel Williams)

10/19/2025

10:55 PM Ruby Feature #21642 (Open): Introduce `IO::ConnectionResetError` and `IO::BrokenPipeError` as standardized IO-level exceptions.
Currently, different IO implementations in Ruby raise inconsistent exception types when a connection is reset or broken.
For example:
```ruby
# Plain TCP socket:
socket.read_nonblock(1024)
# => Errno::ECONNRESET
# SSL socket:...
ioquatix (Samuel Williams)

10/09/2025

04:42 AM Ruby Bug #21633 (Open): A `rb_thread_call_without_gvl` loop can cause the fiber scheduler to ignore signals.
The gRPC gem calls `rb_thread_call_without_gvl` in a loop, and doesn't exit when interrupts are delivered if `Thread.handle_interrupt(::SignalException => :never)` is used by the scheduler to create a safe point for asynchronous signal h... ioquatix (Samuel Williams)

10/06/2025

10:17 PM Ruby Bug #19461: Time.local performance tanks in forked process (on macOS only?)
Just for reference, on the lastest macOS, the issue still appears:
```
% clang localtime_test.c
% ./a.out
Measuring localtime
In parent
monotonic = 0.002930000
cputime = 0.002454000
In child
monotonic = 0.553250000
...
ioquatix (Samuel Williams)

10/05/2025

11:25 AM Ruby Bug #21610: Use ec->interrupt_mask to prevent interrupts.
- Ruby 3.3 backport PR: https://github.com/ruby/ruby/pull/14735
- Ruby 3.2 backport PR: https://github.com/ruby/ruby/pull/14737
Hope this helps!
ioquatix (Samuel Williams)

09/18/2025

03:28 AM Ruby Bug #21610: Use ec->interrupt_mask to prevent interrupts.
A slightly different change may be required for 3.3 and 3.2 backports: https://github.com/ruby/ruby/commit/e900e9fc9ace5e36de5170c83df0f56167e4c8a9 ioquatix (Samuel Williams)
02:27 AM Ruby Bug #21610 (Closed): Use ec->interrupt_mask to prevent interrupts.
Fixed in https://github.com/ruby/ruby/commit/e6879401feba22e3657a231cbedc751998cb7176 ioquatix (Samuel Williams)
01:36 AM Ruby Bug #21610 (Closed): Use ec->interrupt_mask to prevent interrupts.
The following program can trigger `rb_bug` in `rb_fiber_scheduler_unblock`:
```ruby
require 'async/scheduler'
scheduler = Async::Scheduler.new
Fiber.set_scheduler(scheduler)
Signal.trap(:USR1) do
end
q = Thread::Queue.new
...
ioquatix (Samuel Williams)

08/30/2025

12:54 AM Ruby Bug #21342: Segfault: invalid keeping_mutexes when using Mutex in Thread then Fiber after GC
Just for the sake of cross-referencing related issues: https://bugs.ruby-lang.org/issues/18818 ioquatix (Samuel Williams)

08/07/2025

12:30 AM Ruby Feature #19333: Setting (Fiber Local|Thread Local|Fiber Storage) to nil should delete value in order to avoid memory leaks.
See <https://github.com/socketry/async-http-faraday/pull/57> for a valid use case. ioquatix (Samuel Williams)

Also available in: Atom