[DEV-Branch] Reboot beim Start mancher Webstreams

Bei manchen Webstreams rebootet der ESPuino DEV-Branch (clone vom 27.07.2023), z.B.

Auf dem master funktionieren alle Streams ohne Probleme!

Bei ersterem Stream rebootet er in etwa 40% der Fälle, wenn man eine RFID mit webstream auflegt (es klappt auch mal 4 mal ohne reboot, aber manchmal gibt es auch einige Reboots hintereinander), bei letzterem rebootet er immer beim Auflegen einer RFID mit webstream, auch die Fehlermeldungen sind jeweils andere:

Fehlermeldung bei www.surfmusic.de/m3u/100-5-das-hitradio,4529.m3u:

[ 14592 ]  RFID-Karte erkannt: c9-fe-fa-03 
[ 14592 ]  Card type: ISO-15693
[ 14597 ]  RFID-Karte empfangen: 201254250003
[ 14599 ]  Modus: Webstream
[ 14604 ]  Neue Playlist mit 1 Titel(n) empfangen
[ 14604 ]  Free heap: 81272
[ 14604 ]  info        : Connect to new host: "http://www.surfmusic.de/m3u/100-5-das-hitradio,4529.m3u"
[ 14660 ]  info        : PSRAM found, inputBufferSize: 638965 bytes
[ 14661 ]  info        : buffers freed, free Heap: 80996 bytes
[ 14745 ]  info        : Connection has been established in 83 ms, free Heap: 80088 bytes
[ 14747 ]  'www.surfmusic.de/m3u/100-5-das-hitradio,4529.m3u' wird abgespielt (1 von 1)
[ 14798 ]  info        : redirect to new host "https://www.surfmusic.de/m3u/100-5-das-hitradio,4529.m3u"
[ 14798 ]  info        : Connect to new host: "https://www.surfmusic.de/m3u/100-5-das-hitradio,4529.m3u"
[ 14811 ]  info        : buffers freed, free Heap: 80108 bytes
[ 15659 ]  info        : SSL has been established in 848 ms, free Heap: 39344 bytes
[ 15793 ]  info        : chunked data transfer
[ 15793 ]  info        : Filename is playlist.m3u
[ 15795 ]  info        : Connect to new host: "https://stream.dashitradio.de/dashitradio/mp3-128/stream.mp3"
[ 15808 ]  info        : buffers freed, free Heap: 79780 bytes
[ 16665 ]  info        : SSL has been established in 857 ms, free Heap: 36976 bytes
[ 23989 ]  info        : chunked data transfer
[ 23990 ]  info        : redirect to new host "https://dashitradio-stream26.radiohost.de/dashitradio_128?"
[ 24001 ]  info        : Connect to new host: "https://dashitradio-stream26.radiohost.de/dashitradio_128?"
[ 24003 ]  info        : buffers freed, free Heap: 79348 bytes

***ERROR*** A stack overflow in task mp3play has been detected.

Backtrace: 0x4008400d:0x3ffdb100 0x40096eed:0x3ffdb120 0x4009ad29:0x3ffdb140 0x40098de5:0x3ffdb1c0 0x40096ffc:0x3ffdb1f0 0x40096fac:0x00000000 |<-CORRUPTED

  #0  0x4008400d:0x3ffdb100 in panic_abort at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/esp_system/panic.c:408
  #1  0x40096eed:0x3ffdb120 in esp_system_abort at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/esp_system/esp_system.c:137
  #2  0x4009ad29:0x3ffdb140 in vApplicationStackOverflowHook at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/freertos/port/xtensa/port.c:407
  #3  0x40098de5:0x3ffdb1c0 in vTaskSwitchContext at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/freertos/tasks.c:3505
  #4  0x40096ffc:0x3ffdb1f0 in _frxt_dispatch at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/freertos/port/xtensa/portasm.S:436
  #5  0x40096fac:0x00000000 in _frxt_int_exit at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/freertos/port/xtensa/portasm.S:231


ELF file SHA256: 19cdbf9ae4fa6c69

