Skip to content

RACK_TIMEOUT_TERM_ON_TIMEOUT=0 still does not allow TruffleRuby to run #211

Open
@sempervictus

Description

@sempervictus

Getting

Current Runtime does not support processes
/build/openprojectv/src/openproject/vendor/bundle/truffleruby/3.2.2.23.1.0/gems/rack-timeout-0.6.3/lib/rack/timeout/core.rb:78:in `initialize'

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 with sed -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 or term_on_timeout is already true somehow.

Activity

wuputah

wuputah commented on May 20, 2024

@wuputah
Collaborator

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.)

wuputah

wuputah commented on May 20, 2024

@wuputah
Collaborator

Ah, sorry, this error was raised by rack-timeout; the error message was changed on HEAD in this commit 0f35a85 which misled me here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      RACK_TIMEOUT_TERM_ON_TIMEOUT=0 still does not allow TruffleRuby to run · Issue #211 · zombocom/rack-timeout