From: Sven Schöling Date: Wed, 17 Apr 2019 12:30:30 +0000 (+0200) Subject: Session Content: Race condition gehoben X-Git-Tag: release-3.5.4~67 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/commitdiff_plain/9b294beca7043c0fa5ae9c57d5766ce4e0d5aa65?ds=inline;hp=9b294beca7043c0fa5ae9c57d5766ce4e0d5aa65 Session Content: Race condition gehoben Der ursprüngliche Mechanismus hat einfach nur alle Session Variablen gespeichert und beim Session restore wieder geladen. Es hat sich aber gezeigt, dass große Daten in der Session Requests deutlich langsamer machen, also wurde das Flag auto_restore eingeführt. Session Werte, die nicht automatisch benötigt werden, sollten dann nur bei Bedarf geladen werden. Um zu wissen welche Werte existieren wurden aber zum Start des Requests einmal alle Werte aus der Sessiontabelle geholt, und am Ende dieser Stand auch wieder hergestellt. Unter ajax load kann es aber passieren, dass in der Zeit andere Requests schon Werte eingepflegt haben die dabei gelöscht werden. Das führt dann zu zufälligen Sessionabbrüchen oder Requestfehlern. Jetzt werden am Anfang nur und ausschließlich die Daten geladen die auch auto_restore sind, die dann auch gleich gelöscht werden. nur die Daten die modifiziert werden, werden am Ende des Requests zurückgespeichert. Es wäre toll gewesen dafür ein UPSERT zu nehmen, aber das scheitert daran, dass das ein DB Upgrade auf auth braucht. ---