Beim Start einer virtuellen Maschine wird normalerweise mit Hilfe von virt-aa-helper - je nach Bedarf - entweder ein neues Apparmor-Profil erzeugt oder ein bestehendes Profil für die zu startende Maschine modifiziert:
When a VM/container is started, libvirtd decides whether to ask virt-aa-helper to create a new profile or modify an existing one. [Quelle]
Beim Stoppen der virtuellen Maschine sollte das Profil dann auch wieder entfernt werden:
When the VM/container is shutdown, libvirtd asks virt-aa-helper to remove the profile, and virt-aa-helper unloads the profile from the kernel [Quelle]
Leider scheint virt-aa-helper beim Aufräumen aber schlampig zu arbeiten, denn während die Datei “libvirt-UUID.files” tatsächlich mit dem Stoppen der virtuellen Maschine aus dem Verzeichnis “/etc/apparmor.d/libvirt/” verschwindet, verbleibt die Datei “libvirt-UUID” dort weiterhin.
Über genau diesen Schiefstand stoplert aa-genprof beim Start, denn in “libvirt-UUID” ist ein Verweis auf die Datei “libvirt-UUID.files” enthalten, die aber nicht mehr existiert:
#include <libvirt/libvirt-UUID.files>
Zur Lösung gibt es zwei Ansätze, die beide in der Vergangenheit zu keinen Komplikationen geführt haben:
Erzeugen der fehlenden Datei
Um den Fehler zu beheben, kann z.B. über das “touch”-Kommando eine leere Datei mit dem gesuchten Namen erzeugt werden:
$ sudo touch "/etc/apparmor.d/libvirt/libvirt-UUID.files"
Somit ist die Include-Bedingung erfüllt und aa-genprof startet ohne Fehlermeldung.
Entfernen der vorhandenen Profilreste
Da beim nächsten Start der virtuellen Maschine bei Bedarf sowieso ein neues Profil angelegt wird, ist es auch gefahrlos möglich, die noch vorhandenen Profildateien zu entfernen:
$ sudo rm "/etc/apparmor.d/libvirt/libvirt-*"
Es sollte allerdings darauf geachtet werden, den Ordner nicht komplett zu leeren oder gar zu löschen, da die darin enthaltenen Template-Dateien (“TEMPLATE.lxc” bzw “TEMPLATE.qemu”) werden von virt-aa-helper als Vorlage zum Erstellen neuer Profile verwendet.
Eigentlich sollte an dieser Stelle ein detaillierter Blick auf “Encased: A Sci-Fi Post-Apocalyptic RPG” stehen, aber letztendlich waren es (mal wieder) technische Unzulänglichkeiten, welche den Spielspaß nicht nur getrübt, sondern das Erreichen des Spielendes beinahe erfolgreich verhindert hätten.
Encased ist - kurz zusammengefasst
“A very good RPG in the spirit of Fallout (1, 2)” [Quelle]
oder wie Peter Bathge bei “Gamestar” schrieb
A Sci-Fi Post-Apocalyptic RPG lautet der Untertitel und stellt damit die Weichen für die Erwartungshaltung des unbedarften Spielers. Nach dem Test hätte ich jetzt aber einen passenderen Untertitel für Encased: »Das Fallout-Wasteland, das ich immer wollte … [Quelle]
Den ersten Fehler findet man leider schon nach einer ersten Proberunde - man kann das Spiel nämlich nicht regulär verlassen. Klickt man im Menü auf “Exit” passiert exakt nichts, außer daß sich das Spiel in eine Endlosschleife begibt. Der Fehler wurde u.a. im Oktober 2022 unter “Trying to Exit Freezes the Game” im GOG Forum dokumentiert und offensichtlich nie behoben. Glücklicherweise fragt irgendwann GNOME von selbst, ob man den Prozess manuell beenden möchte, alternativ kann auch ein thematisch passender “kill”-Befehl an der Kommandozeile abgesetzt werden.
Innerhalb der einzelnen Orte läuft Encased stabil - bis man versucht, einen anderen Ort oder die Weltkarte zu betreten. Hier kommt es gefühlt in rund einem Zehntel aller Wechsel zu einem Absturz und der Spieler landet unerwartet auf dem Desktop. Dieses Problem ist nervig, aber leicht abzumildern und man gewöhnt sich im Laufe des Spielens daran, vor jedem Ortswechsel sicherheitshalber mit “F5” eine Schnellspeicherung vorzunehmen. Abstürze scheinen bei Encased aber generell bei vielen Spielern aufzutreten, wie eine Suche über die Foren bei Steam zeigt.
Absolut frustrierend ist aber, daß das Spiel kurz vor dem Epilog reproduzierbar an der gleichen Stelle abstürzt, was auf Reddit im Beitrag “Game crashes every time I try to descend to the landing pad at Concord” und auch bei Steam unter “Possible Linux crash solution” dokumentiert wurde. Dort ist auch ein potentieller Workaround zu finden - zusammen mit der Frage
I now wonder if all the crahes I encountered playing through the game would have not happened if I had used that option from the beginning. [Quelle]
Tatsächlich kann man - wie bei Reddit beschrieben - mit der Windows-Version problemlos den Ortswechsel zum Landing Pad vollziehen, den Workaround mit dem Kommandozeilenparameter habe ich erst im Nachgang gefunden.
Schade, eigentlich hätte ich gerne eine weitere Runde in der Welt gedreht und ein paar alternative Handlungsoptionen ausprobiert - so wurde das Spiel nach dem Epilog und anschließendem erneutem Crash stattdessen direkt deinstalliert und die Gamestar-Überschrift “Das Rollenspiel, das ihr euren Freunden empfehlen werdet” trifft zumindest für mich nicht zu.
Daß Software Fehler hat ist leider unumgänglich und daß noch so viele Tests nicht alle Fehler aufdecken können leider auch. Wenn aber schwerwiegende und reproduzierbare Fehler nicht behoben werden, dann ist das aus Spielersicht nicht nur ärgerlich, sondern dem Käufer gegenüber schlicht eine Unverschämtheit.