[#99868] [Ruby master Bug#17144] Tempfile.open { ... } does not unlink the file — eregontp@...
Issue #17144 has been reported by Eregon (Benoit Daloze).
15 messages
2020/09/03
[ruby-core:100216] [Ruby master Bug#17203] Logger::Formatter won't work with non main Ractor
From:
maciej@...
Date:
2020-09-29 15:17:51 UTC
List:
ruby-core #100216
Issue #17203 has been reported by maciej.mensfeld (Maciej Mensfeld).
----------------------------------------
Bug #17203: Logger::Formatter won't work with non main Ractor
https://bugs.ruby-lang.org/issues/17203
* Author: maciej.mensfeld (Maciej Mensfeld)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.0.0preview1 (2020-09-25 master 0096d2b895) [x86_64-linux]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
``` ruby
class Rogger < Ractor
def self.new
super do
# STDOUT cannot be referenced but $stdout can
logger = ::Logger.new($stdout)
# Run the requested operations on our logger instance
while data = recv
logger.public_send(data[0], *data[1])
end
end
end
# Really cheap logger API :)
def method_missing(m, *args, &_block)
self << [m, *args]
end
end
class Rails
LOGGER = Rogger.new
def self.logger
LOGGER
end
end
Ractor.new do
Rails.logger.info "Hello"
end
```
running this ends up with:
```bash
terminated with exception (report_on_exception is true):
ruby/3.0.0/logger/formatter.rb:15:in `call': can not access global variables $$ from non-main Ractors (RuntimeError)
from ruby/3.0.0/logger.rb:586:in `format_message'
from ruby/3.0.0/logger.rb:476:in `add'
from ruby/3.0.0/logger.rb:529:in `info'
from test.rb:23:in `public_send'
from test.rb:23:in `block in new'
```
however the same with fixed formatter works.
PR: https://github.com/ruby/ruby/pull/3600
All of the code examples are here: https://mensfeld.pl/2020/09/building-a-ractor-based-logger-that-will-work-with-non-ractor-compatible-code/
--
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>