Crash/Reboot bei mp3s mit Cover/Bild

Servus zusammen, mir ist aufgefallen, dass einige mp3s, die ein Cover/Bild enthalten, nicht abgespielt werden und der ESPunio stattdessen nach ein paar Sekunden crasht/neustartet.

Beispiele sind z.B. diese hier: WDR Kiraka, die kleine Hexe.

Ich konnte das Problem umgehen, indem ich die mp3 zu einer m4a konvertiere (ffmpeg, ohne cover) oder eyeD3 nutze, um das Bild zu entfernen:

eyeD3 --remove-all-images filename.mp3 

In der Web UI ist ja extra eine Möglichkeit vorhaben, das Cover anzuzeigen. Deshalb bin ich etwas verwundert. Habt ihr dieses Probleme auch? Liegt es also vermutlich an der Player library? Oder liegt es irgendwie an meinem Setup??

Ich habe es gerade mal mit Teil 1 von 4 getestet. Macht keine Probleme. Also stürzt nicht ab und das Bild wird in der GUI auch angezeigt.
Habe das File mit wget runtergeladen und dann per Web-Transfer auf den ESPuino geladen.

Klappt bei mir auch einwandfrei.
Verwendest Du den aktuellen Source? Es gab da noch einen Bugfix mit der Dateigröße des Coverbildes.
Ansonsten wäre ein Stacktrace des Fehlers hilfreich. Den kannst in der Platform.ini aktivieren:

monitor_filters = esp32_exception_decoder

Danke @biologist @tueddy fürs Testen! Ich habs jetzt unter Debian stable (einmal per FTP und einmal per wget & Web Transfer) probiert. Stürzt immer ab nach ein paar Sekunden. Neuster source (gestern noch mal frisch gemerged).

Dann habe ich es unter Windows probiert und es ging plötzlich! Allerdings zu früh gefreut: Es geht nur ein Mal… Jetzt stürzt er wieder ab nach ein paar Sekunden wie mit den Files unter Linux.

Das Cover wird im Absturz-Szenario nie in der Web UI geladen. Das war deswegen auch mein initialer Gedanke, dass der Crash am Cover liegen könnte.

Hab gerade meine No-name/Aliexpress SD-Karte im Verdacht. Die hat mir vor ein paar Tagen schon mal Probleme beim Mounten während des Boots bereitet. Ich werde es mal mit der Stacktrace (danke @tueddy für den Hinweis) und einer anderen Karte probieren. Wer billig kauf, kauft … Mist :wink:

@biologist @tueddy hier mal die gesamte Trace. Vielleicht findet ihr ja was interessantes:

RSSI: -56 dBm
ws[/ws][3] text-message[24]: ping
ws[/ws][3] text-message[24]: ping
ws[/ws][3] text-message[24]: ping
Datei geschrieben: //wdr5kinderhoerspiel_2021-12-19_diekleinehexe24hoerspielfuerkinder_wdr5.mp3 => 38473632 bytes in 124890 ms (308 kB/s)
Bytes [ok] 38473632 / [not ok] 0

ws[/ws][3] text-message[24]: ping
RSSI: -56 dBm
ws[/ws][3] disconnect
[E][Preferences.cpp:472] getString(): nvs_get_str len fail: mqttServer NOT_FOUND
[E][Preferences.cpp:472] getString(): nvs_get_str len fail: mqttUser NOT_FOUND
[E][Preferences.cpp:472] getString(): nvs_get_str len fail: mqttPassword NOT_FOUND
no cover image for SD-card audio
ws[/ws][4] connect
ws[/ws][4] text-message[39]: trackinfo
ws[/ws][4] text-message[36]: coverimg
no cover image for SD-card audio
Freier Speicher: 83344
Playlist-Generierung: uncached
Dateimodus erkannt.
Modus: Einzelner Track
Neue Playlist empfangen mit 1 Titel(n)
Free heap: 82584
info        : PSRAM found, inputBufferSize: 283615 bytes
no cover image for SD-card audio
info        : buffers freed, free Heap: 87064 bytes
info        : Reading file: "/wdr5kinderhoerspiel_2021-12-19_diekleinehexe24hoerspielfuerkinder_wdr5.mp3"
info        : MP3Decoder has been initialized, free Heap: 63384 bytes
'/wdr5kinderhoerspiel_2021-12-19_diekleinehexe24hoerspielfuerkinder_wdr5.mp3' wird abgespielt (1 von 1)
info        : stream ready
info        : Content-Length: 38473632
info        : ID3 framesSize: 523264
info        : ID3 version: 2.3
info        : ID3 normal frames
id3data     : Title: Die kleine Hexe - Hörspiel für Kinder - Teil 2 | WDR 5 KiRaKa Kinderhörspiel im WDR (19.12.2021)
id3data     : Artist: Otfried Preußler
id3data     : Band: Otfried Preußler
id3data     : Album: WDR 5 KiRaKa Kinderhörspiel im WDR
id3data     : Year: 2021
id3data     : ContentType: Podcast
info        : Audio-Length: 37950368
info        : syncword found at pos 0
info        : Channels: 2
info        : SampleRate: 48000
info        : BitsPerSample: 16
info        : BitRate: 160000
serve cover image (image/jpeg): /wdr5kinderhoerspiel_2021-12-19_diekleinehexe24hoerspielfuerkinder_wdr5.mp3
E (204917) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (204917) task_wdt:  - async_tcp (CPU 1)
E (204917) task_wdt: Tasks currently running:
E (204917) task_wdt: CPU 0: IDLE0
E (204917) task_wdt: CPU 1: mp3play
E (204917) task_wdt: Aborting.
abort() was called at PC 0x401e57f4 on core 0

