Die PICTURE-Prozessplattform lässt sich nach einem Update des Tomcat-Dienstes nicht mehr starten
An dieser Stelle finden Sie Hinweise auf mögliche Fehlerquellen beim Betrieb der PICTURE-Prozessplattform und die entsprechenden Lösungsansätze.
Beim Update des Tomcat-Pakets von Version tomcat9 (9.0.31-1~deb10u3) auf tomcat9 (9.0.31-1~deb10u4) tritt eine Exception bei Neustart des Dienstes auf
20-Apr-2021 17:46:01.322 SCHWERWIEGEND [http-nio-80-exec-1] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [picture.processplatform.app.App$
java.lang.RuntimeException: java.nio.file.FileSystemException: /srv/picture/ppp/temp/sessionStorage/admin: Das Dateisystem ist nur lesbar
at picture.processplatform.app.ApplicationListener.contextInitialized(ApplicationListener.java:121)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4685)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5146)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1415)
at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:700)
at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:223)
Fehlerursache
Nach dem Sicherheitsupdate des Debian-Tomcat-Pakets wird der Dienst nun in einem sogenannten "sandboxed"-Bereich ausgeführt und somit in einer durch das System abgeschotteten Umgebung. Es wird lediglich der Schreibzugriff auf die folgenden Verzeichnisse zugelassen:
/var/lib/tomcat9/conf/Catalina (eigentlich /etc/tomcat9/Catalina)
/var/lib/tomcat9/logs (eigentlich /var/log/tomcat9)
/var/lib/tomcat9/webapps
/var/lib/tomcat9/work (eigentlich /var/cache/tomcat9)
Um den Schreibzugriff auf andere Verzeichnisse durch den Tomcat-Dienst zu ermöglichen, müssen die Service-Einstellungen überschrieben werden. Dies erfolgt durch die Erstellung einer override.conf-Datei im /etc/systemd/system/tomcat9.service.d/. Bitte gehen Sie zur Fehlerbehebung - wie im folgenden beschrieben - vor.
Fehlerbehebung
Da der Tomcat-Dienst auf einem Debian-System in einem geschützten Bereich ausgeführt wird, ist es notwendig die PICTURE-spezifische Verzeichnisse gesondert freizugeben. Bitte führen Sie dazu die folgenden Schritte aus:
# Für die Schreibberechtigungen vom Tomcat muss eine Override-Konfiguration für systemd angelegt werden
systemctl edit tomcat9.service
# Dadurch wird unter /etc/systemd/system/tomcat9.service.d eine Datei override.conf angelegt, die Sie wie folgt editieren und speichern
[Service]
ReadWritePaths=/etc/picture
ReadWritePaths=/srv/picture
Nun muss noch der System- und Sitzungs-Manager “systemd” veranlasst werden, die soeben geschrieben Konfigurationsdatei zu laden, sowie der Tomcat-Dienst neu gestartet werden:
# Konfigurationsdateien des systemd neu laden
systemctl daemon-reload
# Tomcat-Dienst neu starten
systemctl restart tomcat9