CSV Export schlägt fehl

Hallo,

ich wollte einen CSV Export meiner kompletten MP3 Sammlung machen. Der Export schlägt aber mit der folgenden Fehlermeldung fehl:

Erstes Fenster:
Not enough memory available to complete the operation!
The application will now be terminated.

Zweites Fenster:


Danach stürzt Mp3tag komplett ab. Der Absturz erfolgt nach etwas wenig als 10000 verarbeiteten Datensätzen.

Error log:

Mp3tag v2.84a - 22.10.2017 - 09:24:12

OS-Version: Windows 10, 64-bit

Build: Aug 26 2017 16:46:31

AppPath: 451.243.536.384 Bytes frei (C:\Program Files (x86)\Mp3tag)
DataPath: 451.243.536.384 Bytes frei (C:\Users\marti\AppData\Roaming\Mp3tag\data)
TempPath: 451.243.536.384 Bytes frei (C:\Users\marti\AppData\Local\Temp\Mp3tag v2.84a)


CATCH

File: mtmainframethreads.cpp
Line: 1396


Das liegt am fehlenden Adressraum für MP3tag.
Je nach Menge der geladenen Dateien kann der knapp werden, wenn für den Export auch noch sortiert werden muss.
MP3tag hat ca. 3,5 GB Adressraum zur Verfügung, da dies der Raum für 32-bit-Anwendungen ist.

Der einzige Ausweg ist und bleibt, nicht so viele Dateien auf einmal zu laden.
Ob MP3tag einfach so abstürzen muss, wenn der Adressraum ausläuft, ist natürlich eine berechtigte Frage.

Hmm..

Ich glaube nicht, dass zu wenig Speicher zur Verfügung stehen, da mp3tag ja die Sammlung ohne Problem eingelesen bekommen und somit im Speicher hält.

Die exportierten Daten sollten so um die 30MB groß sein, ist also von der Datenmenge her eher nichts.

Der Abbruch erfolgt ja schon bei keinen 10.000 Datensätzen. Ich vermute hier einen anderen Fehler.

Da ich nun nicht weiß, wie viele Dateien du geladen hattest, ist eine Beurteilung aus der Ferne natürlich schwierig.
Deshalb wären vielleicht ein paar mehr Indizien hilfreich.
Hast du den Speicherverbrauch beim Erzeugen des Reports beobachtet?
Bist du sicher, dass alle Dateien OK sind und nicht irgendwie kaputt?
Funktioniert nur der CSV-Export nicht oder schlagen auch andere fehl?
Was passiert, wenn du weniger Dateien auf einmal lädst?

Ich habe jetzt mal ein paar Tests durchgeführt. Es geht um etwas 100.000 Files

Hast du den Speicherverbrauch beim Erzeugen des Reports beobachtet?
Bei der Erzeugung der Files ändert sich der Speicherverbrauch eigentlich gar nicht (+30MB)
Wenn ich aber die Files komplett einlese verbraucht Mp3Tag ca. 1,7GB an Speicher

Bist du sicher, dass alle Dateien OK sind und nicht irgendwie kaputt?
Sie sollten alle OK sein, wenn ich Teilexporte mache, gibt es keine Abstürze.
Die maximale Menge, die ich getestet haben, beträgt ca. 41.500 Files, der Speicherbedarf lag da bei 1,2GB

Funktioniert nur der CSV-Export nicht oder schlagen auch andere fehl?
Ich habe nur das Problem beim Export

Was passiert, wenn du weniger Dateien auf einmal lädst?
Ist ein Export ohne Probleme möglich. Folgende Menge habe ich getestet
12000 Files
18500 Files
41500 Files
26000 Files

Mp3Tag verbraucht zwar sehr viel Speicher mit den 100.000 Files, aber ob er damit wirklich an das Speicherlimit kommt?

Danke für's Testen.
Es gibt nur wenige, die überhaupt 100.000 Dateien auf einmal laden konnten.
Meistens ist schon nach 70.000 Schluss - mit einem ähnlichen (Absturz-)Verhalten.

Von daher: der ausgeschöpfte Adressraum ist die naheliegendste Ursache.
(Korrupte Dateien können auch eine ROlle spielen, aber dann sollte das Häppchen, in dem die enthalten sind, zu Problemen führen und die anderen nicht - deshalb die Nachfrage.)

Es gibt im Forum mehrere Threads, die sich um die Änderung von MP3tag zu einer 64-Bit-Anwendung drehen. Dieser Wechsel würde das Problem deutlich nach hinten schieben.

Bitte zeige den Inhalt der MTE Datei, mit der die CSV Datei erzeugt wird.