ELF file SHA256: 0000000000000000

Backtrace: 0x40096f44:0x3ffc0000 0x400971bd:0x3ffc0020 0x401e57f4:0x3ffc0040 0x40092881:0x3ffc0060 0x4023c393:0x3ffbc2f0 0x401e7813:0x3ffbc310 0x4009a3c9:0x3ffbc330 0x40098c0e:0x3ffbc350
  #0  0x40096f44:0x3ffc0000 in invoke_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:715
  #1  0x400971bd:0x3ffc0020 in abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:715
  #2  0x401e57f4:0x3ffc0040 in task_wdt_isr at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/task_wdt.c:252
  #3  0x40092881:0x3ffc0060 in _xt_lowint1 at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/xtensa_vectors.S:1154
  #4  0x4023c393:0x3ffbc2f0 in esp_pm_impl_waiti at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/pm_esp32.c:492
  #5  0x401e7813:0x3ffbc310 in esp_vApplicationIdleHook at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/freertos_hooks.c:108
  #6  0x4009a3c9:0x3ffbc330 in prvIdleTask at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/tasks.c:4691
  #7  0x40098c0e:0x3ffbc350 in vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)

Rebooting...
Maximale Inaktivitätszeit wurde aus NVS geladen: 10
Initiale LED-Helligkeit wurde aus NVS geladen: 16
LED-Helligkeit für Nachtmodus wurde aus NVS geladen: 2
RFID-Tags koennen jetzt gescannt werden...

  _____   ____    ____            _                 
 | ____| / ___|  |  _ \   _   _  (_)  _ __     ___  
 |  _|   \__  \  | |_) | | | | | | | | '_ \   / _ \
 | |___   ___) | |  __/  | |_| | | | | | | | | (_) |
 |_____| |____/  |_|      \__,_| |_| |_| |_|  \___/ 
 Rfid-controlled musicplayer

Software-revision: 20220111-1

