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