[gelöst] 2.1.42 Build469 - Abstürze mit FixZeit

hallo Torben

Vor einigen Minuten ist uns das mAirList auf dem Sender abgestürzt. Seltsamerweise auch das mAirList auf dem Backupplayer. Diese Version ist jedoch noch älter 2.1.37. Hast Du eine Ahnung was die Fehlermeldung zu bedeuten hat?

Liebe Grüsse
Michel

[tt]Access violation at address 0057F4A3 in module ‘mAirList.exe’. Read of address 00000000

Program Version 2.1.42 Build 469

Call stack:

[0057F4A3]
[00404B13]
[0040EAB9]
[0040EB25]
[004720D8]
[004789E3]
[004789ED]
[0057F41C]
[00457487]
[0045736B]
[0042F4BC]
[0048F990]
[0048F9CA]
[0048FBEA]
[008C9D14][/tt]

Hm, so richtig helfen die Adressen diesmal leider nicht :frowning:

Die sind beide im gleichen Moment abgestürzt? Mit der gleichen Meldung (bis auf die Adressen)?

Das weiss ich eben nicht. Die alte V37 hat keine Meldung ausgegeben. Im Moment läuft auf dem Backupplayer nochmals die fehlerhafte Stunde.
Eventuell kommt es nochmals zu einem Absturz