ESP-IDF version: v3.3.5-1-g85c43024c
Wakeup was not caused by deep sleep: 0
Versuche SD-Karte wird im SD_MMC-Modus (1 Bit) zu mounten...
SD card type: SDHC
Port-expander gefunden
Interrupt für Port-Expander aktiviert
FTP-User wurde aus NVS geladen: esp32
FTP-Passwort wurde aus NVS geladen: esp32
Lautstärke vor dem letzten Shutdown wird wiederhergestellt. Dies überschreibt die Einstellung der initialen Lautstärke aus der GUI.
Initiale Lautstärke wurde aus NVS geladen: 3
Maximale Lautstärke für Lautsprecher wurde aus NVS geladen: 1
Maximale Lautstärke für Kopfhörer wurde aus NVS geladen: 1
Maximale Lautstärke wurde gesetzt auf: 1
Neuer Modus: stereo
Unterer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 3.00 V
Oberer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 4.20 V
Spannungslevel (Batterie) fuer Warnung via Neopixel aus NVS geladen: 3.40 V
Zyklus für Spannungsmessung (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 10 Minuten
RFID-Tags koennen jetzt gescannt werden...
Hostname aus NVS geladen: espuino1
.....Aktuelle IP: 192.168.178.45
Freier Heap-Speicher nach Setup-Routine: 114308
PSRAM: 4194204 bytes
Flash-size: 16777216 bytes
RSSI: -51 dBm
Maximale Lautstärke bereits erreicht!
Neue Lautstärke empfangen via Queue: 1
Maximale Lautstärke wurde gesetzt auf: 1
Neuer Modus: mono
Aktuelle Batteriespannung: 3.92 V
ws[/ws][1] connect
ws[/ws][1] text-message[39]: trackinfo
ws[/ws][1] text-message[36]: coverimg
no cover image for SD-card audio
ws[/ws][1] text-message[24]: ping
ws[/ws][1] text-message[24]: ping
ws[/ws][1] text-message[24]: ping
ws[/ws][1] text-message[24]: ping

Ist mein erstes ESP Projekt. Sieht für mich high-level so aus als würde der Watchdog wegen eines Time-outs neustarten lassen? Würde den Eindruck bestätigen, dass es an der SD-Karte liegt, weil diese sehr langsam ist?

Ja der Watchdog führt zum Reset, ein Task reagiert zu langsam.
Du könntest in Web.cpp so ab Zeile 1178 hinter der Meldung „serve cover image“ testweise einige

Serial.Println("Bis hier hin komme ich noch..")

einbauen um die genaue Absturzstelle zu finden…

Log:


  _____   ____    ____            _                 
 | ____| / ___|  |  _ \   _   _  (_)  _ __     ___  
 |  _|   \__  \  | |_) | | | | | | | | '_ \   / _ \
 | |___   ___) | |  __/  | |_| | | | | | | | | (_) |
 |_____| |____/  |_|      \__,_| |_| |_| |_|  \___/ 
 Rfid-controlled musicplayer

Software-revision: 20220111-1