E (7203) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0
Rebooting...
ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x1f (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1344
load:0x40078000,len:13896
load:0x40080400,len:3600
entry 0x400805f0
E (805) esp_core_dump_flash: No`�ɕ�dump partition found!
E (805) esp_core_dump_flash: No core dump partition found!

Fehlermeldung bei http://www.antenne.de/webradio/antenne.m3u

[ 145831 ]  RFID-Karte erkannt: c9-fe-fa-03 
[ 145831 ]  Card type: ISO-15693
[ 145836 ]  RFID-Karte empfangen: 201254250003
[ 145853 ]  Modus: Webstream
[ 145860 ]  info        : Closing audio file
[ 145861 ]  Neue Playlist mit 1 Titel(n) empfangen
[ 145861 ]  Free heap: 54684
[ 145861 ]  info        : Connect to new host: "http://www.antenne.de/webradio/antenne.m3u"
[ 145872 ]  info        : buffers freed, free Heap: 77828 bytes
[ 146118 ]  info        : Connection has been established in 236 ms, free Heap: 78568 bytes
[ 146122 ]  'www.antenne.de/webradio/antenne.m3u' wird abgespielt (1 von 1)
[ 146183 ]  info        : redirect to new host "https://www.antenne.de/webradio/antenne.m3u"
[ 146184 ]  info        : Connect to new host: "https://www.antenne.de/webradio/antenne.m3u"
[ 146188 ]  no cover image for webstream
[ 146197 ]  info        : buffers freed, free Heap: 69416 bytes
Guru Meditation Error: Core  1 panic'ed (Unhandled debug exception). 
Debug exception reason: Stack canary watchpoint triggered (mp3play) 
Core  1 register dump:
PC      : 0x40098e95  PS      : 0x00060036  A0      : 0x40096fff  A1      : 0x3ffda280  
A2      : 0x3ffd0b08  A3      : 0x3ffd0cc0  A4      : 0x3ffd0cc4  A5      : 0x00000001  
A6      : 0x00000001  A7      : 0x00000003  A8      : 0x3ffd0b10  A9      : 0x3ffda260  
A10     : 0x3ffbbcd4  A11     : 0x3ffbbcd4  A12     : 0x00000014  A13     : 0x00000004  
A14     : 0x3ffbbccc  A15     : 0x80000001  SAR     : 0x0000001e  EXCCAUSE: 0x00000001  
EXCVADDR: 0x00000000  LBEG    : 0x4020d27c  LEND    : 0x4020d338  LCOUNT  : 0x00000006  


Backtrace: 0x40098e92:0x3ffda280 0x40096ffc:0x3ffda2b0 0x40096fac:0xa5a5a5a5 |<-CORRUPTED

  #0  0x40098e92:0x3ffda280 in taskSelectHighestPriorityTaskSMP at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/freertos/tasks.c:3436
      (inlined by) vTaskSwitchContext at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/freertos/tasks.c:3519
  #1  0x40096ffc:0x3ffda2b0 in _frxt_dispatch at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/freertos/port/xtensa/portasm.S:436
  #2  0x40096fac:0xa5a5a5a5 in _frxt_int_exit at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/freertos/port/xtensa/portasm.S:231




ELF file SHA256: 19cdbf9ae4fa6c69

E (3591) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0
Rebooting...
ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x1f (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1344
load:0x40078000,len:13896
load:0x40080400,len:3600
entry 0x400805f0
E (805) esp_core_dump_flash: No`�ɕ�dump partition found!
E (805) esp_core_dump_flash: No core dump partition found!

Was wurde beim DEV in dieser Hinsicht geändert, dass diese reboots entstehen?

P.S. Sollen Bugreports besser hier oder auf github veröffentlicht werden?

Vergrößere den Stack vielleicht mal auf 6000:

Das passt hier schon.

1 „Gefällt mir“

Perfekt, damit sind beide Streams ohne reboots abspielbar. Haben die 6000 auch Nachteile und übernimmst du die Korrektur auf deinem repo? Es waren von dem Fehler nicht so viele webstreams betroffen.
Danke für die prompte Antwort.

Ich checke das nächste Woche wenn ich aus dem Urlaub zurück bin & werde die Stacksize dann ggf. etwas vergrößern. Wir hatten das Problem schon mal im Audio- & RFID-Task…

3 „Gefällt mir“

Konnte das jetzt testen:
Mit einer reservierten Stackgöße von 6000 spielt der (SSL-) Stream ohne Probleme ab. Die Stackgröße scheint mir gut gewählt. Man das das prüfen mit der API uxTaskGetStackHighWaterMark(), einfach hier auskommentieren.
Allerdings ist bei diesem Stream der verfügbare Speicher ziemlich am Ende, ein Reload der Weboberfläche ist z.B. nicht möglich. Da hilft dann nur ein Reset.

!!! Hinweis !!!: Wenn immer es möglich ist verwendet Streams ohne SSL (http:// anstelle von https://). Die SSL Verschlüsselung schluckt richtig Ressourcen und kann den ESPuino ans Limit bringen. Meist bieten die Radiosender auch einen Stream ohne SSL-Verschlüsselung an.

2 „Gefällt mir“