we have a bug with ie8(under XP), and ie9 (under 7) doing several RPC GWT calls. Eventually, one of the calls fires but server responds with a reset (RST) and the application keeps waiting the result until a 12002 http error is received (12002 seems to mean TimeOut) after some minutes.
Some keys:
We can not reproduce the bug in Other browsers.
We have fired hundreds of the same RPC calls using prototype.js in ie8 and it never fails! So, we can only reproduce it inside gwt code.
it is a random thing. some time it happens three seconds after the first call others three minutes after.
in a client with windows server 2003 the http error is 12030 instead of 12002 and it happens immediatly.
Any Idea?
This is not a GWT problem. This is an AJAX problem.
In addition I've seen it can happen in FF too.
But IE with nested callbacks really aggravated this.
The link below really helped, but it did not solve the problem 100%.
Why does IE issue random XHR 408/12152 responses using jQuery post?
It suggests that the problem will be solved if you close the HTTP connection for each request on the servlet.
The problem disappeared when we moved to Server 2008/Tomcat.
With Server 2003 the IIS was full of errors.
Also this link is useful
Related
I'm hosting a website serves global regions, and recently there's a weird issue came up.
Already checked other posts on the Internet including the one in stackoverflow with a lot of discussions:Chrome net::ERR_HTTP2_PROTOCOL_ERROR 200 after a reconnect , but none of the answers helped.
Website is building on ASP.NET webform legacy "website" (not web application).
There's a important function which performs several process once user click a button on website.
Let's say there are 100 lines of code in that function, and I've added some flags to log which steps have been hit and processed.
Weird situation is:
Only China users are facing the issue. (website is not hosted in China)
Some users are using firefox and it returned below, in English it is "Secure Connection Failed"
But checked several posts including firefox documents, there should be error code on screen like
ssl_error_no_cypher_overlap but there is nothing.
Firefox error
Some users are using other browsers which is Chrome based, it returns:
Chrome error
In additionally, I checked the process log in these user feedbacks, most of them does not finish all the code, in other words, if there are 100 lines of codes and some of them just stopped in line 50.
Website has TLS 1.2 enabled, also http2 protocol (h2) is applied when I checked via Chrome-Network tab.
I'm wondering if it is possible if client browser shut down the connection in some reasons, it will end with the result I see (stopped at the middle of entire code flow), from my opinion if a request is posted to server then no matter what client does, the process should finish entire flow.
Any ideas or thoughts will be appreciated!
I was just dealing with that exact situation.
From what I read in various posts on the HTTP2_PROTOCOL_ERROR, I think what happens is the response is started but code problem(s) prevent the server from completing the response. The incomplete response gives the protocol error in Chrome, and, because it's over TLS, Firefox sees it as a security error. (I'd share links, but I've already closed all those windows - sorry.)
Somehow my code was preventing the server from completing the response without causing an exception.
I was able to track down the offending code by commenting out the body of every code-behind procedure on the page and then bringing them back one at a time.
Good luck to you!
I can't give you a concrete example, but in my case, there was no problem on the application side.
Have you recently added settings to your in-house infrastructure engineer?
For example, have you added WAF settings? You may want to check.
FYI
I was assigned some debugging to do on an existing ASP.NET WebForms application that uses a lot of UpdatePanels.
One of the button launches some tasks that are very long to perform, and it is expected.
The problem is that we have a strange behavior : on Internet Explorer, the query stops exactly 5 minutes after it started with the following error :
On IE11 with enterprise mode enabled (simulates IE8) (the website uses Enterprise Mode):
Sys.WebForms.PageRequestManagerServerErrorException: An unknown error
occurred while processing the request on the server. The status code
returned from the server was: 12019
On native IE11 :
XMLHttpRequest: Network Error 0x2ef3, Could not complete the operation due to error 00002ef3
Sys.WebForms.PageRequestManagerServerErrorException: An unknown error
occurred while processing the request on the server. The status code
returned from the server was: 0
So the update panel is not refreshed, but I see that even if the query failed, the server continues to perform the tasks (writes to the database), so it's not a server timeout.
Moreover, if I perform the same action locally, on the IIS server, the query isn't interrupted.
What baffles me is that it works without any issue with Chrome (the query we're testing lasts 6 minutes)
I read a lot of things on the Internet but nothing that helps, to my knowledge we don't have a load balancer (this error seem to appear mostly with reports behind a load balancer).
I looked for all the timeouts I can (server and client side), and increased all the values to ridiculous amounts, no effect.
I tried to apply the changes to the registry as explained here, without success.
I tried with Fiddler, but not sure how to interpret its results and both on IE and Chrome, 5 minutes after the start of the query I get an HTTP 401 error and it asks for an authentication (we're using Windows authentication). That only happens when using Fiddler, no authentication is asked usually.
Not sure what to do with that :). Again, Chrome seems to handle it without problem.
I don't have any more ideas...
I suspect that it's a company proxy issue but I don't understand why it works with Chrome, and it might be complicated to ask for configuration changes on the proxy, I need to be absolutely sure it's that, I don't know how.
Any idea/suggestion?
I'm using devexpress grid view to view and saving data,my problem is when the browser is first loaded application respond normally,after while (less than 5 minute),application response become very low and takes too long time to respond for any action ,i tried to to expand recycle time(regular time interval) on IIS but seems that the problem is not from IIS at all
also i made session time out after 60 minute and likewise there is no difference.
note that:
All of my request is Ajax calls.
When i deploy the application using development Server (in visual studio) application respond normally.
could any one please suggest me where the problem is??
Its hard to say where is the problem , but first thing came in to my head
It may be possible connection are opened but not closed, In general not disposing objects.
Make sure that the database connection pool settings are correct.
You may try to check the IIS logs to see if there is any unusual response rate i.e. errors (http 500, 404, etc)
also I will suggests fetching multiple result sets in one database call , try to reduce number of round trips to the database
It may possible that you have installed so many plugins in your browsers, and they are making it slow.
These are just few tips, hope it will help.
i investigate my problem further more i guess the problem is from browser, when i deploy application using Firefox issue totally disappeared and app respond normally,when using IE or chrome problem reveal
I'm trying to implement some push technology on an app of mine. I intend to use node.js for that but I don't think it is relevant for my question. What I will do is basically long-polling to the server, and as I understand the event driven way nodejs works, I don't have to care much about the server side of the stuff.
My only worry is on the client side: after how much time will the browser stop waiting for the answer ? It is a programming question because I need to release a response before this time is spent, so that the long-polling is reloaded.
Side question : when the browser stops waiting, what answer does it give to the request ?
I have done stuff like this before, and the answer to the question is quite simple: it depends on the browser, and how the user has configured it.
In FF there is a setting somewhere in about:config that controls this (I forget what the setting is, exactly). IE's default timeout is controlled in the registry, and is documented here. I never found the answer for Chrome or Opera - I don't think it's controllable. Opera seems to give up after no data has been received for around 20 seconds, but it also seems to vary somewhat - no idea why.
I concluded that the best thing to do here is to design your architecture so the page is reloaded periodically or if your using AJAX, periodically cancel the request and start a new one (I found that 1 minute works well). Also, keep pushing little bits of data to the browser every few seconds, as this will prevent Opera from giving up. You can simply push a javascript:void(0); event to keep the connection alive but not actually do anything at the client side.
To answer your side question: Nothing. The browser simply closes the TCP connection and no further data is exchanged. How the server handles this is no longer the concern of the browser.
I am testing a comet app using the forever frame technique. The problem I am having in Firefox is that when an update command issued from firefox (using an AJAX post updating a DB which in turn triggers a DB listener to raise an event which prints the script tags to the iframes of listening clients) if there are multiple script prints, only 1 or a few of them gets processed, never all. But I can see that they are all in the iframe.
Chrome and even IE6 do not suffer from this.
But here is the real puzzler: If the update is triggered from another browser, firefox will work, even though it is the exact same content that has been printed out into the iFrame.
So to sum up: if firefox issues the ajax query causing the update, it does not process all of the script tags.
If another browser issues the ajax query, the firefox browser will process all of the tags as it should.
Any ideas?
Hope I was clear enough.
Thanks
I ran into the same issue implementing our comet solution. It apeared that firefox would only execute one script at a time. In the end I went with two iframes, one for the long polling/server push and a second one for commands being sent to the server.