hallo,
die verwendete version ist 1.5.7, sollte aber nach einem schnellen check auf bei den neueren versionen auftreten, da sich hier nichts grundlegendes verändert hat.
der javaprinter ruft contenthandler.php auf welches zB. module=printqueue.php (laut access logs) aufruft.
Dort
Code: Alles auswählen
$printQueue = new PrintQueue();
$printQueue->handleCommand($command);
command zB. "getNextFoodWorkPrintJobs"
Code: Alles auswählen
getNextFoodWorkPrintJobs()
....
....
--> saveLastPrintServerAccess()
saveLastPrintServerAccess() ruft dann date_default_timezone_set(DbUtils::getTimeZone()); auf.
und hier haben wir session_start().
Code: Alles auswählen
public static function getTimeZone() {
if (is_null(self::$timezone)) {
if(session_id() == '') {
session_start();
}
if (isset($_SESSION['timezone'])) {
return $_SESSION['timezone'];
} else {
return "Europe/Berlin";
}
} else {
return self::$timezone;
}
}
Es gibt möglicherweise auch noch andere aufrufketten, bei denen irgendwann mal eine session erzeugt wird. Das hab ich aber nicht weiter geprüft.
kann natürlich sein, dass gerade hier immer self::$timezone gesetzt ist und damit session_start() gar nicht erfolgt .... der effekt ist aber vorhanden und von daher gehe ich davon aus, wenn nicht dieser Fall der auslöser ist, dann irgendeine andere aufrufkette.
getTimeZone() und saveLastPrintServerAccess() gibts unverändert auch in 1.5.29 , dh. auch dort sollte das problem auftreten.
Reproduzieren:
einen printer aktivieren und dann auf dem server /var/lib/php/session checken.
zB.
sudo watch "ls -1 /var/lib/php/session/ | wc -l" (oder so ähnlich, dann sieht man die wachsende anzahl an session files.