[ruby-core:114571] [Ruby master Bug#19853] Segfault when calling `system` from a non-blocking fiber
From:
"ioquatix (Samuel Williams) via ruby-core" <ruby-core@...>
Date:
2023-08-28 23:51:40 UTC
List:
ruby-core #114571
Issue #19853 has been updated by ioquatix (Samuel Williams).
I could reproduce the error with the native backends, but not the pure Ruby backend. That means it's a bug with `io-event` gem. I'll probably move the issue there once I have time to investigate fully.
```
> IO_EVENT_SELECTOR=Select ./test.rb
Starting...
{"data"=>{"v1"=>0.5, "v2"=>0.5}}
Ended
[:duration, 0.603101918]
```
Using a native selector fails with a segfault.
----------------------------------------
Bug #19853: Segfault when calling `system` from a non-blocking fiber
https://bugs.ruby-lang.org/issues/19853#change-104385
* Author: rmosolgo (Robert Mosolgo)
* Status: Open
* Priority: Normal
* Assignee: ioquatix (Samuel Williams)
* ruby -v: ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-darwin22]
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
Hi! I'm trying to improve my Ruby library to support transfer-based fibers (https://github.com/rmosolgo/graphql-ruby/pull/4322). To test parallel I/O, I'm using `system("sleep #{duration}")`, but this causes a segfault sometimes. I'd love to find a way to keep developing this feature but I'm not sure where to go next.
I have attached a script which replicates the bug and I have attached the full segfault error dump. I encountered this error by running:
```
ruby fiber_bug.rb 2>out.txt
```
Does that help debug? Please let me know if I can provide anything else that'd be helpful.
---Files--------------------------------
out.txt (121 KB)
fiber_bug.rb (624 Bytes)
--
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/postorius/lists/ruby-core.ml.ruby-lang.org/