私のアプリでdjangoセッションで奇妙なバグがあります:ユーザーのセッション情報が消去されることがあります(約10回〜約20000件)。私はログファイルを介してそれを追跡しました。ページAにはユーザーのセッションに関する情報があり、フォームを送信した後、次のページでセッションが空です。私はmemcached + dbとdbの2種類のストレージを試しましたが、この問題は両方のためです。私はこれらのシナリオを再現しようとしましたが、期待どおりの作品は、私が言ったように、非常にまれです。私はまた、この問題がさまざまなユーザーのために存在することを確認しました。そのため、毎回この問題が再現されません。私は根本的な原因を突き止める方法はありませんし、他に何が記述されているのか分かりません。誰かがアイデアを持っているなら、私に知らせてください。重要なのなら、私はdjango 1.2 + FastCGIを使って自分のアプリケーションを実行しています。 ありがとう!djangoセッションの難しい問題:セッション情報が消去されることがある
UPD:2つのシーケンシャルリクエストの間に、セッションキーが変更されていないことを確認しました。最初のリクエストでは実際のセッション状態があり、2番目のセッション変数は空に再配置されます。この問題をデバッグするための方法として
同時リクエストを発信できるjavascriptを使用して、両方がセッションを変更できるようにしていますか? – hynekcer
@hynekcerでは、JSからの呼び出しでセッションは更新されません。 – dbf
FastCGIでマルチスレッドを使用していませんか? (FCGI_MAX_CONNS = 1、FCGI_MAX_REQS = 1、FCGI_MPXS_CONNS = 0を設定すると、使用するfastcgiの実装に依存して、単一のスレッドのみを使用することができます。[FastCGI specification](http://www.fastcgi.com/drupal/node/6?q = node/22))次に、プロセスIDのログを記録して、同じプロセスでのみ消去できるか、別のプロセスでのみ消去できるかを確認することをお勧めします。 (ロギングフォーマット文字列や "os.getpid()"関数で "%(process)d"を使用してください。) – hynekcer