socketry / falcon

A high-performance web server for Ruby, supporting HTTP/1, HTTP/2 and TLS.
https://socketry.github.io/falcon/
MIT License
2.62k stars 79 forks source link

async-io still in use #238

Closed jakeonfire closed 5 months ago

jakeonfire commented 5 months ago

https://github.com/socketry/falcon/blob/2379de9da42ff9bdad4eff6556fb4c57230585b7/lib/falcon/proxy_endpoint.rb#L6-L10

starting the server with rack environment results in:

<internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require': cannot load such file -- async/io/unix_endpoint (LoadError)
    from <internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
    from /usr/local/bundle/gems/falcon-0.47.0/lib/falcon/proxy_endpoint.rb:6:in `<top (required)>'
    from /usr/local/bundle/gems/falcon-0.47.0/lib/falcon/environment/application.rb:8:in `require_relative'
    from /usr/local/bundle/gems/falcon-0.47.0/lib/falcon/environment/application.rb:8:in `<top (required)>'
    from /usr/local/bundle/gems/falcon-0.47.0/lib/falcon/environment/rack.rb:6:in `require_relative'
    from /usr/local/bundle/gems/falcon-0.47.0/lib/falcon/environment/rack.rb:6:in `<top (required)>'
    from <internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
    from <internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
    from /app/falcon.rb:2:in `load_file'
    from /usr/local/bundle/gems/async-service-0.12.0/lib/async/service/loader.rb:38:in `instance_eval'
    from /usr/local/bundle/gems/async-service-0.12.0/lib/async/service/loader.rb:38:in `load_file'
    from /usr/local/bundle/gems/falcon-0.47.0/lib/falcon/configuration.rb:31:in `load_file'
    from /usr/local/bundle/gems/falcon-0.47.0/lib/falcon/command/paths.rb:27:in `block in configuration'
    from /usr/local/bundle/gems/falcon-0.47.0/lib/falcon/command/paths.rb:24:in `each'
    from /usr/local/bundle/gems/falcon-0.47.0/lib/falcon/command/paths.rb:24:in `each'
    from /usr/local/bundle/gems/falcon-0.47.0/lib/falcon/command/paths.rb:24:in `configuration'
    from /usr/local/bundle/gems/falcon-0.47.0/lib/falcon/command/host.rb:41:in `call'
    from /usr/local/bundle/gems/samovar-2.3.0/lib/samovar/command.rb:21:in `call'
    from /usr/local/bundle/gems/falcon-0.47.0/bin/falcon-host:26:in `<top (required)>'
    from /app/bin/falcon-host:27:in `load'
    from /app/bin/falcon-host:27:in `<main>'

our falcon.rb:2 has: require "falcon/environment/rack"

jakeonfire commented 5 months ago
load :rack

has the same issue

jakeonfire commented 5 months ago

in fact, searching for async/io yields 7 results 🤔

ioquatix commented 5 months ago

Oops, I'll fix it :)

Thanks for calling this out.