-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Fix crash via cmd "Status 0" #3313
Conversation
If you execute "Status 0" you'll get a crash "Soft WDT reset". This is because of too long operation in "PublishStatus" funciton (>50ms) Now we use yield() to let Wifi module process its data. See more at http://arduino-esp8266.readthedocs.io/en/latest/reference.html?highlight=yield#timing-and-delays
Hi, Sorry, I'm not having that crash. Do you have that issue in the default version? |
Same crash with Tasmota 6.1.1c (sonoff-classic.bin) on Sonoff POW2 caused by TasmoAdmin. |
Have you checked the #3289 ? There were some binaries with problems due to travis issue. Please, use the recently published binaries by Theo, those are ok. Or you can build it by yourself also. |
Yes, I checked. Bacause:
All of this causes long execution of Printing one status doesn't take too much time. But if execute all statuses at once - you get long operation, that takes more than 50 ms. |
Cannot reproduce. Pls provide output of |
Fix possible WDT due to long MQTT publish handling (#3313)
Pls try the change just released. |
Partially fixed. There is no crashes now. And if I change Baudrate to 115200, I get good ping: no packet loss, 1-26 ms I looks like this bug appeared at 6.x.x versions. |
Yes, you can recompile with Debug ON for CPU usage. Please, see the file xdrv_99_debug.ino and enable the key |
Please, provide also your |
A status 0 every 5 seconds is a disaster waiting to happen... I know TasmoAdmin uses the HTTP interface to get information but as status 0 results in many MQTT messages (and probably syslog and serial if enables) too it's a major impact on Tasmota performance. If you enable serial AND a low baudrate exceptions are expected as the output just cannot be delivered in time. You'll have to decide if you want serial output anyway once your device is in production. As the main problem is solved by introducing a yield I hereby close this PR. |
Fix possible WDT due to long MQTT publish handling (arendst#3313)
If you execute
Status 0
you'll get a crashSoft WDT reset
.It can be caused by Home Assistant monitoring too
This is because of too long operation in
PublishStatus
funciton (>50ms)Now we use
yield()
to let Wifi module process its data.See more at
http://arduino-esp8266.readthedocs.io/en/latest/reference.html?highlight=yield#timing-and-delays