ESP-IDF version: v3.3.5-1-g85c43024c
Wakeup was not caused by deep sleep: 0
Versuche SD-Karte wird im SD_MMC-Modus (1 Bit) zu mounten...
SD card type: SDHC
Port-expander gefunden
Interrupt für Port-Expander aktiviert
FTP-User wurde aus NVS geladen: esp32
FTP-Passwort wurde aus NVS geladen: esp32
Lautstärke vor dem letzten Shutdown wird wiederhergestellt. Dies überschreibt die Einstellung der initialen Lautstärke aus der GUI.
Initiale Lautstärke wurde aus NVS geladen: 3
Maximale Lautstärke für Lautsprecher wurde aus NVS geladen: 1
Maximale Lautstärke für Kopfhörer wurde aus NVS geladen: 1
Maximale Lautstärke wurde gesetzt auf: 1
Neuer Modus: stereo
Unterer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 3.00 V
Oberer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 4.20 V
Spannungslevel (Batterie) fuer Warnung via Neopixel aus NVS geladen: 3.40 V
Zyklus für Spannungsmessung (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 10 Minuten
RFID-Tags koennen jetzt gescannt werden...
Hostname aus NVS geladen: espuino1
.....Aktuelle IP: 192.168.178.45
Freier Heap-Speicher nach Setup-Routine: 113728
PSRAM: 4194204 bytes
Flash-size: 16777216 bytes
RSSI: -56 dBm
Maximale Lautstärke bereits erreicht!
Neue Lautstärke empfangen via Queue: 1
Maximale Lautstärke wurde gesetzt auf: 1
Neuer Modus: mono
Aktuelle Batteriespannung: 3.94 V
[E][Preferences.cpp:472] getString(): nvs_get_str len fail: mqttServer NOT_FOUND
[E][Preferences.cpp:472] getString(): nvs_get_str len fail: mqttUser NOT_FOUND
[E][Preferences.cpp:472] getString(): nvs_get_str len fail: mqttPassword NOT_FOUND
no cover image for SD-card audio
ws[/ws][1] connect
ws[/ws][1] text-message[39]: trackinfo
ws[/ws][1] text-message[36]: coverimg
no cover image for SD-card audio
Freier Speicher: 88088
Playlist-Generierung: uncached
Dateimodus erkannt.
Modus: Einzelner Track
Neue Playlist empfangen mit 1 Titel(n)
Free heap: 87640
info        : PSRAM found, inputBufferSize: 283615 bytes
no cover image for SD-card audio
info        : buffers freed, free Heap: 91804 bytes
info        : Reading file: "/wdr5kinderhoerspiel_2021-12-19_diekleinehexe24hoerspielfuerkinder_wdr5.mp3"
info        : MP3Decoder has been initialized, free Heap: 68076 bytes
'/wdr5kinderhoerspiel_2021-12-19_diekleinehexe24hoerspielfuerkinder_wdr5.mp3' wird abgespielt (1 von 1)
info        : stream ready
info        : Content-Length: 38473632
info        : ID3 framesSize: 523264
info        : ID3 version: 2.3
info        : ID3 normal frames
id3data     : Title: Die kleine Hexe - Hörspiel für Kinder - Teil 2 | WDR 5 KiRaKa Kinderhörspiel im WDR (19.12.2021)
id3data     : Artist: Otfried Preußler
id3data     : Band: Otfried Preußler
id3data     : Album: WDR 5 KiRaKa Kinderhörspiel im WDR
id3data     : Year: 2021
id3data     : ContentType: Podcast
info        : Audio-Length: 37950368
info        : syncword found at pos 0
info        : Channels: 2
info        : SampleRate: 48000
info        : BitsPerSample: 16
info        : BitRate: 160000
0 Bis hier hin komme ich noch..
serve cover image (image/jpeg): /wdr5kinderhoerspiel_2021-12-19_diekleinehexe24hoerspielfuerkinder_wdr5.mp3
1 Bis hier hin komme ich noch..
2 Bis hier hin komme ich noch..
3 Bis hier hin komme ich noch..
10 Bis hier hin komme ich noch..
11 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
ws[/ws][1] text-message[24]: ping
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
4 Bis hier hin komme ich noch..
5 Bis hier hin komme ich noch..
6 Bis hier hin komme ich noch..
8 Bis hier hin komme ich noch..
9 Bis hier hin komme ich noch..
E (45099) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (45099) task_wdt:  - async_tcp (CPU 1)
E (45099) task_wdt: Tasks currently running:
E (45099) task_wdt: CPU 0: IDLE0
E (45099) task_wdt: CPU 1: IDLE1
E (45099) task_wdt: Aborting.
abort() was called at PC 0x401e58bc on core 0

ELF file SHA256: 0000000000000000

Backtrace: 0x40096f44:0x3ffc0000 0x400971bd:0x3ffc0020 0x401e58bc:0x3ffc0040 0x40092881:0x3ffc0060 0x4023c45b:0x3ffbc2f0 0x401e78db:0x3ffbc310 0x4009a3c9:0x3ffbc330 0x40098c0e:0x3ffbc350
  #0  0x40096f44:0x3ffc0000 in invoke_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:715
  #1  0x400971bd:0x3ffc0020 in abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:715
  #2  0x401e58bc:0x3ffc0040 in task_wdt_isr at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/task_wdt.c:252
  #3  0x40092881:0x3ffc0060 in _xt_lowint1 at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/xtensa_vectors.S:1154
  #4  0x4023c45b:0x3ffbc2f0 in esp_pm_impl_waiti at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/pm_esp32.c:492
  #5  0x401e78db:0x3ffbc310 in esp_vApplicationIdleHook at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/freertos_hooks.c:108
  #6  0x4009a3c9:0x3ffbc330 in prvIdleTask at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/tasks.c:4691
  #7  0x40098c0e:0x3ffbc350 in vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)

Rebooting...
Maximale Inaktivitätszeit wurde aus NVS geladen: 10
Initiale LED-Helligkeit wurde aus NVS geladen: 16
LED-Helligkeit für Nachtmodus wurde aus NVS geladen: 2
RFID-Tags koennen jetzt gescannt werden...

  _____   ____    ____            _                 
 | ____| / ___|  |  _ \   _   _  (_)  _ __     ___  
 |  _|   \__  \  | |_) | | | | | | | | '_ \   / _ \
 | |___   ___) | |  __/  | |_| | | | | | | | | (_) |
 |_____| |____/  |_|      \__,_| |_| |_| |_|  \___/ 
 Rfid-controlled musicplayer

Software-revision: 20220111-1

