Sidekiq: URI unable to decode Amazon Elastic Cache redis URL

Created on 12 Oct 2017  路  9Comments  路  Source: mperham/sidekiq

Ruby version: 2.4.0
Sidekiq / Pro / Enterprise version(s): Sidekiq 5.04

Please include your initializer and any error message with the full backtrace.

  • Intiliazer
    ```
    Sidekiq.configure_client do |config|
    config.redis = { url: "redis://#{ENV['REDIS_URL']}:#{ENV['REDIS_PORT']}/0"}
    end
Sidekiq.configure_server do |config|
 config.redis = { url: "redis://#{ENV['REDIS_URL']}:#{ENV['REDIS_PORT']}/0"}
end

```

  • backtrace
usr/local/lib/ruby/2.4.0/uri/rfc3986_parser.rb:67:in `split': bad URI(is not URI?): redis://some-redis.lrylbt.ng.0017.ap1.cache.amazonaws.com:6379 (URI::InvalidURIError)
/0
    from /usr/local/lib/ruby/2.4.0/uri/rfc3986_parser.rb:73:in `parse'
    from /usr/local/lib/ruby/2.4.0/uri/common.rb:231:in `parse'
    from /usr/local/bundle/gems/sidekiq-5.0.4/lib/sidekiq/redis_connection.rb:89:in `log_info'
    from /usr/local/bundle/gems/sidekiq-5.0.4/lib/sidekiq/redis_connection.rb:23:in `create'
    from /usr/local/bundle/gems/sidekiq-5.0.4/lib/sidekiq.rb:131:in `redis='
    from /ongair/config/initializers/sidekiq.rb:10:in `block in <top (required)>'
    from /usr/local/bundle/gems/sidekiq-5.0.4/lib/sidekiq.rb:83:in `configure_client'
    from /ongair/config/initializers/sidekiq.rb:9:in `<top (required)>'
    from /usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
    from /usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `block in load'
    from /usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'
    from /usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/engine.rb:655:in `block in load_config_initializer'
    from /usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/notifications.rb:168:in `instrument'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/engine.rb:654:in `load_config_initializer'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/engine.rb:612:in `block (2 levels) in <class:Engine>'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/engine.rb:611:in `each'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/engine.rb:611:in `block in <class:Engine>'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/initializable.rb:30:in `instance_exec'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/initializable.rb:30:in `run'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/initializable.rb:59:in `block in run_initializers'
    from /usr/local/lib/ruby/2.4.0/tsort.rb:228:in `block in tsort_each'
    from /usr/local/lib/ruby/2.4.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
    from /usr/local/lib/ruby/2.4.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
    from /usr/local/lib/ruby/2.4.0/tsort.rb:431:in `each_strongly_connected_component_from'
    from /usr/local/lib/ruby/2.4.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/initializable.rb:48:in `each'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/initializable.rb:48:in `tsort_each_child'
    from /usr/local/lib/ruby/2.4.0/tsort.rb:415:in `call'
    from /usr/local/lib/ruby/2.4.0/tsort.rb:415:in `each_strongly_connected_component_from'
    from /usr/local/lib/ruby/2.4.0/tsort.rb:349:in `block in each_strongly_connected_component'
    from /usr/local/lib/ruby/2.4.0/tsort.rb:347:in `each'
    from /usr/local/lib/ruby/2.4.0/tsort.rb:347:in `call'
    from /usr/local/lib/ruby/2.4.0/tsort.rb:347:in `each_strongly_connected_component'
    from /usr/local/lib/ruby/2.4.0/tsort.rb:226:in `tsort_each'
    from /usr/local/lib/ruby/2.4.0/tsort.rb:205:in `tsort_each'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/initializable.rb:58:in `run_initializers'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/application.rb:353:in `initialize!'
    from /ongair/config/environment.rb:5:in `<top (required)>'
    from /usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'
    from /usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `block in require'
    from /usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'
    from /usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'
    from config.ru:3:in `block in <main>'
    from /usr/local/bundle/gems/rack-2.0.3/lib/rack/builder.rb:55:in `instance_eval'
    from /usr/local/bundle/gems/rack-2.0.3/lib/rack/builder.rb:55:in `initialize'
    from config.ru:in `new'
    from config.ru:in `<main>'
    from /usr/local/bundle/gems/rack-2.0.3/lib/rack/builder.rb:49:in `eval'
    from /usr/local/bundle/gems/rack-2.0.3/lib/rack/builder.rb:49:in `new_from_string'
    from /usr/local/bundle/gems/rack-2.0.3/lib/rack/builder.rb:40:in `parse_file'
    from /usr/local/bundle/gems/rack-2.0.3/lib/rack/server.rb:319:in `build_app_and_options_from_config'
    from /usr/local/bundle/gems/rack-2.0.3/lib/rack/server.rb:219:in `app'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/server/server_command.rb:24:in `app'
    from /usr/local/bundle/gems/rack-2.0.3/lib/rack/server.rb:354:in `wrapped_app'
    from /usr/local/bundle/gems/rack-2.0.3/lib/rack/server.rb:283:in `start'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/server/server_command.rb:44:in `start'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/server/server_command.rb:135:in `block in perform'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/server/server_command.rb:130:in `tap'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/server/server_command.rb:130:in `perform'
    from /usr/local/bundle/gems/thor-0.19.4/lib/thor/command.rb:27:in `run'
    from /usr/local/bundle/gems/thor-0.19.4/lib/thor/invocation.rb:126:in `invoke_command'
    from /usr/local/bundle/gems/thor-0.19.4/lib/thor.rb:369:in `dispatch'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/command/base.rb:63:in `perform'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/command.rb:44:in `invoke'
    from /usr/local/bundle/gems/railties-5.1.4/lib/rails/commands.rb:16:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

Are you using an old version? No
Have you checked the changelog to see if your issue has been fixed in a later version? Yes no mention at all

https://github.com/mperham/sidekiq/blob/master/Changes.md

All 9 comments

That's not a valid hostname "some-redis.lrylbt.ng.0017.ap1.cache.amazonaws.com".

"0017" is invalid, hostname parts must start with a letter, e.g. "a0017".

AFAIK.

@mperham I hashed it a bit because I was sharing it in public anyway heres the URL:
****-redis.lrylbf.ng.0001.apse1.cache.amazonaws.com:6379

Same issue. 0001 is not legal afaik.

Either way, this issue is between your initializer and Ruby's URI parser. Nothing to do with Sidekiq afaict.

Alright thanks

So what was the solution to this? I'm encountering a similar problem.

@jeanpauldejong do you have new evidence that there might be a bug in Sidekiq? I think posting your specific details as a question on StackOverflow would be more effective at getting support.

@jeanpauldejong You'll need to give us the exact URI and error backtrace.

Sorry I resolved it :) And logged in under the wrong account, it is I @jeanpauldejong

Basically for AWS EB the REDIS_URL need to contain what makes an URI a URL...So the notation to use is:

redis://adfafdsda.cache.amazonaws.com:6379

I was missing the redis part at the front, I hope that helps someone else.
@mikegee @mperham thanks for prompting me to get back :)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mperham picture mperham  路  4Comments

smanolloff picture smanolloff  路  3Comments

BeRMaNyA picture BeRMaNyA  路  3Comments

edgarjs picture edgarjs  路  3Comments

paul-ylz picture paul-ylz  路  4Comments