You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
/home/kirill/gems/ruby-3.3.0/gems/async-service-0.12.0/lib/async/service/environment.rb:124:in `block (2 levels) in wrap': wrong number of arguments (given 1, expected 0) (ArgumentError)
from /home/kirill/Desktop/my_project/falcon.rb:7:in `block (2 levels) in load_file'
from /home/kirill/gems/ruby-3.3.0/gems/async-service-0.12.0/lib/async/service/environment.rb:125:in `block (2 levels) in wrap'
from /home/kirill/gems/ruby-3.3.0/gems/falcon-0.45.2/lib/falcon/service/server.rb:38:in `start'
from /home/kirill/gems/ruby-3.3.0/gems/async-service-0.12.0/lib/async/service/controller.rb:48:in `block in start'
from /home/kirill/gems/ruby-3.3.0/gems/async-service-0.12.0/lib/async/service/controller.rb:47:in `each'
from /home/kirill/gems/ruby-3.3.0/gems/async-service-0.12.0/lib/async/service/controller.rb:47:in `start'
from /home/kirill/gems/ruby-3.3.0/gems/async-container-0.18.0/lib/async/container/controller.rb:203:in `run'
from /home/kirill/gems/ruby-3.3.0/gems/async-service-0.12.0/lib/async/service/controller.rb:32:in `run'
from /home/kirill/gems/ruby-3.3.0/gems/falcon-0.45.2/lib/falcon/command/host.rb:41:in `call'
from /home/kirill/gems/ruby-3.3.0/gems/samovar-2.3.0/lib/samovar/command.rb:21:in `call'
from /home/kirill/gems/ruby-3.3.0/gems/falcon-0.45.2/bin/falcon-host:26:in `<top (required)>'
from bin/falcon-host:27:in `load'
from bin/falcon-host:27:in `<main>'
After some investigation I found that configuration block rack {} doesn't support Ruby core methods anymore, e.g. puts, Integer(), etc.
Changing count Integer(2) to count 2 fixes the server boot and works well.
Also it is rather strange that block endpoint {} inside rack {} do support all these methods, that are breaking the rack {} itself. For example, you can use Integer() inside.
Yep that's a fair point, and a fair request. I'll think about the best way forward.
Part of the design motivation is to ensure we don't accidentally leak shared memory into the configurations, but it's pretty inconvenient. Those configuration blocks are actually re-evaluated every time the child is forked/executed to ensure isolation and predictable behaviour.
After upgrading Falcon from 0.43 to 0.44 this configuration:
breaks server boot with a very strange error:
After some investigation I found that configuration block
rack {}
doesn't support Ruby core methods anymore, e.g.puts
,Integer()
, etc.Changing
count Integer(2)
tocount 2
fixes the server boot and works well.Also it is rather strange that block
endpoint {}
insiderack {}
do support all these methods, that are breaking therack {}
itself. For example, you can useInteger()
inside.I suppose this should be fixed or at least mentioned in docs.
The text was updated successfully, but these errors were encountered: