警告! ActionDispatch :: Session :: CacheStore无法保存会话。内容下降。在日志文件

时间:2015-12-14 21:34:40

标签: ruby-on-rails session heroku memcached

我正在运行Rails 4应用程序,而且我在Heroku的生产日志中看到了这一点。我经常看到它并且有些用户被报告登出,我在日志中看不到任何可以表明它发生的原因。我没有看到dalli提供的任何无法保存的信息。对于大多数用户来说,它的工作正常。关于如何追捕它的任何提示?

生产日志中的错误消息

Warning! ActionDispatch::Session::CacheStore failed to save session. Content dropped.

我的生产配置

  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
      }

  config.session_store = :mem_cache_store

1 个答案:

答案 0 :(得分:0)

我发现了创建此错误的问题,我使用自定义标头变量来设置会话ID,而客户端发送的是nil导致机架无法存储到nil会话ID。我把电话包裹在空白处?检查以确保只有在有效值并且修复了我的问题时才设置它。

if(!request.headers["Session"].blank?)
  request.session_options[:id] = request.headers["Session"]
end