mAirlist Player bleibt ab und zu stehen

Hallo,

wir haben immer mal wieder folgendes Problem. Wir starten mAirlist und den Encoder (mp3 und ogg Encoder). Zu Beginn spielt mAirlist auch schön einen Titel nach dem anderen ab. Im Stream gibt es keine Pausen zwischen den Titeln. Von der Konfiguration haben wir zwei Player eingerichtet die einer nach dem anderne automatisch geladen werden und dann nacheinander immer automatisch abgespielt werden. Nach einer unbestimmten Zeit passiert es aber, dass vor allem wenn der Wechsel von einem Player zum nächsten stattfindet der erste Player kurz vor Ende des Titels stehenbleibt und der zweite auch nicht wirklich startet. mAirlist verhält sich dann wie wenn es abgestürzt ist. Es akzeptiert dann keine Eingabe weder per Tastatur noch per Maus. Eine Fehlermeldung kommt aber nicht. Nach bis zu fünf Sekunden gehts dann weiter mit dem nächsten Player. Im Stream ist dann zwischen den Titeln ebenfalls Stille.

Das Problem haben wir wenn wir die beiden Player auf eine externe Soundkarte ausgehen als auch wenn wir die Ausgabe der Player direkt auf den Encoder geben.

Damit das Problem dann behoben werden kann hilft manchmal wenn wir die Encoder trennen. Manchmal hilft aber auch nur wenn wir mAirlist direkt komplett schließen.

Von der Grundkonfiguration haben wir folgendes:

  • Windows 7 Pro 64 bit
  • mAirlist 3.1.8

Wie kriegen wir es hin, dass mAirlist nicht immer zwischendurch für einige Sekunden stehenbleibt.

Wo liegen die Audiodateien? Interne Festplatte?

Die Audiodateien liegen auf einem auf einem Netzwerk Storage das als Netzlaufwerk R: auf den Windows Rechner eingebunden ist auf dem Mairlist läuft.

Das könnte schon das Problem sein. Idealerweise sollte man alle Dateien lokal liegen haben (sofern Speicherplatz vorhanden). Windows-Netzwerke haben manchmal merkwürdige Aussetzer bzw. naturgemäße Verzögerungen beim Öffnen von Dateien. Besonders schlimm wird es, wenn sich dann noch Soundkarte und Netzwerkkarte einen IRQ teilen…

Falls das Problem auch bei lokalen Dateien auftaucht, melde dich bitte nochmal. Ansonsten gehe ich davon aus, dass das Netzwerk dafür verantwortlich ist.

Natürlich könnte hier auch das Netzwerk ein Problem darstellen. Allerdings fahren wir hier ein 1 Gbit/s Netzwerk, so das das irgendwie kein Problem sein sollte die ein oder andere mp3 Datei dann zu laden. Zudem wundert es mich das das Problem immer erst dann auftritt wenn Mairlist einige Zeit im Dauerbetrieb lief. Wenn es ein Netzwerkproblem währe dann müsste das doch auch mal sofort nach dem Start des Programms auftreten. Und wenn wir das Programm bzw. manchmal auch nur die Verbindung zum Stream beenden tritt das ganze dann für einige Zeit nicht mehr auf.

Zudem müsste es bei Netzwerkproblemen nicht auch während der Wiedergabe eines Titels zum stocken und stehenbleiben kommen? Wie gesagt die Probleme treten immer nur dann auf wenn der eine Player auf den nächsten wechselt.

Der IRQ der Netzwerkkarte und der Soundkarte sind hier unterschiedlich. Was mir allerdings aufgefallen ist, ist das der IRQ der Soundkarte als auch der IRQ des SATA Controllers für die lokalen Festplatten (laufen als SATA Raid) identisch sind. Könnte hier eventuell ein Problem liegen?

Das Umkopieren des Audiomaterials ist leider nicht so einfach, weil es hier schon einige Gigabyte sind und die auf der internen Platte nicht wirklich Platz haben.

Teste es jedenfalls mal mit der lokalen Platte (du musst ja nicht gleich das ganze Archiv rüberkopieren) - im Zweifel um zu widerlegen, dass meine Theorie mit dem Netzwerk stimmt.

Die reine Geschwindigkeit des Netzwerkes hat erstmal nichts zu sagen. Da können auch andere Dinge eine Rolle spielen, zum Beispiel “verlorengegangene” Netbios-Verbindungen. Du kennst doch sicher diese Verzögerungen, wenn man den Rechner neu hochgefahren hat und die Netzwerkumgebung öffnet. Das dauert immer ein paar Sekunden, bis dort die Rechner sichtbar werden. Sowas kann auch passieren, wenn mitten im Betrieb die Verbindung weggeht.

Ich will nicht ausschließen, dass das Problem auch ganz woanders liegen kann. Solange es sich aber nicht mit lokalen Dateien reproduzieren lässt, macht es wenig Sinn, sich über mögliche andere Ursachen den Kopf zu zerbrechen.

