完全なエラーです:リクエストが完了する前にリクエストのセッションが削除されました。ユーザーは、たとえば、同時要求でログアウトしている可能性があります。Django/Memcachedエラー:リクエストが完了する前にリクエストのセッションが削除されました
私のキャッシュを使ってセッションでpython-memcachedを使用しています。数日おきにこれらのエラーの1つが発生します。 request.session.save()のUpdateErrorによってスローされます。これはsessions/middleware.pyの60行目から来ます。時間の99%が正常に動作します。私はGETとPOSTリクエストのために多くの異なるURLでこのエラーを見ました。ユーザーは、ログアウトボタンをクリックしていないことを報告します。また、ログイン後5分でセッションが終了することを報告しています。私はキャッシュが1ヶ月以上実行されている間、0個のエビクトをキャッシュに残しています。私がこのエラーをGoogleに伝えた場合、これまでに誰もそれを入手したことがないようです。
memcachedへの接続が何らかの理由で閉じている可能性があります。そのローカルホスト上で実行されます。私はこのエラーを見た唯一の他の時間は、memcachedを実行していたサーバーにキャッシュ設定を設定しても、そのインターフェースでリッスンしていないときです。これは、すべての要求に対してこの正確な例外を生成します。では、memcacheが2番目または2番目の接続を拒否したり、接続を切断したりすることを拒否する方法はありますか?ここで
は私の設定です:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
'TIMEOUT': 1209600, # Two weeks
},
}
SESSION_SAVE_EVERY_REQUEST = True
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_COOKIE_SECURE = CSRF_COOKIE_SECURE = True
SESSION_COOKIE_AGE = 60 * 90 # In 90 minutes
このエラーを発生させる確実な方法は、要求の実行中のシェルのセッションキーでcache.deleteを実行することであるようです。だから何かがキャッシュキーを削除しています。私はそのDjangoかMemcachedかわからない。 MemcachedはSTAT evictions 0
と言っています。
私は同じ問題を抱えています - そして、この問題を抱えているインターネット上に正確に3人の人がいるようです。 ;)おそらく4つ。 – Teekin
@Teekinもう私はそれを取得していません。私がチェックするのは、memcached、あなたのWebサーバー用のファイル記述子、およびそれらのそれぞれが実行中のユーザーをアップグレードすることです。 memcahedをローカルソケットで実行させる。下に貼り付けたミドルウェアを追加します。 – kagronick
私は最近、このエラーを生成するビューが、ほとんどがajaxスクリプトによって呼び出されていること、またはファイルを処理していることがわかりました。私の場合、ユーザーが同時リクエストでログアウトする可能性は間違いありません。このエラーメッセージを常に防止したいだけです。 –