Wenn sich das wirklich reproduzieren lässt, dann sag mal bescheid, und ich schicke dir eine spezielle mAirList.exe, die noch umfangreichere Debug-Informationen ausgibt. Mit denen oben war in diesem Fall leider nichts anzufangen (was auch daran liegen kann, dass ich inzwischen an einigen Libraries rumgefummelt habe, so dass sich beim Neukompilieren der #469 die Adressen verschoben haben könnten).

Hhm, leider konnte ich das Problem bis jetzt nicht reproduzieren. ganz wohl ist mir jedoch nicht.
Kannst Du mir diese spezielle mAirList zur Verfügung stellen? (Muss nicht mehr heute sein)
Diese kann im Moment gut auf dem Backupplayer mitlaufen.

Eventuell wurde der Fehler durch folgendes Element verursacht:

<MP3File> <Title>DI LC Music (ohne LC)</Title> <Artist></Artist> <Duration>33600000</Duration> <Filename>D:\audio\musik\ca77b8a6a56c5e.mp3</Filename> <StartNext><Value>11000000</Value></StartNext> <Color>#EDCA50</Color> <Options> </Options> </MP3File>

Wieder ein Absturz! Zum Glück nur auf dem Backupplayer

Access violation at address 00790712 in module ‘mAirList.exe’. Read of address 00000000

Program Version 2.1.42 Build 471

Call stack:

[00790712]
[00404B13]
[00405DCB]
[00457487]
[0045736B]
[0042F4BC]
[0048F990]
[0048F9CA]
[0048FBEA]
[008C9D14]

Ich habe gerade einen neuen Snapshot hochgeladen (#473). Es befindet sich nun eine weitere Datei “mAirList.map” im Snapshot-Ordner. Wenn man diese herunterlädt und in den gleichen Ordner wie mAirList.exe packt, werden bei solchen Fehlermeldungen zusätzlich die Sourcecode-Stellen angezeigt, an denen der Fehler auftritt. Diese Informationen würden mir sehr helfen.

Neue 473 mit mAirList.map läuft auf dem Backupplayer

Hurra, mAirList ist abgestürzt. Keine Sorge, sonst läuft mAirList stabil :wink:
Weshalb stürzt mAirList jeweils am Abend so zwischen 20-22h ab?

Übrigens mAirList läuft anschliessend weiter.

Access violation at address 0077FB9A in module ‘mAirList.exe’. Read of address 00000000

Program Version 2.1.42 Build 473

Call stack:

[0077FB9A] PlaybackControl.PlaybackControl.TPlaybackControl.FixedTimeTimerTimer (Line 794, “PlaybackControl.pas” + 5) + $3
[00404B13] System.System.@HandleAnyException + $33
[00405DCB] System.System.@WStrArrayClr + $13
[00457487] ExtCtrls.ExtCtrls.TTimer.Timer + $F
[0045736B] ExtCtrls.ExtCtrls.TTimer.WndProc + $2B
[0042F4BC] Classes.Classes.StdWndProc + $14
[0048F990] Forms.Forms.TApplication.ProcessMessage + $FC
[0048F9CA] Forms.Forms.TApplication.HandleMessage + $A
[0048FBEA] Forms.Forms.TApplication.Run + $96
[008C9D14]

Und nochmals einen Absturz

Alles klar, hab den Fehler (wahrscheinlich). Hängt mit meinem Trick bezüglich der Soft-Fix-Time zusammen, den ich in dem anderen Thread geschildert habe.

Ich habe Build 474 incl. zugehöriger map hochgeladen, bitte teste mal den.

Torben

PS: Auf die Sache mit der mAirList.map hätte ich schon früher kommen sollen. Ich glaube, eine solche Datei generiere ich jetzt zu jeder Version, das macht die Fehlersuche bedeutend einfacher. Die Adressen reichen zwar im Prinzip auch aus, um den Fehler nachzuverfolgen (über die “Search -> Goto Address”-Funktion von Delphi), es kann aber immer mal sein, dass ich die Adressen minimal verschieben, wenn man einen alten Sourcecode neu kompiliert.

ganz herzlichen Dank!

Neue Version läuft 474 nun.

Frage: Lässt sich das Fenster mit der Fehlermeldung irgendwie per Email versenden?
So bin ich informiert, sobald dieses Fenster kommt.

Eventuell mit http://forum.mairlist.com/index.php/topic,965.0.html

Liebe Grüsse
Michel

Nein, das halte ich für sehr kritisch.

In der Regel sollten diese Fehler-Dialoge niemals auftauchen, sondern alle Exceptions sollten brav abgefangen und evtl. Fehlermeldungen in das System Log geschrieben werden.

Taucht doch so eine “unhandled exception” auf, deutet das auf einen kritischen Fehler hin, der die Stabilität des Systems entscheidend beeinflussen kann. Es wäre nicht sinnvoll, in einem solchen Moment dann noch zu versuchen, eine E-Mail zu verschicken.

Anders sieht es beim System Log aus. Da plane ich schon seit längerem, zumindest mal die Möglichkeit zu schaffen, das in eine Datei zu schreiben. Über E-Mail-Benachrichtigung kann man dann auch mal reden.

Neue Meldung:

Access violation at address 00780310 in module ‘mAirList.exe’. Read of address 00000000

Program Version 2.1.42 Build 474

Call stack:

[0078030A] PlaybackControl.PlaybackControl.TPlaybackControl.FixedTimeTimerTimer (Line 794, “PlaybackControl.pas” + 5) + $E
[007914DC] JclHookExcept.JclHookExcept.HookedExceptObjProc (Line 260, “JclHookExcept.pas” + 2) + $7
[00404B13] System.System.@HandleAnyException + $33
[0049210B] JvGnugettext.JvGnugettext.Utf8Decode (Line 625, “jvgnugettext.pas” + 83) + $1D
[0078030A] PlaybackControl.PlaybackControl.TPlaybackControl.FixedTimeTimerTimer (Line 794, “PlaybackControl.pas” + 5) + $E
[00457497] ExtCtrls.ExtCtrls.TTimer.Timer + $F
[0045737B] ExtCtrls.ExtCtrls.TTimer.WndProc + $2B
[0042F4CC] Classes.Classes.StdWndProc + $14
[0048F9A0] Forms.Forms.TApplication.ProcessMessage + $FC
[0048F9DA] Forms.Forms.TApplication.HandleMessage + $A
[0048FBFA] Forms.Forms.TApplication.Run + $96
(004CBD28) [008CCD28]

Geheimnisvoll, geheimnisvoll …

Wurde zum Fehlerzeitpunkt eigentlich tatsächlich ein Soft-Fix-Time-Element erreicht?

Gute Frage: Kannst Du die Zeit des Absturz in das Fenster schreiben?

Was passiert, wenn während dem Soft-Fix-Time eine neue Playlist gestartet wird?

Life Channel Füller

1075200000
D:\audio\musik\d\d3235e435be7b72616.mp3
Info: Stunden-Ende Füller
13:59:15
#B7B7FF



Mein SOAP Script zum laden der nächsten Stunde macht folgendes:

begin
CurrentPlaylist.Clear;
CurrentPlaybackControl.SetAutomation(true);
CurrentPlaylist.LoadFromFile(‘D:\audio\playlist\mairlist’ + FormatDateTime(‘YYYYMMDD_HH’, now) + ‘00.mld’);
CurrentPlaybackControl.AutomationNext;
CurrentPlaylist.ErrorCheck;
SystemLog('Start: ’ + FormatDateTime(‘YYYYMMDD_HH00’, now));
Engine.GetRecycleBin.Clear
end.

Wie genau definierst du “während”? Die Soft-Fix-Time wird ja dadurch ausgeführt, dass alle Elemente vor dem betreffenden Element als gespielt markiert bzw. gelöscht werden. Danach läuft mAirList einfach normal weiter, als hätte man die Elemente von Hand gelöscht.

Der Fehler tritt offenbar während dieses Sprung-Vorganges auf.

während = Element mit Soft-Fix-Zeit läuft

Was schlägst Du vor? Mit einer Zeitangabe hätten wir mehr Auskunft.

Einen Zeitstempel werde ich auf jeden Fall mal in den Fehlerdialog einbauen.

Cool. In 13min ist die nächste Soft-Fix-Zeit. Dann werde ich weiter beobachten