Bug #16736
closed
QFQ destroys it own config
Added by Carsten Rose 11 months ago.
Updated about 1 month ago.
Description
In #16717 zeigt sich teilweise taeglich das die QFQ Config kaputt geht.
- Es sollte eine Option geben die QFQ davon abhaelt die Config selber neu zu schreiben.
- Es sollte ein Check eingebaut werden, der sicherstellt das nur ein Prozess gelichzeitig schreibt.
- Es scheint so als wenn die config mehrmals pro Minute neu geschrieben wird - was ist da los?
- Priority changed from Normal to High
A similar problem in Meeting Manager with a concurrent access to a file was solved by using LOCK_EX
flag for file_put_contents
:
file_put_contents(
$this->config['file'], // the name of the file
implode("\n", array_map([$this, "processEntry"], $entries)) . "\n", // data to be saved
FILE_APPEND|LOCK_EX // obtain an exclusive lock then append the data
);
This flags prevents other processes from reading/modifying a file. See also
https://www.php.net/manual/en/function.flock.php.
- Status changed from New to Feedback
Es wurde ein Branch erstellt: https://git.math.uzh.ch/typo3/qfq/-/tree/S16736_qfq_destroys_it_own_config
Der Tipp von Kris ist gut. Der Flag verhindert dass ein anderer Prozess auf das gerade schreibende File ebenfalls Änderungen ausführt. Der Flag wurde nun als optionaler Parameter implementiert und wird beim Schreiben der Config verwendet. Der als 0 definierte Default funktioniert ohne Fehlermeldung und führt die Funktion mit den Default Werten aus.
CR: Da ich selbst auf Dev die Situation mit der Minutenweise Überschreibung nicht habe, sollte ein Feedback erfolgen ob das gewünschte Verhalten auch beim MATH funktioniert mit diesem Branch. Hat sich der Fehler dort wiederholt in den letzten 7 Tagen?
- Assignee changed from Carsten Rose to Enis Nuredini
- Bei zugriff als zweiter Prozess auf gleiches File soll keine Fehlermeldung sondern Wartezeit von 1sek mit erneutem ausführen > 5x dann exception raus.
-- Acccess Log von verschiednen Projekten erfassen und vergleichen
-- https://analytics.math.uzh.ch/
- Assignee changed from Enis Nuredini to Carsten Rose
- Tracker changed from Support to Bug
- Target version changed from 24.11.0 to 24.1.0.rc1
- Status changed from Feedback to Closed
- Der Fix in diesem Ticket bezieht sich aufh
qfq.config.json
- Das Problem ist aber in
LocalConfiguration.php
- Das Problem ist hoffentlich mit #18793 gefixt.
Also available in: Atom
PDF