GithubHelp home page GithubHelp logo

Comments (3)

trevorturk avatar trevorturk commented on May 25, 2024 3

I left some related notes here for others that might be looking: #121

My current setup for a Rails app running on Heroku looks like this:

Procfile:

web: bundle exec ./falcon.rb

falcon.rb

#!/usr/bin/env -S falcon host

load :rack

hostname = File.basename(__dir__)
port = ENV["PORT"] || 3000

rack hostname do
  append preload "preload.rb"
  cache false
  count ENV.fetch("FALCON_COUNT", 1).to_i
  endpoint Async::HTTP::Endpoint.parse("http://0.0.0.0:#{port}").with(protocol: Async::HTTP::Protocol::HTTP11)
end

preload.rb

require_relative "config/environment"

...this doesn't cover all of the options in that example Puma config, but it might be a start if someone is migrating from Puma to Falcon, I'm sure a PR with documentation/guide content would be most welcome!

from falcon.

ioquatix avatar ioquatix commented on May 25, 2024 2

This will be fixed in Rails 7.1

Rails 7.0 is incompatible.

from falcon.

joeldrapper avatar joeldrapper commented on May 25, 2024

I followed the current Rails guide on a brand new Rails install and immediately ran into this error.

               | Task may have ended with unhandled exception.
               |   Concurrent::IllegalOperationError: Cannot release a read lock which is not held
               |   → /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb:246 in `release_read_lock'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/actionview-7.0.4.3/lib/action_view/cache_expiry.rb:21 in `complete'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/execution_wrapper.rb:37 in `before'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/callbacks.rb:423 in `block in make_lambda'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/callbacks.rb:199 in `block (2 levels) in halting'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/callbacks.rb:687 in `block (2 levels) in default_terminator'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/callbacks.rb:686 in `catch'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/callbacks.rb:686 in `block in default_terminator'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/callbacks.rb:200 in `block in halting'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/callbacks.rb:595 in `block in invoke_before'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/callbacks.rb:595 in `each'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/callbacks.rb:595 in `invoke_before'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/callbacks.rb:106 in `run_callbacks'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/execution_wrapper.rb:143 in `complete'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/execution_wrapper.rb:137 in `complete!'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/actionpack-7.0.4.3/lib/action_dispatch/middleware/executor.rb:15 in `block in call'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rack-2.2.6.4/lib/rack/body_proxy.rb:29 in `close'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/protocol-rack-0.2.4/lib/protocol/rack/body/enumerable.rb:58 in `close'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/protocol-http-0.24.1/lib/protocol/http/body/wrapper.rb:32 in `close'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/protocol-http-0.24.1/lib/protocol/http/body/deflate.rb:36 in `close'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/async-http-0.60.1/lib/async/http/protocol/http2/output.rb:109 in `passthrough'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/async-2.5.0/lib/async/task.rb:158 in `block in run'
               |     /Users/joeldrapper/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/async-2.5.0/lib/async/task.rb:310 in `block in schedule'

from falcon.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.