Skip to content

Error with rack-mount and rails 4.2.4 #1151

Closed
@brauliobo

Description

@brauliobo

The following error happens only with rails 4.2.4 (and rack 1.6) and not on rails 3.2.22 (and rack 1.4):

ERROR["test_should_suggest_event_children", ArticlesTest, 2015-09-10 18:40:02 -0300]
 test_should_suggest_event_children#ArticlesTest (1441921202.61s)
NoMethodError:         NoMethodError: undefined method `[]' for nil:NilClass
            /home/braulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-mount-0.8.3/lib/rack/mount/route_set.rb:155:in `block in call'
            /home/braulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-mount-0.8.3/lib/rack/mount/code_generation.rb:96:in `block in recognize'
            /home/braulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-mount-0.8.3/lib/rack/mount/code_generation.rb:68:in `optimized_each'
            /home/braulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-mount-0.8.3/lib/rack/mount/code_generation.rb:95:in `recognize'
            /home/braulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-mount-0.8.3/lib/rack/mount/route_set.rb:141:in `call'
            /home/braulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/grape-0.13.0/lib/grape/api.rb:114:in `call'
            /home/braulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/grape-0.13.0/lib/grape/api.rb:44:in `call!'
            /home/braulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/grape-0.13.0/lib/grape/api.rb:39:in `call'
            /home/braulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-test-0.6.3/lib/rack/mock_session.rb:30:in `request'
            /home/braulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-test-0.6.3/lib/rack/test.rb:244:in `process_request'
            /home/braulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/rack-test-0.6.3/lib/rack/test.rb:67:in `post'
            test/unit/api/articles_test.rb:366:in `block in <class:ArticlesTest>'

The error happened because rack-mount is expecting the result of rack call to be an array, but it is a hash (file rack-mount-0.8.3/lib/rack/mount/route_set.rb):

151             
152         result = route.app.call(env) 
153             
154         pp result
155         if result[1][X_CASCADE] == PASS
156           env[@parameters_key] = old_params
157         else
158           return res

It seems that rack-mount is unmaintained for a long time (even the repo was deleted). Have you considered to not depend on it anymore?

cc @diguliu @terceiro

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions