<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
There is another fatal issue with OvmsSyncHttpClient besides the
issue with running in the mongoose context: OTA updates are no
longer possible.<br>
<br>
When flashing via HTTP, the OvmsSyncHttpClient tries to allocate
memory for a full firmware image, which of course fails:<br>
<br>
<font face="monospace">OVMS# ota flash http <br>
Current running partition is: factory<br>
Target partition is: ota_0<br>
Download firmware from
ovms.dexters-web.de/firmware/ota/v3.1/edge/ovms3.bin to ota_0<br>
Guru Meditation Error: Core 1 panic'ed (StoreProhibited).
Exception was unhandled.<br>
Core 1 register dump:<br>
PC : 0x4022438b PS : 0x00060a30 A0 : 0x802245cd
A1 : 0x3ffe9c70 <br>
A2 : 0x00000000 A3 : 0x3ffe6f5c A4 : 0x00000001
A5 : 0xffffffff <br>
A6 : 0x3fabad7c A7 : 0xff000000 A8 : 0x00000000
A9 : 0x3ffe9c50 <br>
A10 : 0x00000000 A11 : 0x3ffe6f5c A12 : 0x00000001
A13 : 0x0000000a <br>
A14 : 0x00000037 A15 : 0x00000057 SAR : 0x00000018
EXCCAUSE: 0x0000001d <br>
EXCVADDR: 0x00000000 LBEG : 0x4008b179 LEND : 0x4008b19b
LCOUNT : 0xffffffff <br>
<br>
ELF file SHA256: 94a8e191baae33a5<br>
<br>
Backtrace: 0x4022438b:0x3ffe9c70 0x402245ca:0x3ffe9c90
0x40132f93:0x3ffe9cc0 0x40132e51:0x3ffe9d10 0x40133609:0x3ffe9d40
0x402e7472:0x3ffe9d70 0x4010e229:0x3ffe9d90 0x4010fbd5:0x3ffe9dd0
0x40110015:0x3ffe9e00 0x401102de:0x3ffe9e70 0x4010c51a:0x3ffe9ed0
0x400f5a4f:0x3ffe9ef0 0x400f5afd:0x3ffe9f40<br>
<br>
Rebooting...<br>
<br>
<br>
0x4022438b is in std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>
>::_S_copy(char*, char const*, unsigned int)
(/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/build/build-cc-gcc-final/xtensa-esp32-elf/esp32-psram/libstdc++-v3/include/bits/char_traits.h:243).<br>
0x402245ca is in std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>
>::reserve(unsigned int)
(/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/build/build-cc-gcc-final/xtensa-esp32-elf/esp32-psram/libstdc++-v3/include/bits/basic_string.tcc:298).<br>
0x40132f93 is in
OvmsSyncHttpClient::ConnectionHeaders(mg_connection*)
(/home/balzer/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3/components/ovms_http/src/ovms_http.cpp:381).<br>
376 else<br>
377 {<br>
378 if (header.compare(0,15,"Content-Length:") == 0)<br>
379 {<br>
380 m_bodysize = atoi(header.substr(15).c_str());<br>
<b>381 m_body.reserve(m_bodysize+1);</b><br>
382 }<br>
383 else if (header.compare(0,5,"HTTP/") == 0)<br>
384 {<br>
385 size_t space = header.find(' ');<br>
0x40132e51 is in
OvmsSyncHttpClient::ConnectionData(mg_connection*, unsigned char*,
unsigned int)
(/home/balzer/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3/components/ovms_http/src/ovms_http.cpp:316).<br>
311 data += len;<br>
312 consumed += len;<br>
313 len = 0;<br>
314 }<br>
315 <br>
316 ConnectionHeaders(nc);<br>
317 }<br>
318 <br>
319 if (! m_inheaders)<br>
320 {<br>
0x40133609 is in
OvmsSyncHttpClient::MongooseCallback(mg_connection*, int, void*)
(/home/balzer/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3/components/ovms_http/src/ovms_http.cpp:124).<br>
119 m_mgconn = NULL;<br>
120 }<br>
121 break;<br>
122 <br>
123 case MG_EV_RECV:<br>
124 mbuf_remove(&nc->recv_mbuf,
ConnectionData(nc,(uint8_t*)nc->recv_mbuf.buf,
nc->recv_mbuf.len));<br>
125 break;<br>
126 <br>
127 default:<br>
128 break;</font><br>
<br>
<br>
Can we switch back to using the old async client?<br>
<br>
Regards,<br>
Michael<br>
<br>
<pre class="moz-signature" cols="72">--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
</body>
</html>