Open sempervictus opened 11 months ago
Can you please share your use
(or insert_before
) statement?
The environment variables will not override setting a value at initialization time. If you want to be able to toggle a setting on/off using environment variables, you must always use environment variables. The alternative is to handle it yourself to have the effect you desire.
use Rack::Timeout, term_timeout: ENV['RACK_TIMEOUT_TERM_ON_TIMEOUT'] || 15
In this case, it will prefer to use the ENV var since it's being explicitly passed in, but default to 15 if it is unset.
Otherwise, this appears to be a bug in TruffleRuby. (Arguably, it already is, since the error you provided is not being printed by rack-timeout, and rack-timeout only attempts to run ::Process.respond_to?(:fork)
, which should be able to return false
in TruffleRuby rather than raising an error. If there is some more canonical way to check this, I'm all ears.)
Ah, sorry, this error was raised by rack-timeout; the error message was changed on HEAD in this commit 0f35a85a89a8206c2b8a2d1714c39329b3490ce6 which misled me here.
Getting
when invoking
RACK_TIMEOUT_TERM_ON_TIMEOUT=0 RAILS_ENV=production bundle exec rake db:migrate db:schema:dump db:schema:cache:dump
with TruffleRuby (JVM version) 23.1.1. Trying to hack around it currently withsed -e 's/@term_on_timeout =.*/@term_on_timeout = ::RUBY_ENGINE == "truffleruby" ? false : read_timeout_property(term_on_timeout, ENV.fetch("RACK_TIMEOUT_TERM_ON_TIMEOUT", 0).to_i)/' lib/rack/timeout/core.rb
but it seems like either the ENV var is being overridden orterm_on_timeout
is alreadytrue
somehow.