ESP-IDF version: v3.3.5-1-g85c43024c
Wakeup was not caused by deep sleep: 0
Versuche SD-Karte wird im SD_MMC-Modus (1 Bit) zu mounten...
SD card type: SDHC
Port-expander gefunden
Interrupt für Port-Expander aktiviert
FTP-User wurde aus NVS geladen: esp32
FTP-Passwort wurde aus NVS geladen: esp32
Lautstärke vor dem letzten Shutdown wird wiederhergestellt. Dies überschreibt die Einstellung der initialen Lautstärke aus der GUI.
Initiale Lautstärke wurde aus NVS geladen: 3
Maximale Lautstärke für Lautsprecher wurde aus NVS geladen: 1
Maximale Lautstärke für Kopfhörer wurde aus NVS geladen: 1
Maximale Lautstärke wurde gesetzt auf: 1
Neuer Modus: stereo
Unterer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 3.00 V
Oberer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 4.20 V
Spannungslevel (Batterie) fuer Warnung via Neopixel aus NVS geladen: 3.40 V
Zyklus für Spannungsmessung (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 10 Minuten
RFID-Tags koennen jetzt gescannt werden...
Hostname aus NVS geladen: espuino1
.....Aktuelle IP: 192.168.178.45
Freier Heap-Speicher nach Setup-Routine: 113880
PSRAM: 4194204 bytes
Flash-size: 16777216 bytes
RSSI: -55 dBm
Maximale Lautstärke bereits erreicht!
Neue Lautstärke empfangen via Queue: 1
Maximale Lautstärke wurde gesetzt auf: 1
Neuer Modus: mono
Aktuelle Batteriespannung: 3.85 V
ws[/ws][1] connect
ws[/ws][1] text-message[39]: trackinfo
ws[/ws][1] text-message[36]: coverimg
no cover image for SD-card audio
ws[/ws][1] text-message[24]: ping
ws[/ws][1] text-message[24]: ping

und hier die einzelnen println’s der web.cpp:

    for (uint8_t i = 0u; i < 255; i++) {
        mimeType[i] = coverFile.read();
        if (uint8_t(mimeType[i]) == 0) 
            break;  
    }
    Serial.println("0 Bis hier hin komme ich noch..");
    snprintf(Log_Buffer, Log_BufferLength, "serve cover image (%s): %s", (char *) mimeType, gPlayProperties.coverFileName);
    Log_Println(Log_Buffer, LOGLEVEL_NOTICE);
    Serial.println("1 Bis hier hin komme ich noch..");
    // skip image type (1 Byte)
    coverFile.read();
    Serial.println("2 Bis hier hin komme ich noch..");
    // skip description (null terminated)
    for (uint8_t i = 0u; i < 255; i++) {
        if (uint8_t(coverFile.read()) == 0)
            break;  
    }

    int imageSize = gPlayProperties.coverFileSize;
	Serial.println("3 Bis hier hin komme ich noch..");
    AsyncWebServerResponse *response = request->beginResponse(
        mimeType,
        imageSize,
        [coverFile](uint8_t *buffer, size_t maxLen, size_t total) -> size_t {
            Serial.println("4 Bis hier hin komme ich noch..");
            File file = coverFile; // local copy of file pointer
            Serial.println("5 Bis hier hin komme ich noch..");
            int bytes = file.read(buffer, maxLen);
            Serial.println("6 Bis hier hin komme ich noch..");
            // close file at the end
            if (!file.available()) {
                Serial.println("7 Bis hier hin komme ich noch..");
                file.close();
                    Log_Println("cover image serving finished, close file", LOGLEVEL_DEBUG);
            }
            Serial.println("8 Bis hier hin komme ich noch..");
            // do not consume too much cpu time
            vTaskDelay(portTICK_RATE_MS * 50u);  
            Serial.println("9 Bis hier hin komme ich noch..");
            return max(0, bytes); // return 0 even when no bytes were loaded
        }
    );
    Serial.println("10 Bis hier hin komme ich noch..");
    response->addHeader("Cache Control","no-cache, must-revalidate");
    Serial.println("11 Bis hier hin komme ich noch..");
    request->send(response);
} 


Der ganze Ouput rattert in ein paar wenigen Sekunden durch, sobald ich mit dem Playback der Datei starte. Man hört auch ein paar Sekunden den richtigen Ton.

Das hilft doch schon mal. Also der ESPuino Code scheint hier OK zu sein, benötigt aber wohl zu lange.
Debug-Ausgabe 4-9 ist das eigentliche Lesen von SD-Karte und bereitstellen für den Webserver.
Das scheint ein Problem der Webserver Bibliothek zu sein. Dort stauen sich doch so einige Bugs z.B. dieser.
Evt. hier einen Fork verwenden wo das Problem bereits gelöst wurde. Mein Fork hilft da vermutlich nicht, da hatte ich ein anderes Problem. Probier’s mal aus…

danke fürs Mithelfen @tueddy !

Hiermit geht es:

#https://github.com/me-no-dev/AsyncTCP.git#ca8ac5f
https://github.com/mkfrey/AsyncTCP#kconfig_queue_size

und

build_flags = ...
			  -DCONFIG_ASYNC_TCP_EVENT_QUEUE_SIZE=512

Bei dependencies von einem User names „me-no-dev“ sollte man skeptisch sein ;-D

2 „Gefällt mir“