File deserialization crash
Closed this issue · 1 comments
hitecSmartHome commented
Describe the bug
I have a method which deserializes a file from LittleFS into a passed JsonDocument. When this happens ( rarely ) I got a crash indicating ArduinoJson functions.
Environment
- Microcontroller: ESP-32_Wrover-E
- Core/runtime: Arduino V3 and IDF 5.3.0
- IDE: PlatformIO
Sketch
int FileSystem::read(const char* path, JsonDocument& doc) {
if (xSemaphoreTake(fileMutex, FILE_SEM_WAIT) == pdTRUE) {
File file = userFS.open(path);
if (!file) {
xSemaphoreGive(fileMutex);
return -1;
}
DeserializationError error = deserializeJson(doc, file);
file.close();
if (error) {
xSemaphoreGive(fileMutex);
return -1;
}
xSemaphoreGive(fileMutex);
return measureJson(doc);
}
return -1;
}
boolean Graphs::get(const char* type, std::string id, JsonArray& graphData) {
if( id.empty() ){ return false; }
JsonDocument graphs;
int size = db.read(GRAPHS_PATH,graphs);
if( size <= 0 ){ return false; }
JsonArray graphsArray = graphs[type].as<JsonArray>();
for(JsonObject graph : graphsArray ){
if( graph["id"].as<std::string>() == id ){
JsonArray savedData = graph["data"].as<JsonArray>();
return graphData.set(savedData);
}
}
return false;
}
CoreDump
===============================================================
==================== ESP32 CORE DUMP START ====================
Crashed task handle: 0x3ffdfc74, name: 'ComponentsTask', GDB name: 'process 1073609844'
================== CURRENT THREAD REGISTERS ===================
exccause 0x1c (LoadProhibitedCause)
excvaddr 0x5c
epc1 0x401d1f68
epc2 0x0
epc3 0x0
epc4 0x4008a277
epc5 0x0
epc6 0x0
eps2 0x0
eps3 0x0
eps4 0x50021
eps5 0x0
eps6 0x0
pc 0x401a1313 0x401a1313 <vfs_littlefs_fstat+67>
lbeg 0x4000c46c 1073792108
lend 0x4000c477 1073792119
lcount 0x0 0
sar 0x1b 27
ps 0x60c20 396320
threadptr <unavailable>
br <unavailable>
scompare1 <unavailable>
acclo <unavailable>
acchi <unavailable>
m0 <unavailable>
m1 <unavailable>
m2 <unavailable>
m3 <unavailable>
expstate <unavailable>
f64r_lo <unavailable>
f64r_hi <unavailable>
f64s <unavailable>
fcr <unavailable>
fsr <unavailable>
a0 0x801eede0 -2145456672
a1 0x3ffc4950 1073498448
a2 0x3ffbd738 1073469240
a3 0x0 0
a4 0x3ffc4ac0 1073498816
a5 0x4 4
a6 0xff0000 16711680
a7 0x3 3
a8 0x3ffbd924 1073469732
a9 0x3ffc4930 1073498416
a10 0x3ffbd81c 1073469468
a11 0x0 0
a12 0x3c 60
a13 0x3ffc4afc 1073498876
a14 0x60220 393760
a15 0x3 3
==================== CURRENT THREAD STACK =====================
#0 0x401a1313 in vfs_littlefs_fstat (ctx=0x3ffbd738, fd=<optimized out>, st=0x3ffc4ac0) at .pio/libdeps/esp-wrover-kit/esp_littlefs/src/esp_littlefs.c:1813
#1 0x401eede0 in esp_vfs_fstat (r=<optimized out>, fd=0, st=0x3ffc4ac0) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\vfs\vfs.c:521
#2 0x4000bce0 in ?? ()
#3 0x40059143 in ?? ()
#4 0x400594ad in ?? ()
#5 0x40259941 in _fread_r (ptr=0x3ffdfce0, buf=<optimized out>, size=1, count=1, fp=0x3f830998) at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/newlib/newlib/libc/stdio/fread.c:228
#6 0x402599d4 in fread (buf=0x3ffc4c00, size=1, count=1, fp=0x3f830998) at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/newlib/newlib/libc/stdio/fread.c:266
#7 0x401c0d5a in VFSFileImpl::read (this=0x3ffdfb94, buf=0x3ffc4c00 "M\025\034\200@L\374?\234L\374?\244L\374?", size=1) at C:/Users/Pc/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/vfs_api.cpp:408
#8 0x401a7ebe in fs::File::read (this=<optimized out>, buf=0x3ffc4c00 "M\025\034\200@L\374?\234L\374?\244L\374?", size=1) at C:/Users/Pc/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/FS.cpp:82
#9 0x401a7ed0 in fs::File::readBytes (this=0x3ffc4d10, buffer=0x3ffc4c00 "M\025\034\200@L\374?\234L\374?\244L\374?", length=1) at C:/Users/Pc/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/FS.h:63
#10 0x40262b59 in ArduinoJson::V704PB22::detail::Reader<fs::File, void>::read (this=0x3ffc4c90) at lib/ArduinoJson-7.x/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp:16
#11 ArduinoJson::V704PB22::detail::Latch<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::load (this=0x3ffc4c90) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/Latch.hpp:38
#12 ArduinoJson::V704PB22::detail::Latch<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::current (this=0x3ffc4c90) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/Latch.hpp:30
#13 ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::current (this=0x3ffc4c80) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:47
#14 0x401352b9 in ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::skipSpacesAndComments (this=0x3ffc4c80) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:581
#15 0x401355a9 in ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::skipSpacesAndComments (this=0x3ffc4c80) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:579
#16 ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::parseVariant<ArduinoJson::V704PB22::detail::AllowAllFilter> (this=0x3ffc4c80, variant=..., filter=..., nestingLimit=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:67
#17 0x4013580b in ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::parse<ArduinoJson::V704PB22::detail::AllowAllFilter> (nestingLimit=..., variant=..., this=0x3ffc4c80, filter=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:31
#18 ArduinoJson::V704PB22::detail::doDeserialize<ArduinoJson::V704PB22::detail::JsonDeserializer, ArduinoJson::V704PB22::JsonDocument&, ArduinoJson::V704PB22::detail::Reader<fs::File, void>, ArduinoJson::V704PB22::detail::DeserializationOptions<ArduinoJson::V704PB22::detail::AllowAllFilter> > (dst=..., reader=..., options=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Deserialization/deserialize.hpp:56
#19 0x40135a28 in ArduinoJson::V704PB22::detail::deserialize<ArduinoJson::V704PB22::detail::JsonDeserializer, ArduinoJson::V704PB22::JsonDocument&, fs::File&, , void>(ArduinoJson::V704PB22::JsonDocument&, fs::File&) (input=..., dst=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Deserialization/deserialize.hpp:68
#20 ArduinoJson::V704PB22::deserializeJson<ArduinoJson::V704PB22::JsonDocument&, fs::File&> (dst=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:678
#21 FileSystem::read (this=0x3ffb5150 <db>, path=0x3f401abc "/graphs.json", doc=...) at src/FileSystem/FileSystemReads.cpp:158
#22 0x400e55a9 in Graphs::get (this=<optimized out>, type=0x3f404ec8 "shader", id=..., graphData=...) at src/Components/Graph/Graph.cpp:9
#23 0x40107691 in Shader::handleGraph (this=0x3f86334c, detail=...) at src/Components/Shader/GraphHandler.cpp:22
#24 0x4010780c in Shader::checkGraph (this=0x3f86334c) at src/Components/Shader/GraphHandler.cpp:13
#25 0x40109ff3 in Shader::checkOnMinChange (this=0x3f86334c) at src/Components/Shader/Shader.cpp:25
#26 Shader::checkOnMinChange (this=0x3f86334c) at src/Components/Shader/Shader.cpp:21
#27 0x4010a5a0 in Shader::loop (this=0x3f86334c) at src/Components/Shader/Shader.cpp:88
#28 0x400dcb80 in ComponentHandler::loop (this=0x3ffb3848 <componentHandler>) at src/Components/ComponentHandler.cpp:98
#29 ComponentHandler::loop (this=0x3ffb3848 <componentHandler>) at src/Components/ComponentHandler.cpp:94
#30 0x400dcbb7 in ComponentsTask (pvParameters=<optimized out>) at src/Components/ComponentHandler.cpp:9
======================== THREADS INFO =========================
Id Target Id Frame
* 1 process 1073609844 0x401a1313 in vfs_littlefs_fstat (ctx=0x3ffbd738, fd=<optimized out>, st=0x3ffc4ac0) at .pio/libdeps/esp-wrover-kit/esp_littlefs/src/esp_littlefs.c:1813
2 process 1073527596 Factory::check (this=0x3ffb52cc <factory>) at src/Factory/Factory.cpp:50
3 process 1073597380 0x4000d018 in ?? ()
4 process 1073590016 0x4008ca12 in vTaskDelay (xTicksToDelay=1) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos asks.c:1601
5 process 1073470136 0x4008ca12 in vTaskDelay (xTicksToDelay=1) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos asks.c:1601
6 process 1073608992 0x00000000 in ?? ()
7 process 1073475776 0x40265d9e in esp_pm_impl_waiti () at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_pm\pm_impl.c:855
8 process 1073473876 0x40265d9e in esp_pm_impl_waiti () at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_pm\pm_impl.c:855
9 process 1073542248 0x4008b22a in xQueueReceive (xQueue=0x3f823ba4, pvBuffer=0x3ffcf3d0, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1487
10 process 1073552476 0x4000bff0 in ?? ()
11 process 1073467592 0x4000bff0 in ?? ()
12 process 1073411220 0x4008b374 in xQueueSemaphoreTake (xQueue=0x3ffaee30, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1687
13 process 1073602584 0x4008b22a in xQueueReceive (xQueue=0x3ffdd1bc, pvBuffer=0x3ffddf70, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1487
14 process 1073413408 0x4008b374 in xQueueSemaphoreTake (xQueue=0x3ffaf6bc, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1687
15 process 1073478188 0x4008d5ac in prvProcessTimerOrBlockTask (xListWasEmpty=<optimized out>, xNextExpireTime=0) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\hal\esp32\include/hal/cpu_ll.h:39
16 process 1073574372 0x4008b374 in xQueueSemaphoreTake (xQueue=0x3ffd7484, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1687
17 process 1073545152 0x4008b22a in xQueueReceive (xQueue=0x3f823d64, pvBuffer=0x3ffcfef0, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1487
18 process 1073607176 0x4008b22a in xQueueReceive (xQueue=0x3f8308ec, pvBuffer=0x3ffdf158, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1487
19 process 1073549612 0x4008b22a in xQueueReceive (xQueue=0x3f823c84, pvBuffer=0x3ffd1090, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1487
TCB NAME PRIO C/B STACK USED/FREE
---------- ---------------- -------- ----------------
0x3ffdfc74 ComponentsTask 1/1 2128/7860
0x3ffcbb2c loopTask 1/1 384/14968
0x3ffdcbc4 HardwareConfigT 1/1 512/6472
0x3ffdaf00 OTATask 1/1 352/3684
0x3ffbdab8 systemTask 1/1 352/9644
0x3ffdf920 HsHWsTask 1/1 912/4080
0x3ffbf0c0 IDLE1 0/0 384/1140
0x3ffbe954 IDLE0 0/0 384/1136
0x3ffcf468 tiT 18/18 448/2620
0x3ffd1c5c emac_rx 15/15 416/1624
0x3ffbd0c8 esp_timer 22/22 416/3164
0x3ffaf494 ipc0 24/24 384/1136
0x3ffde018 uart_event_task 24/24 416/1628
0x3ffafd20 ipc1 24/24 384/1140
0x3ffbfa2c Tmr Svc 1/1 336/1704
0x3ffd71e4 httpd 5/5 736/19248
0x3ffcffc0 sys_evt 20/20 464/1828
0x3ffdf208 mdns 1/1 432/3660
0x3ffd112c arduino_events 19/19 400/3688
==================== THREAD 1 (TCB: 0x3ffdfc74, name: 'ComponentsTask') =====================
#0 0x401a1313 in vfs_littlefs_fstat (ctx=0x3ffbd738, fd=<optimized out>, st=0x3ffc4ac0) at .pio/libdeps/esp-wrover-kit/esp_littlefs/src/esp_littlefs.c:1813
#1 0x401eede0 in esp_vfs_fstat (r=<optimized out>, fd=0, st=0x3ffc4ac0) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\vfs\vfs.c:521
#2 0x4000bce0 in ?? ()
#3 0x40059143 in ?? ()
#4 0x400594ad in ?? ()
#5 0x40259941 in _fread_r (ptr=0x3ffdfce0, buf=<optimized out>, size=1, count=1, fp=0x3f830998) at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/newlib/newlib/libc/stdio/fread.c:228
#6 0x402599d4 in fread (buf=0x3ffc4c00, size=1, count=1, fp=0x3f830998) at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/newlib/newlib/libc/stdio/fread.c:266
#7 0x401c0d5a in VFSFileImpl::read (this=0x3ffdfb94, buf=0x3ffc4c00 "M\025\034\200@L\374?\234L\374?\244L\374?", size=1) at C:/Users/Pc/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/vfs_api.cpp:408
#8 0x401a7ebe in fs::File::read (this=<optimized out>, buf=0x3ffc4c00 "M\025\034\200@L\374?\234L\374?\244L\374?", size=1) at C:/Users/Pc/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/FS.cpp:82
#9 0x401a7ed0 in fs::File::readBytes (this=0x3ffc4d10, buffer=0x3ffc4c00 "M\025\034\200@L\374?\234L\374?\244L\374?", length=1) at C:/Users/Pc/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/FS.h:63
#10 0x40262b59 in ArduinoJson::V704PB22::detail::Reader<fs::File, void>::read (this=0x3ffc4c90) at lib/ArduinoJson-7.x/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp:16
#11 ArduinoJson::V704PB22::detail::Latch<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::load (this=0x3ffc4c90) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/Latch.hpp:38
#12 ArduinoJson::V704PB22::detail::Latch<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::current (this=0x3ffc4c90) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/Latch.hpp:30
#13 ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::current (this=0x3ffc4c80) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:47
#14 0x401352b9 in ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::skipSpacesAndComments (this=0x3ffc4c80) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:581
#15 0x401355a9 in ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::skipSpacesAndComments (this=0x3ffc4c80) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:579
#16 ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::parseVariant<ArduinoJson::V704PB22::detail::AllowAllFilter> (this=0x3ffc4c80, variant=..., filter=..., nestingLimit=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:67
#17 0x4013580b in ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::parse<ArduinoJson::V704PB22::detail::AllowAllFilter> (nestingLimit=..., variant=..., this=0x3ffc4c80, filter=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:31
#18 ArduinoJson::V704PB22::detail::doDeserialize<ArduinoJson::V704PB22::detail::JsonDeserializer, ArduinoJson::V704PB22::JsonDocument&, ArduinoJson::V704PB22::detail::Reader<fs::File, void>, ArduinoJson::V704PB22::detail::DeserializationOptions<ArduinoJson::V704PB22::detail::AllowAllFilter> > (dst=..., reader=..., options=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Deserialization/deserialize.hpp:56
#19 0x40135a28 in ArduinoJson::V704PB22::detail::deserialize<ArduinoJson::V704PB22::detail::JsonDeserializer, ArduinoJson::V704PB22::JsonDocument&, fs::File&, , void>(ArduinoJson::V704PB22::JsonDocument&, fs::File&) (input=..., dst=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Deserialization/deserialize.hpp:68
#20 ArduinoJson::V704PB22::deserializeJson<ArduinoJson::V704PB22::JsonDocument&, fs::File&> (dst=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:678
#21 FileSystem::read (this=0x3ffb5150 <db>, path=0x3f401abc "/graphs.json", doc=...) at src/FileSystem/FileSystemReads.cpp:158
#22 0x400e55a9 in Graphs::get (this=<optimized out>, type=0x3f404ec8 "shader", id=..., graphData=...) at src/Components/Graph/Graph.cpp:9
#23 0x40107691 in Shader::handleGraph (this=0x3f86334c, detail=...) at src/Components/Shader/GraphHandler.cpp:22
#24 0x4010780c in Shader::checkGraph (this=0x3f86334c) at src/Components/Shader/GraphHandler.cpp:13
#25 0x40109ff3 in Shader::checkOnMinChange (this=0x3f86334c) at src/Components/Shader/Shader.cpp:25
#26 Shader::checkOnMinChange (this=0x3f86334c) at src/Components/Shader/Shader.cpp:21
#27 0x4010a5a0 in Shader::loop (this=0x3f86334c) at src/Components/Shader/Shader.cpp:88
#28 0x400dcb80 in ComponentHandler::loop (this=0x3ffb3848 <componentHandler>) at src/Components/ComponentHandler.cpp:98
#29 ComponentHandler::loop (this=0x3ffb3848 <componentHandler>) at src/Components/ComponentHandler.cpp:94
#30 0x400dcbb7 in ComponentsTask (pvParameters=<optimized out>) at src/Components/ComponentHandler.cpp:9
==================== THREAD 2 (TCB: 0x3ffcbb2c, name: 'loopTask') =====================
#0 Factory::check (this=0x3ffb52cc <factory>) at src/Factory/Factory.cpp:50
#1 0x4019f1d6 in loop () at src/main.cpp:97
#2 0x401bf9a8 in loopTask (pvParameters=<optimized out>) at C:/Users/Pc/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:50
==================== THREAD 3 (TCB: 0x3ffdcbc4, name: 'HardwareConfigT') =====================
#0 0x4000d018 in ?? ()
#1 0x401bdfd5 in millis () at C:/Users/Pc/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-misc.c:173
#2 0x4015abfd in Modbus::waitResponse (this=0x3ffb4868 <modbus>) at src/Modbus/Utils.cpp:47
#3 0x4015ac24 in Modbus::getResponse (this=0x3ffb4868 <modbus>, response=0x3f82a28e, bufferSize=128) at src/Modbus/Utils.cpp:62
#4 0x4015c6a1 in Module::loop (this=0x3f82a240) at src/Module/Module.cpp:726
#5 0x40139395 in HwConfig::loop (this=0x3ffb44d4 <hwConfig>) at src/HardwareConfig/HardwareConfig.cpp:56
#6 HwConfig::loop (this=0x3ffb44d4 <hwConfig>) at src/HardwareConfig/HardwareConfig.cpp:49
#7 0x4013951c in hwConfigTask (pvParameters=<optimized out>) at src/HardwareConfig/HardwareConfig.cpp:8
==================== THREAD 4 (TCB: 0x3ffdaf00, name: 'OTATask') =====================
#0 0x4008ca12 in vTaskDelay (xTicksToDelay=1) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos asks.c:1601
#1 0x4016e5f8 in OTATask (pvParameters=<optimized out>) at src/OTA/OTA.cpp:95
==================== THREAD 5 (TCB: 0x3ffbdab8, name: 'systemTask') =====================
#0 0x4008ca12 in vTaskDelay (xTicksToDelay=1) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos asks.c:1601
#1 0x4018a3d8 in systemTask (pvParameters=<optimized out>) at src/System/System.cpp:571
==================== THREAD 6 (TCB: 0x3ffdf920, name: 'HsHWsTask') =====================
#0 0x00000000 in ?? ()
Backtrace stopped: Cannot access memory at address 0x0
==================== THREAD 7 (TCB: 0x3ffbf0c0, name: 'IDLE1') =====================
#0 0x40265d9e in esp_pm_impl_waiti () at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_pm\pm_impl.c:855
#1 0x401cfe70 in esp_vApplicationIdleHook () at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_system\freertos_hooks.c:63
#2 0x4008b73f in prvIdleTask (pvParameters=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos asks.c:4099
==================== THREAD 8 (TCB: 0x3ffbe954, name: 'IDLE0') =====================
#0 0x40265d9e in esp_pm_impl_waiti () at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_pm\pm_impl.c:855
#1 0x401cfe70 in esp_vApplicationIdleHook () at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_system\freertos_hooks.c:63
#2 0x4008b73f in prvIdleTask (pvParameters=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos asks.c:4099
==================== THREAD 9 (TCB: 0x3ffcf468, name: 'tiT') =====================
#0 0x4008b22a in xQueueReceive (xQueue=0x3f823ba4, pvBuffer=0x3ffcf3d0, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1487
#1 0x401e5c35 in sys_arch_mbox_fetch (mbox=<optimized out>, msg=0x3ffcf3d0, timeout=592) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\lwip\port\esp32\freertos\sys_arch.c:330
#2 0x401d7a72 in tcpip_timeouts_mbox_fetch (mbox=<optimized out>, msg=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\lwip\lwip\src\api cpip.c:110
#3 tcpip_thread (arg=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\lwip\lwip\src\api cpip.c:148
==================== THREAD 10 (TCB: 0x3ffd1c5c, name: 'emac_rx') =====================
#0 0x4000bff0 in ?? ()
#1 0x4008a132 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\port\xtensa\include/freertos/portmacro.h:571
#2 vPortExitCritical (mux=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\port\xtensa\port.c:332
#3 0x4008cf15 in ulTaskGenericNotifyTake (uxIndexToWait=<optimized out>, xClearCountOnExit=1, xTicksToWait=4294967295) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos asks.c:5513
#4 0x401c6c5d in emac_esp32_rx_task (arg=0x3f8240ec) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_eth\src\esp_eth_mac_esp.c:257
==================== THREAD 11 (TCB: 0x3ffbd0c8, name: 'esp_timer') =====================
#0 0x4000bff0 in ?? ()
#1 0x4008a132 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\port\xtensa\include/freertos/portmacro.h:571
#2 vPortExitCritical (mux=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\port\xtensa\port.c:332
#3 0x4008cf15 in ulTaskGenericNotifyTake (uxIndexToWait=<optimized out>, xClearCountOnExit=1, xTicksToWait=4294967295) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos asks.c:5513
#4 0x401d08f1 in timer_task (arg=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_timer\src\esp_timer.c:420
==================== THREAD 12 (TCB: 0x3ffaf494, name: 'ipc0') =====================
#0 0x4008b374 in xQueueSemaphoreTake (xQueue=0x3ffaee30, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1687
#1 0x40082b0b in ipc_task (arg=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_ipc\src\esp_ipc.c:54
==================== THREAD 13 (TCB: 0x3ffde018, name: 'uart_event_task') =====================
#0 0x4008b22a in xQueueReceive (xQueue=0x3ffdd1bc, pvBuffer=0x3ffddf70, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1487
#1 0x401bf0d9 in HardwareSerial::_uartEventTask (args=0x3ffb7d10 <Serial1>) at C:/Users/Pc/.platformio/packages/framework-arduinoespressif32/cores/esp32/HardwareSerial.cpp:230
==================== THREAD 14 (TCB: 0x3ffafd20, name: 'ipc1') =====================
#0 0x4008b374 in xQueueSemaphoreTake (xQueue=0x3ffaf6bc, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1687
#1 0x40082b0b in ipc_task (arg=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_ipc\src\esp_ipc.c:54
==================== THREAD 15 (TCB: 0x3ffbfa2c, name: 'Tmr Svc') =====================
#0 0x4008d5ac in prvProcessTimerOrBlockTask (xListWasEmpty=<optimized out>, xNextExpireTime=0) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\hal\esp32\include/hal/cpu_ll.h:39
#1 prvTimerTask (pvParameters=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos imers.c:597
==================== THREAD 16 (TCB: 0x3ffd71e4, name: 'httpd') =====================
#0 0x4008b374 in xQueueSemaphoreTake (xQueue=0x3ffd7484, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1687
#1 0x401e5b5a in sys_arch_sem_wait (sem=0x3f826640, timeout=0) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\lwip\port\esp32\freertos\sys_arch.c:184
#2 0x401d7685 in lwip_select (maxfdp1=50, readset=0x3ffd7140, writeset=0x0, exceptset=0x0, timeout=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\lwip\lwip\src\api\sockets.c:2153
#3 0x401ef469 in esp_vfs_select (nfds=50, readfds=0x3ffd7140, writefds=0x0, errorfds=0x0, timeout=0x0) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\vfs\vfs.c:1023
#4 0x401c8d84 in httpd_server (hd=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_http_server\src\httpd_main.c:205
#5 httpd_thread (arg=0x3f824260) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_http_server\src\httpd_main.c:250
==================== THREAD 17 (TCB: 0x3ffcffc0, name: 'sys_evt') =====================
#0 0x4008b22a in xQueueReceive (xQueue=0x3f823d64, pvBuffer=0x3ffcfef0, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1487
#1 0x401c8608 in esp_event_loop_run (event_loop=0x3ffbb0d0, ticks_to_run=4294967295) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_event\esp_event.c:566
#2 0x401c8779 in esp_event_loop_run_task (args=0x3ffbb0d0) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\esp_event\esp_event.c:115
==================== THREAD 18 (TCB: 0x3ffdf208, name: 'mdns') =====================
#0 0x4008b22a in xQueueReceive (xQueue=0x3f8308ec, pvBuffer=0x3ffdf158, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1487
#1 0x401bbe25 in _mdns_service_task (pvParameters=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\mdns\mdns.c:4639
==================== THREAD 19 (TCB: 0x3ffd112c, name: 'arduino_events') =====================
#0 0x4008b22a in xQueueReceive (xQueue=0x3f823c84, pvBuffer=0x3ffd1090, xTicksToWait=<optimized out>) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\freertos\queue.c:1487
#1 0x401a7594 in _arduino_event_task (arg=<optimized out>) at C:/Users/Pc/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.cpp:305
======================= ALL MEMORY REGIONS ========================
Name Address Size Attrs
.rtc.text 0x400c0000 0x0 RW
.rtc.dummy 0x3ff80000 0x0 RW
.rtc.force_fast 0x3ff80000 0x0 RW
.rtc.force_slow 0x50000010 0x0 RW
.iram0.vectors 0x40080000 0x403 R XA
.iram0.text 0x40080404 0x14d33 R XA
.dram0.data 0x3ffb0000 0x3778 RW A
.ext_ram_noinit 0x3f800000 0x0 RW
.noinit 0x3ffb3778 0x0 RW
.flash.appdesc 0x3f400020 0x100 R A
.flash.rodata 0x3f400120 0x39828 RW A
.flash.text 0x400d0020 0x19a5df R XA
.phyiram.0 0x4026a600 0x2b R XA
.phyiram.1 0x4026a62c 0x7d R XA
.phyiram.2 0x4026a6ac 0x21e R XA
.phyiram.3 0x4026a8cc 0xb2 R XA
.phyiram.6 0x4026a980 0xde R XA
.phyiram.4 0x4026aa60 0xea R XA
.phyiram.7 0x4026ab4c 0xe4 R XA
.phyiram.8 0x4026ac30 0x223 R XA
.phyiram.9 0x4026ae54 0x183 R XA
.phyiram.10 0x4026afd8 0x8e R XA
.phyiram.13 0x4026b068 0x188 R XA
.phyiram.15 0x4026b1f0 0xba R XA
.phyiram.14 0x4026b2ac 0xef R XA
.phyiram.16 0x4026b39c 0x1cb R XA
.phyiram.18 0x4026b568 0x72 R XA
.phyiram.12 0x4026b5dc 0x78 R XA
.phyiram.17 0x4026b654 0xee R XA
.phyiram.24 0x4026b744 0x4a R XA
.phyiram.25 0x4026b790 0x31 R XA
.phyiram.26 0x4026b7c4 0x103 R XA
.phyiram.27 0x4026b8c8 0x87 R XA
.phyiram.22 0x4026b950 0x61 R XA
.phyiram.20 0x4026b9b4 0x10e R XA
.phyiram.21 0x4026bac4 0x9e R XA
.phyiram.19 0x4026bb64 0x2df R XA
.iram0.data 0x40095138 0x0 RW
.iram0.bss 0x40095138 0x0 RW
.dram0.heap_start 0x3ffbac28 0x0 RW
.coredump.tasks.data 0x3ffcbb2c 0x164 RW
.coredump.tasks.data 0x3ffcb9a0 0x180 RW
.coredump.tasks.data 0x3ffdcbc4 0x164 RW
.coredump.tasks.data 0x3ffdc9b0 0x200 RW
.coredump.tasks.data 0x3ffdaf00 0x164 RW
.coredump.tasks.data 0x3ffdad90 0x160 RW
.coredump.tasks.data 0x3ffbdab8 0x164 RW
.coredump.tasks.data 0x3ffce2a0 0x160 RW
.coredump.tasks.data 0x3ffdf920 0x164 RW
.coredump.tasks.data 0x3ffc6060 0x390 RW
.coredump.tasks.data 0x3ffdfc74 0x164 RW
.coredump.tasks.data 0x3ffc4890 0x7d0 RW
.coredump.tasks.data 0x3ffbf0c0 0x164 RW
.coredump.tasks.data 0x3ffbef30 0x180 RW
.coredump.tasks.data 0x3ffbe954 0x164 RW
.coredump.tasks.data 0x3ffbe7c0 0x180 RW
.coredump.tasks.data 0x3ffcf468 0x164 RW
.coredump.tasks.data 0x3ffcf2a0 0x1c0 RW
.coredump.tasks.data 0x3ffd1c5c 0x164 RW
.coredump.tasks.data 0x3ffd1ab0 0x1a0 RW
.coredump.tasks.data 0x3ffbd0c8 0x164 RW
.coredump.tasks.data 0x3ffbcf20 0x1a0 RW
.coredump.tasks.data 0x3ffaf494 0x164 RW
.coredump.tasks.data 0x3ffaf300 0x180 RW
.coredump.tasks.data 0x3ffde018 0x164 RW
.coredump.tasks.data 0x3ffdde70 0x1a0 RW
.coredump.tasks.data 0x3ffafd20 0x164 RW
.coredump.tasks.data 0x3ffafb90 0x180 RW
.coredump.tasks.data 0x3ffbfa2c 0x164 RW
.coredump.tasks.data 0x3ffbf8d0 0x150 RW
.coredump.tasks.data 0x3ffd71e4 0x164 RW
.coredump.tasks.data 0x3ffd6ef0 0x2e0 RW
.coredump.tasks.data 0x3ffcffc0 0x164 RW
.coredump.tasks.data 0x3ffcfde0 0x1d0 RW
.coredump.tasks.data 0x3ffdf208 0x164 RW
.coredump.tasks.data 0x3ffdf050 0x1b0 RW
.coredump.tasks.data 0x3ffd112c 0x164 RW
.coredump.tasks.data 0x3ffd0f90 0x190 RW
===================== ESP32 CORE DUMP END =====================
===============================================================
The relevant part is here
==================== CURRENT THREAD STACK =====================
#0 0x401a1313 in vfs_littlefs_fstat (ctx=0x3ffbd738, fd=<optimized out>, st=0x3ffc4ac0) at .pio/libdeps/esp-wrover-kit/esp_littlefs/src/esp_littlefs.c:1813
#1 0x401eede0 in esp_vfs_fstat (r=<optimized out>, fd=0, st=0x3ffc4ac0) at C:\Users\Pc\.platformio\packages\framework-espidf@3.40407.0\components\vfs\vfs.c:521
#2 0x4000bce0 in ?? ()
#3 0x40059143 in ?? ()
#4 0x400594ad in ?? ()
#5 0x40259941 in _fread_r (ptr=0x3ffdfce0, buf=<optimized out>, size=1, count=1, fp=0x3f830998) at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/newlib/newlib/libc/stdio/fread.c:228
#6 0x402599d4 in fread (buf=0x3ffc4c00, size=1, count=1, fp=0x3f830998) at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/newlib/newlib/libc/stdio/fread.c:266
#7 0x401c0d5a in VFSFileImpl::read (this=0x3ffdfb94, buf=0x3ffc4c00 "M\025\034\200@L\374?\234L\374?\244L\374?", size=1) at C:/Users/Pc/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/vfs_api.cpp:408
#8 0x401a7ebe in fs::File::read (this=<optimized out>, buf=0x3ffc4c00 "M\025\034\200@L\374?\234L\374?\244L\374?", size=1) at C:/Users/Pc/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/FS.cpp:82
#9 0x401a7ed0 in fs::File::readBytes (this=0x3ffc4d10, buffer=0x3ffc4c00 "M\025\034\200@L\374?\234L\374?\244L\374?", length=1) at C:/Users/Pc/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/FS.h:63
#10 0x40262b59 in ArduinoJson::V704PB22::detail::Reader<fs::File, void>::read (this=0x3ffc4c90) at lib/ArduinoJson-7.x/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp:16
#11 ArduinoJson::V704PB22::detail::Latch<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::load (this=0x3ffc4c90) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/Latch.hpp:38
#12 ArduinoJson::V704PB22::detail::Latch<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::current (this=0x3ffc4c90) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/Latch.hpp:30
#13 ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::current (this=0x3ffc4c80) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:47
#14 0x401352b9 in ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::skipSpacesAndComments (this=0x3ffc4c80) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:581
#15 0x401355a9 in ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::skipSpacesAndComments (this=0x3ffc4c80) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:579
#16 ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::parseVariant<ArduinoJson::V704PB22::detail::AllowAllFilter> (this=0x3ffc4c80, variant=..., filter=..., nestingLimit=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:67
#17 0x4013580b in ArduinoJson::V704PB22::detail::JsonDeserializer<ArduinoJson::V704PB22::detail::Reader<fs::File, void> >::parse<ArduinoJson::V704PB22::detail::AllowAllFilter> (nestingLimit=..., variant=..., this=0x3ffc4c80, filter=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:31
#18 ArduinoJson::V704PB22::detail::doDeserialize<ArduinoJson::V704PB22::detail::JsonDeserializer, ArduinoJson::V704PB22::JsonDocument&, ArduinoJson::V704PB22::detail::Reader<fs::File, void>, ArduinoJson::V704PB22::detail::DeserializationOptions<ArduinoJson::V704PB22::detail::AllowAllFilter> > (dst=..., reader=..., options=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Deserialization/deserialize.hpp:56
#19 0x40135a28 in ArduinoJson::V704PB22::detail::deserialize<ArduinoJson::V704PB22::detail::JsonDeserializer, ArduinoJson::V704PB22::JsonDocument&, fs::File&, , void>(ArduinoJson::V704PB22::JsonDocument&, fs::File&) (input=..., dst=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Deserialization/deserialize.hpp:68
#20 ArduinoJson::V704PB22::deserializeJson<ArduinoJson::V704PB22::JsonDocument&, fs::File&> (dst=...) at lib/ArduinoJson-7.x/src/ArduinoJson/Json/JsonDeserializer.hpp:678
#21 FileSystem::read (this=0x3ffb5150 <db>, path=0x3f401abc "/graphs.json", doc=...) at src/FileSystem/FileSystemReads.cpp:158
#22 0x400e55a9 in Graphs::get (this=<optimized out>, type=0x3f404ec8 "shader", id=..., graphData=...) at src/Components/Graph/Graph.cpp:9
#23 0x40107691 in Shader::handleGraph (this=0x3f86334c, detail=...) at src/Components/Shader/GraphHandler.cpp:22
#24 0x4010780c in Shader::checkGraph (this=0x3f86334c) at src/Components/Shader/GraphHandler.cpp:13
#25 0x40109ff3 in Shader::checkOnMinChange (this=0x3f86334c) at src/Components/Shader/Shader.cpp:25
#26 Shader::checkOnMinChange (this=0x3f86334c) at src/Components/Shader/Shader.cpp:21
#27 0x4010a5a0 in Shader::loop (this=0x3f86334c) at src/Components/Shader/Shader.cpp:88
#28 0x400dcb80 in ComponentHandler::loop (this=0x3ffb3848 <componentHandler>) at src/Components/ComponentHandler.cpp:98
#29 ComponentHandler::loop (this=0x3ffb3848 <componentHandler>) at src/Components/ComponentHandler.cpp:94
#30 0x400dcbb7 in ComponentsTask (pvParameters=<optimized out>) at src/Components/ComponentHandler.cpp:9
When read
is called, ArduinoJson starts to deserialize the file and crashes.
DeserializationError error = deserializeJson(doc, file);
The JSON file looks something like this
{
"heating":[
{
"id": "",
"data": [],
}
],
"shader": [
{
"id": "",
"data": [],
}
],
}
hitecSmartHome commented
Sorry. It is probably a LittleFS bug and not an ArduinoJson bug