-
Notifications
You must be signed in to change notification settings - Fork 27
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
Save on IOControl page has stopped working on Chrome? #175
Comments
Just made a quick test with Chrome 113.0.5672.127 on the Code Revision 20230416 1116 Browser UPG with the PCF8574 attached and Chrome freezes if I click on Save only in the IOControl page of the PCF8574. On the Code Revision 20230416 1116 MQTT UPG BME the Chrome 113.0.5672.127 worked with no issues, |
Thanks. I think I know where to start looking. |
While working with the ESP8266 chip, I encountered a situation where the request did not end and there was a timeout at the end because I did not close the connection after the client request in the web browser. I think there is an issue with that. Pay attention to the content length. Make sure the connection is completely closed. If necessary, instead of satisfying the request inside a loop; A solution might be to run the client in a task and then delete the task completely at the end. (Maximum 5 clients could connect in the Esp8266 library.) I haven't looked at your Github codes, just a few ideas.. |
Thank you. I appreciate the pointers from your experience. |
Sometimes it's easier to rewrite the code than to find the bug and fix it. I think you can solve it quickly with GET method instead of POST method. |
Yeah ... that's a lot of re-writing. |
@kiralikbeyin Could you private message me at nielsonm.projects@gmail.com? I'd like to ask a couple of questions about using GET in this case. Perhaps I can draw on your experience to build some code for an experiment. |
I haven't heard back from @kiralikbeyin, but I think I've got this resolved. I found a logic issue in the parsing process. Testing this is very difficult because the failures are always corner cases that alias with packet boundaries (specifically the location of the &'s in a POST relative to the packet boundaries). So, I'm going to do more testing before I release the fix. @jmcvieira1 I wasn't able to reproduce your report, but I suspect it was the same bug. My inability to reproduce can easily be some change in packet boundaries. HOWEVER - while trying to reproduce I had the PCF8574 appear, then disappear, and I could only get it to reappear with a reset (I was using the reset button on the module to do this). I suspect it may have just been poor wiring in my attachment of the PCF8574, but I will make several more attempts to figure out what happened. I am intrigued by the suggestion from @kiralikbeyin . I think Jevgeni suggested it once before. But, I am not sure how to implement the Javascript to perform multiple GET requests instead of one POST. One of the POSTs returns over 600 characters, and GET requests are limited to 255 characters, so it might take three or more GET requests to return the same data contained in a POST. Additionally we could end up with some new aliasing problems as follows; In a POST I'm able to wait until the POST completes before processing the configuration changes, which enables me to check for conflicts in the configuration. In the GET method I might have to come up with a new method of making sure all changes in a given session are reported before processing the changes. But my first impression is that the GET method might free up some Flash space. |
Fixed in release 20230603 2058. There was one logic problem in POST parsing resulting from a change in parsing methods long ago that left a gap in detecting aliasing of the '&' delimiters when they occurred at packet boundaries. In addition there was an error in the POST size count for Configuration pages. |
This morning I noticed that Chrome freezes if I click on Save on the IOControl page. I see that Chrome 113.0.5672.127 released on May 16 2023, and my system automatically updates Chrome.
The same Network Modules continue to respond just fine with Edge and Firefox, even while the Chrome window is still frozen. When I run Developer Tools with Chrome it looks like the POST is sent from Chrome, but when I check the IOControl page with Firefox I don't see that the POST was executed - like it was not received at the Network Module from Chrome.
Is anyone else seeing this issue?
The text was updated successfully, but these errors were encountered: