Closed UltimatPronin closed 3 years ago
If you use stream, be careful for the latest version that the memory allocation for the stream payload is unlimited and when the stream data push to the device is too big to device to handle, it may cause out of memory and reset.
For another reason of out of memory, you need to check the free heap for very firebase calls.
If your data at the stream path is too large, reduce it or redesign your database.
The data under the stream path should keep small and should not contains the large log or history data.
Thank you, I will check. For now, stream is listening the empty patch (not exists for test), but in normal - only very small json is used for stream.
After 16 Hours 51 Minutes 17 Seconds I get Exception cause: 28 again... Decoding stack results:
0x40209719: FirebaseESP8266::handleStreamRead(FirebaseData&) at D:\Profile\Ultimat\Documents\Arduino\libraries\Firebase_ESP8266_Client\src\FirebaseESP8266.cpp line 3685
0x40207420: FirebaseESP8266::set_scheduled_callback(std::function ) at D:\Profile\Ultimat\Documents\Arduino\libraries\Firebase_ESP8266_Client\src/FirebaseESP8266.h line 2639
0x4023b52d: operator delete(void*) at /workdir/repo/gcc/libstdc++-v3/libsupc++/del_op.cc line 48
0x40204347: std::_Function_base::_Base_manager (FirebaseESP8266*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at c:\users\ultimat\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 1954
0x4020a2ef: FirebaseESP8266::runStreamTask() at D:\Profile\Ultimat\Documents\Arduino\libraries\Firebase_ESP8266_Client\src\FirebaseESP8266.cpp line 1952
0x40204310: std::_Function_base::_Base_manager (FirebaseESP8266*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at c:\users\ultimat\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 1931
0x402304a8: std::_Function_handler (FirebaseESP8266*)> >::_M_invoke(std::_Any_data const&) at c:\users\ultimat\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2069
0x4020a024: FirebaseESP8266::runStreamTask() at D:\Profile\Ultimat\Documents\Arduino\libraries\Firebase_ESP8266_Client\src\FirebaseESP8266.cpp line 2335
0x40101493: umm_free_core(void*) at C:\Users\Ultimat\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351
0x40101717: free(void*) at C:\Users\Ultimat\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x402304c7: std::_Function_handler (FirebaseESP8266*)> >::_M_invoke(std::_Any_data const&) at c:\users\ultimat\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2073
0x40225634: run_scheduled_functions() at C:\Users\Ultimat\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/interrupts.h line 25
0x40227581: __loop_end() at C:\Users\Ultimat\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 184
0x402275b7: loop_wrapper() at C:\Users\Ultimat\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 198
Can you advice, how to avoid it. For now I don't have stream data (for test), but stream is configured for listening patch. Normally I need listen the patch for small json data with command & status for all time.
Ok I found the bugs in the string utility functions in the library and trying to fix it and will inform you soon.
Thank you very much!
The library updated with the bugs fixed. Please try to download via GitHub.
Thank you for very fast reply! I will try updates now. Looks like problems go off - for now uptime is: >110 hours and everything working perfectly. Great job and amazing library!
Arduino IDE 1.8.13; ESP8266 Arduino Core SDK version 2.7.4; NodeMCU V3;
Randomly get Exception cause: 28. Sometimes after 5-10 minutes, sometimes after 0.5-1.5 hours, sometimes after >12-22 hours.
Your great library is used in big home security sketch, I can't paste it here - it is so big. Firebase used for monitoring (update status data - used 1st object, not stream) & sending commands (used 2nd - stream object). Available heap all time is about 9500-11000 bytes with fragmentation about 2-4%. Now I can't direct access to serial, but exceptions causes & stacks is saved in FS.
Here it is:
Decoding stack results:
Firebase data updates about 1 time per 5-30 seconds. Please, take a look - is problem in library or in used board.