Fehler in unregelmäßigen Abständen beim Logging

Hallo,

wir loggen unsere Streams direkt auf den Shoutcast und einmal in eine Text-Datei, in unregelmäßigen Abständen erscheinen unter den Playern in der Statuszeile folgende Fehlermeldung:

18.06.2010 19:25:03 Fehler Fehler beim Schreiben des Log-Eintrages in die Datenbank Babelsberg Hitradio Musikarchiv: Access violation at address 0040484A in module ‘mAirList.exe’. Read of address 020096D0

Leider wissen wir damit nichts anzufangen, mAirList funktioniert aber weiterhin wie gewohnt, ohne Probleme.

Das ganze tritt erst seit 3.1 auf.

Grüße
Paul

Das ist das interne Logging der mAirListDB. Welchen Build verwendet ihr aktuell?

3.1 beta 2 Build 738

Hm, in dem Build sollte der Fehler eigentlich schon weg sein. Offenbar nicht. Ich schaue es mir an.

hallo
wir bekommen immer folgende Meldung:
“UHRZEIT Fehler beim schreiben des Log Eintrages in die Datenbank. Datenbank SQL Error insert or update on table " pla”

Version 3.1 Build 752
glaube der Fehler tritt nur beim abfeuern der cart auf. zumindestens ändert sich die Uhrzeit in der Meldung wenn man die Cart abspielt.

Verbindung zur DB habe ich schon aktualisiert - ohne erfolg.

Die Fehlermeldung hattest du jetzt abgetippt, oder? Da scheint am Ende auch was zu fehlen.

Ich würde gerne nochmal die komplette Meldung sehen. Du kannst sie im Systemprotokoll mit Strg+C als Text in die Zwischenablage kopieren und hier einfügen.

ach verdammt…
jetzt habe ich vergessen das Systemprotokoll zu kopieren - folgt dann in kürze wenn ich wieder im Studio bin.

Weiterhin ist mir aufgefallen, dass der Fehler immer noch da ist (Built vom 6.7.) und das er auftritt wenn folgendes zusammenkommt:

  1. ein Player läuft
    und
  2. dann eine card abgefeuert wird.

In diesem Zusammenhang ist mir aufgefallen, dass auch Songinfos im PFL-Modus an den Stream übertragen werden. Glaube das wurde aber schon in einem anderen Thread behandelt.

so jetzt aber:
Fehler Fehler beim Schreiben des Log-Eintrages in die Datenbank Datenbank: SQL Error: ERROR: insert or update on table “playlistlog” violates foreign key constraint “playlistlog_item_fkey”
DETAIL: Key (item)=(12) is not present in table “items”.

Kann es ssein, dass die Cartbelegung ein Element enthält, das zwischenzeitlich aus der Datenbank gelöscht wurde?

eigentlich nicht.
Wir haben für jede Sendung eine Cartbelegung. Der Fehler tritt nur bei Elementen auf die mehrfach verwendet werden.
Also Showopener für Sendung A macht keinen Fehler.
Jingles die sowohl auf der Cart für Sendung A liegen als auch auf der Card für Sendung B usw. verursachen den Fehler.

Die Fehlermeldung besagt eindeutig, dass versucht wurde, das Element mit der ID 12 in das interne Playlist-Log zuu schreiben, dieses aber in der Datenbank nicht (mehr) existiert.

Öffne mal die Cartsets im Textdditor und guck dir die DatabaseID-Werte an. Bei irgendeinem Element muss 12 stehen. Dann schau in der Datenbank, ob es ein Element mit der ID 12 gibt. Vermutlich nein :wink:

stimmt. ID 12 gibt es nicht.
Allerdings ist mir aufgefallen, dass bei den Cartsets, nur Elemente eine ID haben, die mehrfach verwendet werden.

Ok, und wie gehts nun weiter???

Alle Elemente, die aus einer Datenbank stammen, erhalten diesen DatabaseID-Eintrag, und zwar in dem Moment, wo man sie aus dem Browser in die Cartwall (oder Playlist) zieht. Speichert man die Cartwall-Belegung, dann wird auch das DatabaseID-Feld mitgespeichert, und beim Laden der Belegung wird es wiederhergestellt. Es wird aus Performance-Gründen nicht überprüft, ob das Element überhaupt noch in der Datenbank existiert.

Dass beim (internen) Logging diese Fehlermeldungen kommen, ist etwas unschön, lässt sich aber gerade nicht vermeiden.

Um sie wegzukriegen, kannst du einfach bei allen betreffenden Elementen die Zeile mit “DatabaseID” aus den .mlc-Dateien löschen.

Ok, dann lebe ich mit dem Unschönen. Kann diese Fehlermeldung irgendwelche anderen Fehler (Abstürze, Fehlfunktionen etc.) auslösen? Oder ist es ein optischer Fehler, den man nicht weiter beachten muss?

Hast du gelesen, was ich oben geschrieben habe?

Der Fehler tritt nur in dem (seltenen) Fall auf, dass man in einem Cartset ein Element hat, das inzwischen aus der Datenbank gelöscht wurde.

In diesem Fall editierst du einmal die .mlc-Datei von Hand und löschst die DatabaseID-Zeile, und alles ist wieder gut.

Der oben beschriebende Fehler existiert bei mir immer noch in unregelmäßigen Abständen, unsere Datein vom Cartset liegen alle lokal, also nicht in einer Datenbank.

Build: 759

Macht bitte nochmal ein Update auf den allerneuesten Build, und poste dann nochmal die genaue Fehlermeldung. Die in der Meldung genannte Fehleradresse ändert sich ja mit jedem Build, ich brauche also die ganz aktuellen Angaben.

Okay, habe ja gerade (siehe andere Meldung) geupdatet.

Mehr dann morgen früh.

So die Fehlermeldung kam heute ca. 30x (unten im Systemprotokoll):

17.07.2010 02:11:20 Fehler Fehler beim Schreiben des Log-Eintrages in die Datenbank Datenbank: Access violation at address 00404882 in module ‘mAirList.exe’. Read of address 00000004

In der Zeit lief die Automation, also es war niemand menschliches am Werk.

Und einmal erschien diese Fehlermeldung:

17.07.2010 17:33:42 Fehler Fehler beim Erzeugen der Playlist-Cache-Datei C:\Programme\mAirList\PlaylistCache\8CF326A4086B62F8D761A04CC1F8F5E0\1\2010-07-18-13.mlp: Access violation at address 00404882 in module ‘mAirList.exe’. Read of address 02003D20

BUILD 760

Grüße
Paul

Besten Dank!

Leider ist die Fehleradresse nicht besonders aussagekräftig. Man kann nur erkennen, dass irgendein Objekt (doppelt?) freigegeben wurde.

Ich habe dir unter http://www.mairlist.com/download/mAirList/v3.1/debug/ eine spezielle mAirList.exe abgelegt. Dort wird der Fehler nicht nur im Systemprotokoll angezeigt, sondern es geht der bekannte Fehlerdialog mit dem “Details…”-Button auf, wo du dann einen Bugreport verschicken kannst. Tu das mal bitte, dann hab ich den ganzen Call Stack und kann genau sehen, an welcher Stelle es hakt.