Wir haben es jetzt nun versucht. Alle Musikdateien haben wir vom Netzlaufwerk auf eine externe USB Festplatte kopiert. Diese hängt nun direkt per USB am Sende PC auf dem Mairlist läuft. Alle Elemante die mairlist nun aus der Playlist her abspielt liegen somit nun lokal auf dem Sende-PC. Aber auch hier haben wir das gleiche Problem. Zuerst lief einigen Stunden alles gut. Aber dann auch hier Aussetzer. Nie in innerhalb den Liedern sondern immer nur dann wenn von einem Player auf den nächsten gewechselt wird. Teilweise haben wir mehrere Sekunden Pause zwischen den einzelnen Elementen. Und die Oberfläche von mairlist sieht dann aus wie wenn Sie abgestürzt wäre. Weder lässt sich ein Button im Program auswählen noch läuft der Fotschrittsbalken im Programm weiter.

Was können wir nun machen damit wir das Problem lösen können.

Was nutzt Ihr für eine Datenbank? Hab ich das oben überlesen?
Ich hab da Probleme, wenn die Netzwerk DB etwas langsam reagiert, steht die GUI, wobei ein laufender Titel auch weiter läuft. Beim Wechsel zum nächsten, hab ich dann aber ein Problem, denn dann kommt nix. Obwohl die Playlisten ja lokal gecached sind.
Ich will demnächst mal probehlber die PostgreSQL auf dem Ausspielrechner laufen lassen. Postgres hab ich inzwischen endlich am laufen, das wollte irgendwie nicht auf Win7. Vorher will ich aber noch mit dem Cacheintervall rumspielen. Der ist noch relativ hoch bei uns.

Wir nutzen hier die lokale Datenbank MairListDB die von Mairlist selbst mitgeliefert wird. Auch wir beobachten das von shorty.xs beschriebene Verhalten. Kurz vor Ende des Titels im einen Player bleibt die GUI stehen. Im Stream ist der Titel aber noch bis zum Ende zu hören. Dann kommt eine Pause und sobald die GUI wieder reagiert dann kommt auch der nächsten Titel aus dem anderen Player. PostgreSQL können wir mit unserer Version leider nicht benutzen. Bezüglich des Cachintervalls habe ich schon verschiedenste Einstellungen durchprobiert. Hat bei uns allerdings nichts geholfen.

Sag bitte nochmal, wie lange mAirList in etwa hängt (in Sekunden).

Ich könnte dir eine spezielle Debug-Version bauen, in der der Wert für die Freeze-Erkennung (Fehlermeldung “The application seems to be frozen” - normalerweise nach 60 Sekunden) sehr niedrig eingestellt ist. Dann kommt die Meldung samt Bugreport schon nach z.B. 5 Sekunden, und an dem Bugreport kann ich dann sehen, wo es hängt.

mAirList hängt hier etwa drei Sekunden dann geht es weiter. Es wäre nett wenn du das dann mal in einer Debug-Version so einstellen könntest.

Im neuen Snapshot Build 975 kann man den Freeze-Timeout nun über die mAirList.ini verstellen. Dazu bearbeitet man die Datei, geht zum Abschnitt [Options] und fügt dort z.B. ein:

FreezeTimeout=3

Die Meldung kommt dann schon nach 3 Sekunden statt erst nach 60. Im Prinzip kannst du das sogar auf 1 oder 2 stellen, aber die Wahrscheinlichkeit ist größer, dass die Meldung dann auch im normalen Betrieb häufiger erscheint. Es ist ja nicht ungewöhnlich, dass mAirList schonmal 1-2 Sekunden für eine Operation benötigt, z.B. das Importieren einer Datei oder Laden einer Playlist.

Wichtig zu wissen ist, dass die Meldung automatisch verschwindet, sobald mAirList doch wieder reagiert. Man muss also ganz schnell auf “Details” klicken, um den Bugreport zu ergattern.

Ich habe mir den neuen Build jetzt heruntergeladen. Zudem habe ich unter c:\ProgramData\mAirList\3.1\config\mAirList.ini im Abschnitt [Options] FreezeTimeout=2 eingefügt.

Einige Zeit bis zu zwei Tage gings wieder gut und nun bleibt mAirlist wieder ab und zu zwischen den Liedern hängen. Allerdings friert hier mAirlist nur für bis zu vier Sekunden ein und es erscheint erst gar kein Fehlerdialog, so dass ich hier leider auch nicht auf “Details” drücken kann.

Gibt es sonst noch Dinge die ich testen kann?

Also ich habe die Einstellung gerade mal mit FreezeTimeout=1 getestet, und dann kommt die Meldung schon beim Programmstart mehrfach. Scheint also grundsätzlich zu funktionieren.

Wenn die Freeze-Erkennung in der besagten Situation bei dir nicht kommt, kann das eigentlich nur heißen, dass mAirList in irgendeinem Systemaufruf feststeckt, indem sogar die Debugging-Routinen soweit außer Kraft sind, dass sie den Freeze nicht erkennen.

Ich bin ehrlich gesagt etwas ratlos und weiß auch nicht, wie ich mich dem Problem jetzt nähern soll, wenn es nur bei dir auftritt, und nur alle paar Stunden oder Tage. Das ist alles andere als reproduzierbar.

Übrigens: Als ich oben schrieb, dass die Files testweise auf eine interne Festplatte sollen, meinte ich nicht eine externe USB-Festplatte. Das kann genauso fehleranfällig sein wie die Netzwerkgeschichte.