Ho un bug strano con sessioni di Django nella mia app: alcune volte (circa 10 volte per ~ 20000 al giorno) le informazioni di sessione per l'utente viene cancellato. L'ho tracciato tramite file di log: alla pagina A ci sono informazioni per la sessione dell'utente, dopo che ha inviato il modulo e alla pagina successiva la sua sessione è vuota. Ho provato due tipi di archiviazione: memcached + solo db e db e questo problema riguarda entrambi. Ho provato a riprodurre questi scenari, ma tutto funziona come previsto, come ho detto, accade molto raramente. Ho anche verificato che questo problema esiste per utenti diversi, e per loro non si riproduce ogni volta. Non ho idee su come prendere la causa principale e non so che altro postare qui come descrizione. Se qualcuno ha qualche idea, per favore fatemelo sapere. Se è importante, eseguo la mia app con django 1.2 + FastCGI. Grazie!questione spinosa con le sessioni di Django: a volte le informazioni di sessione viene cancellata
UPD: Ho controllato e visto che la chiave di sessione dagli usi non è cambiata durante due richieste sequenziali, alla prima richiesta c'è uno stato di sessione reale e alle variabili di seconda sessione sono relazionate con vuoto.
Usi qualsiasi javascript che può originare richieste concorrenti in modo che entrambi possano modificare la sessione? – hynekcer
@hynekcer, nessuna sessione non viene aggiornata nelle chiamate da JS. – dbf
Sei sicuro di non utilizzare il multithreading in FastCGI? (Se imposti FCGI_MAX_CONNS = 1, FCGI_MAX_REQS = 1, FCGI_MPXS_CONNS = 0, puoi essere sicuro di utilizzare solo un singolo thread, indipendente dalle implementazioni fastcgi che usi: [Specifica FastCGI] (http://www.fastcgi.com/drupal/node/6? q = node/22)) Quindi suggerisco di registrare l'id del processo per vedere se può essere cancellato solo dallo stesso processo o solo da un processo differente. (Usa "% (processo) d" nella stringa del formato di registrazione o nella funzione "os.getpid()".) – hynekcer