Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Heroku, Rails 3.1 and Dalli

Having problems with some asset caching, using Dalli on Heroku with Rails 3.1. These are the errors in my logs:

2011-09-12T16:37:52+00:00 app[web.1]: Started GET "/assets/bg.png" for 68.33.34.109 at 2011-09-12 16:37:52 +0000
2011-09-12T16:37:52+00:00 app[web.1]: cache: [GET /assets/bg.png] miss, store
2011-09-12T16:37:52+00:00 app[web.1]: !! Rack application returned nil body. Probably you wanted it to be an empty string?
2011-09-12T16:37:52+00:00 app[web.1]: !! Unexpected error while processing request: undefined method `each' for nil:NilClass
2011-09-12T16:37:52+00:00 app[web.1]: cache: [GET /assets/screenshots/2-76481ad827eb34e33208c68196c57401.png] miss
2011-09-12T16:37:52+00:00 heroku[router]: Error H13 (Connection closed without response) -> GET countr.boxfirepress.com/assets/bg.png dyno=web.1 queue= wait= service= status=503 bytes=
2011-09-12T16:37:52+00:00 heroku[router]: GET countr.boxfirepress.com/assets/screenshots/2-76481ad827eb34e33208c68196c57401.png dyno=web.1 queue=0 wait=0ms service=5ms status=200 bytes=48355
2011-09-12T16:37:52+00:00 app[web.1]: cache: [GET /assets/screenshots/3-4fd3fe37a5915dec391663720fcbb7d4.png] miss
2011-09-12T16:37:52+00:00 heroku[router]: GET countr.boxfirepress.com/assets/screenshots/3-4fd3fe37a5915dec391663720fcbb7d4.png dyno=web.1 queue=0 wait=0ms service=8ms status=200 bytes=26464

And, in the console:

irb(main):001:0> Rails.cache.clear
localhost:11211 failed (count: 0)
Dalli::NetworkError: localhost:11211 is down:  
    from /app/vendor/bundle/ruby/1.9.1/gems/dalli-1.0.5/lib/dalli/server.rb:43:in `request'
    from /app/vendor/bundle/ruby/1.9.1/gems/dalli-1.0.5/lib/dalli/options.rb:18:in `block in request'
    from /usr/local/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
    from /app/vendor/bundle/ruby/1.9.1/gems/dalli-1.0.5/lib/dalli/options.rb:17:in `request'
    from /app/vendor/bundle/ruby/1.9.1/gems/dalli-1.0.5/lib/dalli/client.rb:159:in `block in flush'
    from /app/vendor/bundle/ruby/1.9.1/gems/dalli-1.0.5/lib/dalli/client.rb:159:in `map'
    from /app/vendor/bundle/ruby/1.9.1/gems/dalli-1.0.5/lib/dalli/client.rb:159:in `flush'
    from /app/vendor/bundle/ruby/1.9.1/gems/dalli-1.0.5/lib/active_support/cache/dalli_store.rb:103:in `clear'
    from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.1.0/lib/active_support/cache/strategy/local_cache.rb:88:in `clear'
    from (irb):1
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.0/lib/rails/commands/console.rb:45:in `start'
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.0/lib/rails/commands/console.rb:8:in `start'
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.0/lib/rails/commands.rb:40:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

Any thoughts about what's going on?

like image 255
Slick23 Avatar asked Oct 10 '22 00:10

Slick23


1 Answers

It looks like Dalli is not connection to a Memcache server? Have you enabled the Heroku Memcache addon (or otherwise configured a Memcache server)?

like image 136
Michael Fairley Avatar answered Oct 12 '22 15:10

Michael Fairley