-
Notifications
You must be signed in to change notification settings - Fork 13.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
espota.py does not receive OK
when Signed Update is used
#6348
Comments
Looking at the Updater base class, it seems like the uboot is only ever told to do something at the very end: Arduino/cores/esp8266/Updater.cpp Lines 266 to 284 in 824a833
That path can only ever return true to the ArduinoOTA library. What I think is more likely is a race condition. Could it be possible that the OK message was not sent over the air before the system completely rebooted? A quick and easy (wrong, too, but easy) way yo check would be to make that |
@earlephilhower Thank you for your hint. |
While looking at esp8266#6348 and esp8266#6369, and after checking into lwIP sources, it appears that the tests in ClientContext::wait_until_sent() effectively wait for all acks on current output buffer. Comments are added.
Basic Infos
Platform
Problem Description
When Signed Update is used, the
*bin.signed
is uploaded normally. However when the upload is done,espota.py
did not receive anyOK
ACK and timeouted.The ESP-12 did however receive this update and execute the new update normally.
I believe the bug is somewhere in the Updater module that makes
Update.end()
returnfalse
hence
Arduino/libraries/ArduinoOTA/ArduinoOTA.cpp
Lines 330 to 333 in 824a833
I'm currently investigating this bug.
The text was updated successfully, but these errors were encountered: