Actions
Bug #17676
closedAccessing ENV from Ractor raises IsolationError
Description
Background¶
Accessing ENV variables from a Ractor will raise Ractor::IsolationError, as the Hash is non-shareable.
How to reproduce¶
ractor = Ractor.new do
ENV['PATH']
end
ractor.take
Expectation and result¶
Ractor raises Ractor::IsolationError for ENV
Expect to be able to access ENV variables from Ractors without raising an error.
`block in <main>': can not access non-shareable objects in constant Object::ENV by non-main Ractor. (Ractor::IsolationError)
Additional Notes¶
Attempting to create a shareable copy of ENV currently fails:
Ractor.make_shareable(ENV, copy: true)
# TypeError: cannot freeze ENV
# from <internal:ractor>:812:in `freeze'
Suggested solutions¶
- If ENV is a mutable hash, make a Ractor-compatible copy of ENV isolated to that Ractor.
Updated by hsbt (Hiroshi SHIBATA) over 3 years ago
- Tags set to ractor
- Status changed from Open to Assigned
- Assignee set to ko1 (Koichi Sasada)
Updated by ko1 (Koichi Sasada) over 3 years ago
I agree ENV
should be shareable.
It is in my task list, but not high priority.
Updated by jeremyevans0 (Jeremy Evans) about 1 year ago
- Status changed from Assigned to Closed
This was fixed in 3aab870761ff0138ffd29e0a08b6cdf151e2acb4
Updated by ivoanjo (Ivo Anjo) about 1 year ago
Thank you Jeremy! :)
Actions
Like0
Like0Like0Like0Like0Like0