8

16027.8

The Chrome Network Tab in the Web Developer Tools shows that a bunch of my AJAX requests are taking 16027.8 days to complete. This is... not how long they are taking.

I can replicate this on multiple machines, and in both development and production environments. This happens for all Dojo AJAX requests that are happening onload. It doesn't happen for other webapp or 3rd party requests (like signin AJAX or facebook).

What is going on? Is our server somehow screwing this up? Is it a bug in chrome dev tools (it almost certainly is, right?), and if so, is there anything that can be done about it? It makes the visual waterfall pretty useless, as you can imagine.

Edit: Upon new information, this seems to be a common problem with IBM Websphere Commerce sites. What about the server or code could be causing this? Look here for examples:

http://www.ikea.com/us/en/catalog/categories/departments/kitchen/# http://www.lavieenrose.com/webapp/wcs/stores/servlet/LVER_10052_10001_-1 http://www.ferragamo.com/shop/en/usa

Edit 2: This issue is fixed in the newest version of Chrome.

MattDiamant
  • 8,561
  • 4
  • 37
  • 46
  • 1
    Pretty good latency for that long of a request. – Adam Jenkins Nov 20 '13 at 19:22
  • 1
    This is Chrome Version 31.0.1650.57 m on Windows 7, if that's any help. – MattDiamant Nov 20 '13 at 19:35
  • Did you try running it with all the add ons disabled in the browser? – epascarello Nov 20 '13 at 19:35
  • 1
    I just ran it again in Incognito mode (which disables extensions), and the results are the same. – MattDiamant Nov 20 '13 at 19:37
  • @MattDiamant - I'm running the same build on the same OS and I don't see any abnormalities in my dev tools. Could you post a link to the site that's giving you these results? – Adam Jenkins Nov 20 '13 at 19:41
  • I can't give out my client's site, BUT!! I found another site that uses the same framework, and the same problem occurs. http://www.ikea.com/us/en/catalog/categories/departments/kitchen/# Notice how they are having the same problem, but their AJAX isn't from Dojo. So, it must be the framework, which is Websphere Commerce. I've looked at a few more sites that use it, and most of them display this problem. – MattDiamant Nov 20 '13 at 19:47
  • The same behavior is occuring on my SharePoint sites.. and I am using jquery to make ajax calls. The same code worked great few weeks ago.. I guess is chrome dev tolls problem.. – Erik Simonic Nov 21 '13 at 20:05
  • 1
    Just realized that 16041 days ago was January 1, 1970. EPOCH FAIL. – MattDiamant Dec 04 '13 at 20:46

2 Answers2

7

This issue is not related to web framework or server. Issue affects Chrome browser version 31.0.1650.57.

Now issue is fixed and will be delivered with next stable channel update. Fix diff

If you need fix urgently, you can update to dev channel version. Instructions

See this issue for more details.

Viktor Aseev
  • 698
  • 4
  • 9
2

Very odd. Able to recreate on Chrome 31.0.1650.57 on OSX Mavericks as well. Tested w/ ikea link, noticed Chrome reported 16028.7 days, 41ms latency for resource /us/en/iows/tealium.

Charles proxy shows these headers:

HTTP/1.1 304 Not Modified
Content-Type: application/json
Last-Modified: Mon, 18 Nov 2013 18:34:51 GMT
Cache-Control: public, max-age=7200
Date: Sat, 23 Nov 2013 00:32:26 GMT
Connection: keep-alive
Vary: Accept-Encoding

The proxy app (Charles) reports no such odd time - it shows 40ms.

The lavieenrose.com link caused Chrome to report time of 16028.7 days as well... that seems to be in common. Charles shows:

HTTP/1.1 200 OK
Date: Sat, 23 Nov 2013 00:46:37 GMT
Server: IBM_HTTP_Server
Last-Modified: Tue, 19 Jun 2012 13:05:34 GMT
ETag: "5c487f-1a15-4c2d2f01a0380"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 1738
Content-Type: application/x-javascript

My conclusion is this isn't a server response or headers issue. I think this is a Chromium or WebKit dev tools issue.

Here's HEAD of the dev tools JS object that represents the http request which rendered by the Network tab:

https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/devtools/front_end/NetworkRequest.js

I'm wondering about the math in set endTime():

set endTime(x)
{
    if (this.timing && this.timing.requestTime) {
        // Check against accurate responseReceivedTime.
        this._endTime = Math.max(x, this.responseReceivedTime);
    } else {
        // Prefer endTime since it might be from the network stack.
        this._endTime = x;
        if (this._responseReceivedTime > x)
            this._responseReceivedTime = x;
    }
},

No answers just yet, but perhaps someone with more insight into what WebKit/Chromium DevTools may see this...

Scott Heaberlin
  • 3,364
  • 1
  • 23
  • 22