LoginSignup
1
1

More than 5 years have passed since last update.

Error in launcing app server in Heroku (and how to solve)

Posted at

Error in launcing app server in Heroku (And how to solve)

Environments

  • Heroku
  • Memcachier
  • Rails 5 API Mode
  • MySQL ClearDB

Error

2017-04-25T08:46:54.321621+00:00 app[web.1]: W, [2017-04-25T08:46:54.321561 #4]  WARN -- : localhost:11211 failed (count: 0) Errno::ECONNREFUSED: Connection refused - connect(2) for "localhost" port 11211

source code (before resolve the problem)

configuration file

config/environments/production.rb
  config.cache_store = :dalli_store,
    nil,
    { 
      :username => ENV["MEMCACHIER_USERNAME"],
      :password => ENV["MEMCACHIER_PASSWORD"],
      :failover => true,
      :socket_timeout => 1.5,
      :socket_failure_delay => 0.2,
      :down_retry_delay => 60,
      :expires_in => 7.day,
      :compress => true,
      :namespace => 'Planna-prod',
    }

note: According to GitHub - petergoldstein/dalli: High performance memcached client for Ruby

If your servers are specified in ENV"MEMCACHE_SERVERS", simply provide nil for the servers:

Or simply write configuration according to a Heroku document.

config/environments/production.rb
  config.cache_store = :dalli_store,
    (ENV["MEMCACHIER_SERVERS"] || "").split(","),
    { 
      :username => ENV["MEMCACHIER_USERNAME"],
      :password => ENV["MEMCACHIER_PASSWORD"],
      :failover => true,
      :socket_timeout => 1.5,
      :socket_failure_delay => 0.2,
      :down_retry_delay => 60,
      :expires_in => 7.day,
      :compress => true,
      :namespace => 'Planna-prod',

and, in config/application.rb is a middleware configuration as

config.middleware.use ActionDispatch::Session::MemCacheStore, expires_after: 7.day

and, config/initializers/session_store.rb is

Rails.application.config.session_store :mem_cache_store

environmental variables

Enviromental variables are set as below,
* MEMCACHE_PASSWORD
* MEMCACHE_USERNAME
* MEMCACHE_SERVERS
* MEMCACHIER_PASSWORD
* MEMCACHIER_USERNAME
* MEMCACHIER_SERVERS

the first try

Modify config/initializers/session_store.rb from

Rails.application.config.session_store :mem_cache_store

To

Rails.application.config.session_store :dalli_store

the second try

Modify config/application.rb from

config.middleware.use ActionDispatch::Session::MemCacheStore, expires_after: 7.day

To

require 'action_dispatch/middleware/session/dalli_store'
config.middleware.use ActionDispatch::Session::DalliStore, expires_after: 7.day

and then I encountered the same problem as mentioned in this issue: https://github.com/petergoldstein/dalli/issues/613

so I tried to fix up the code the instruction In the issue 613.

Update the value of config.cache_store in your environment configuration to be :dalli_store
Set the config.session_store values to ActionDispatch::Session::CacheStore with whatever options you'd like

Then the problem in heroku (the output is below)

2017-04-25T10:00:38.564394+00:00 heroku[web.1]: Process exited with status 0
2017-04-25T10:00:39.945440+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 29870 -e production`
2017-04-25T10:00:42.430045+00:00 app[web.1]: /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:51: warning: constant ::Fixnum is deprecated
2017-04-25T10:00:42.430073+00:00 app[web.1]: /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:52: warning: constant ::Bignum is deprecated
2017-04-25T10:00:43.478293+00:00 app[web.1]: => Booting Puma
2017-04-25T10:00:43.478322+00:00 app[web.1]: => Rails 5.0.1 application starting in production on http://0.0.0.0:29870
2017-04-25T10:00:43.478323+00:00 app[web.1]: => Run `rails server -h` for more startup options
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1