DD.20171023.1051.CEST

Hi,

meinst du diese Informationen:

$filename(csv,utf-16)Titel;Interpret;Album;Track;Jahr;Länge;Größe;Geändert;Pfad;Dateiname;
$loop(%_filename_ext%)%title%;%artist%;%album%;%track%;%year%;%_length_seconds%;%_file_size%;%_file_mod_date%;%_folderpath%;%_filename_ext%;
$loopend()Erstellt am %_date% mit %_app% - dem universellen Tag Editor - http://www.mp3tag.de/

Ich habe einen Test gemacht und einen Ordner angelegt, mit 1000 Unterordner mit je 100 MP3 Dateien, davon jede Datei mit Tagtype ID3v2.3 und mit nur einem Tagfeld TITLE.
Dann habe ich auf einer Maschine "Win XP SP3, Intel P3, 1 GHz, 1 GB RAM" mit Mp3tag das von Dir genannte Mp3tag Standard MTE Script angewendet auf die 100.000 Dateien.
Mp3tag hat die gewünschte CSV Datei angelegt mit Kopfzeile und 100.000 Datenzeilen und Fußzeile.

Also sollte man den Absturzfehler nicht mit der Menge der Dateien in Zusammenhang bringen, sondern untersuchen, ob es eine besondere vielleicht fehlerhafte Datei gibt, die in Mp3tag den Absturz verursacht.
Die Fehlermeldung zeigt deutlich hin auf die Stelle im Programmcode:
CATCH File: mtmainframethreads.cpp Line: 1396

DD.20171023.2000.CEST, DD.20171024.1050.CEST

Wie kann ich denn fehlerhafte Dateien erkennen?
Wenn ich für Teilmengen einen Export machen funktioniert es ja, nur eben nicht alle auf einmal.

MP3diags geht auch durch große Sammlungen. Das dauert zwar, aber es geht.
Nach dem Scan kannst du auf auffällige Merkmale hin filtern und Reparaturen versuchen.

Hallo zusammen,

bevor es da noch weitere wilde Spekulationen gibt: im ursprünglichen Beitrag ganz oben steht:

was ganz klar mit dem verfügbaren Speicher und indirekt mit der Anzahl der Dateien in Verbindung steht. Wenn danach irgendwelche Fehler in Mp3tag auftreten, liegen die direkt mit dieser Situation zusammen — Mp3tag kann dann einfach keinen weiteren Speicher mehr reservieren.

Wenn Detlev da mit Testdateien auf seinem System andere Erfahrungen macht, dann liegt das 1.) an seinem System und 2.) vor allem an den verwendeten Dateien. Je nach Anzahl der Tag-Felder in diesen Dateien und nach Größe der Covers hat Mp3tag da einfach anderes auszulesen.

Viele Grüße
– Florian

Hallo Florian,

Das Thema ist ja bei allen mit großer Sammlung ein Dauerthema und auch mich schon in der Vergangenheit beschäftigt:
Zu wenig Arbeitsspeicher
Meine praktische Erfahrung ist, dass bei der Füllsituation (Tags) meiner Files ich bis ca. 45.000 Dateien auf der sicheren Seite bin, wenn ich einen meiner Exports durchführe.

Was mich interessieren würde und was hier auch der Fragesteller eingangs erwähnt hat, warum man die magische Grenze von ca. 3.5 GB auf dem System nicht annähernd im Taskmanager erreicht sieht, auch wenn man andere im Speicher befindliche 32 Bit-Programme mit einrechnet.

Wenn ích beispielsweise an die 80.000 MP3-Files in MP3Tag einlese klappt das zunächst problemlos und ich sehe bei der Ressourcenanzeige, dass MP3Tag ca. 1,2 GB in Beschlag nimmt. Starte ich dann den Export, wächst die Speicherbelegung zwar kontinuierlich an. Dieses Anwachsen bewegt sich aber nur im MB-Bereich und es kommt nicht zu einer Belegung über 1,3 GB hinaus, bis es zu einem Absturz kommt.

Andererseits kann ich ohne Probleme noch mehr Files in MP3Tag einlesen und beispielsweise zu einer Belegung von 1,6 GB kommen, ohne dass es beim Einlesen zu einem Absturz kommt.
Warum führt also die Exportausführung schon bei einer Speicherbelegung unter 1,3 GB zu einem Absturz?
Belegt die Exportfunktion bei der Abarbeitung Speicher, der nicht im Taskmanager angezeigt wird?

Es wäre nett, wenn Du zur besseren Verständnis und zur Klarstellung dazu noch etwas ausführen könntest.