[Ovmsdev] for-v3.3: ota flash http crashes

Michael Balzer dexter at expeedo.de
Tue Nov 23 15:00:11 HKT 2021


Thanks Mark,

fix confirmed.

Who ran into the issue already may also be able to switch back to the 
previous 3.2 boot partition, do a reboot and then update again from there.

Regards,
Michael


Am 23.11.21 um 03:22 schrieb Mark Webb-Johnson:
> I have merged in these reverts, and committed, then built a new edge 
> on my server. I ran a few OTA updates with this, and it seems ok.
>
> The code now uses the old ovms_http library, based on normal sockets 
> (not mongoose). This should also workaround the ‘ota flash http’ issue 
> we had with ssh client connections. I would prefer to use mongoose 
> (apart from uniformity, this also gave us support for HTTPS), but it 
> is quite tricky to do this in a blocking way with the ssh client also 
> over mongoose. Would need to re-work to be non-blocking for these 
> commands.
>
> Sorry, but existing edge users will probably have to re-flash from SD 
> card or USB.
>
> Regards, Mark.
>
>> On 23 Nov 2021, at 8:24 AM, Mark Webb-Johnson <mark at webb-johnson.net 
>> <mailto:mark at webb-johnson.net>> wrote:
>>
>> Signed PGP part
>> Damn. I had made the change to roll that back, but forgot to merge my 
>> local branch with those changes.
>>
>> I just tried, but got some conflicts. I’ll fix those up, and then 
>> commit again.
>>
>> Regards, Mark.
>>
>>> On 23 Nov 2021, at 1:58 AM, Michael Balzer <dexter at expeedo.de 
>>> <mailto:dexter at expeedo.de>> wrote:
>>>
>>> Signed PGP part
>>> Mark,
>>>
>>> since updating to 3.3.001 my test module again crashes on any ota 
>>> update attempt.
>>>
>>> The signature is the same as below, and the code seems to be unchanged…?
>>>
>>> Regards,
>>> Michael
>>>
>>>
>>> Am 17.09.21 um 10:48 schrieb Mark Webb-Johnson:
>>>> I’ll have a look at it over the weekend.
>>>>
>>>> Regards, Mark.
>>>>
>>>>> On 17 Sep 2021, at 4:39 PM, Michael Balzer <dexter at expeedo.de 
>>>>> <mailto:dexter at expeedo.de>> wrote:
>>>>>
>>>>> Signed PGP part
>>>>> There is another fatal issue with OvmsSyncHttpClient besides the 
>>>>> issue with running in the mongoose context: OTA updates are no 
>>>>> longer possible.
>>>>>
>>>>> When flashing via HTTP, the OvmsSyncHttpClient tries to allocate 
>>>>> memory for a full firmware image, which of course fails:
>>>>>
>>>>> OVMS# ota flash http
>>>>> Current running partition is: factory
>>>>> Target partition is: ota_0
>>>>> Download firmware from 
>>>>> ovms.dexters-web.de/firmware/ota/v3.1/edge/ovms3.bin 
>>>>> <http://ovms.dexters-web.de/firmware/ota/v3.1/edge/ovms3.bin> to ota_0
>>>>> Guru Meditation Error: Core  1 panic'ed (StoreProhibited). 
>>>>> Exception was unhandled.
>>>>> Core 1 register dump:
>>>>> PC      : 0x4022438b PS      : 0x00060a30 A0      : 0x802245cd 
>>>>> A1      : 0x3ffe9c70
>>>>> A2      : 0x00000000 A3      : 0x3ffe6f5c A4      : 0x00000001 
>>>>> A5      : 0xffffffff
>>>>> A6      : 0x3fabad7c A7      : 0xff000000 A8      : 0x00000000 
>>>>> A9      : 0x3ffe9c50
>>>>> A10     : 0x00000000 A11     : 0x3ffe6f5c A12     : 0x00000001 
>>>>> A13     : 0x0000000a
>>>>> A14     : 0x00000037 A15     : 0x00000057 SAR     : 0x00000018 
>>>>> EXCCAUSE: 0x0000001d
>>>>> EXCVADDR: 0x00000000 LBEG    : 0x4008b179 LEND    : 0x4008b19b 
>>>>> LCOUNT  : 0xffffffff
>>>>>
>>>>> ELF file SHA256: 94a8e191baae33a5
>>>>>
>>>>> 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
>>>>>
>>>>> Rebooting...
>>>>>
>>>>>
>>>>> 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).
>>>>> 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).
>>>>> 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).
>>>>> 376 else
>>>>> 377 {
>>>>> 378 if (header.compare(0,15,"Content-Length:") == 0)
>>>>> 379             {
>>>>> 380             m_bodysize = atoi(header.substr(15).c_str());
>>>>> *381 m_body.reserve(m_bodysize+1);*
>>>>> 382             }
>>>>> 383 else if (header.compare(0,5,"HTTP/") == 0)
>>>>> 384             {
>>>>> 385             size_t space = header.find(' ');
>>>>> 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).
>>>>> 311 data += len;
>>>>> 312 consumed += len;
>>>>> 313 len = 0;
>>>>> 314 }
>>>>> 315
>>>>> 316 ConnectionHeaders(nc);
>>>>> 317         }
>>>>> 318
>>>>> 319       if (! m_inheaders)
>>>>> 320         {
>>>>> 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).
>>>>> 119 m_mgconn = NULL;
>>>>> 120 }
>>>>> 121 break;
>>>>> 122
>>>>> 123 case MG_EV_RECV:
>>>>> 124 mbuf_remove(&nc->recv_mbuf, 
>>>>> ConnectionData(nc,(uint8_t*)nc->recv_mbuf.buf, nc->recv_mbuf.len));
>>>>> 125 break;
>>>>> 126
>>>>> 127 default:
>>>>> 128 break;
>>>>>
>>>>>
>>>>> Can we switch back to using the old async client?
>>>>>
>>>>> Regards,
>>>>> Michael
>>>>>
>>>>> -- 
>>>>> Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
>>>>> Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> OvmsDev mailing list
>>>> OvmsDev at lists.openvehicles.com
>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>>
>>> -- 
>>> Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
>>> Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
>>>
>>
>>
>
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.openvehicles.com
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev

-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20211123/9877fc60/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 203 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20211123/9877fc60/attachment-0001.sig>


More information about the OvmsDev mailing list