Atmosphere/atmosphere — Issue #145: Constant connection attempts made by GWT-Atmosphere client when using IE with Google Chrome Frame
Author: fahim-a
Created: 2012-01-13 14:27:02+00:00
State: open

First off, we're using GWT 2.4 and I've tried various Atmosphere
releases (0.7.2, 0.8.1, and the Dec 15 0.8.2 snapshots) all seemingly
with the same results. Long story short, our users are stuck using IE8
and we've recommended that they use ChromeFrame as well.

I've included some additional logs below, but I'd first like to
discuss some of the symptoms I've been seeing:
* The atmosphere client is repeatedly running into errors (timeouts,
unexpected failures, statusCodeException 0's etc. etc.)
* IE8 with ChromeFrame is pretty hard hit; from the Chrome Dev tools I
see a handful of HTTP GET's are fired off and *seemingly* the # of
HTTP connections becomes saturated rendering the rest of my app
painfully slow if not useless
* Firefox 8 / Chrome 16 does not appear to be affected at all

We were previously on 0.6.3 of the atmosphere libraries where things
were working fine(?), but decided to update GWT and hence upgrade
atmosphere as well.

I'm tempted to think this is IE specific and when I saw
https://github.com/Atmosphere/atmosphere/issues/85 so I decided to try
the Dec 15th 0.8.2 snapshot but with no luck.

Here's a snippet of the logs I'm seeing at the client level
(CometSingletonClient is just my own dumb wrapper around
AtmosphereClient)

Fri Dec 16 14:13:08 GMT-500 2011 com.nic.gwt.nsnic.NIC
FINE: com.nic.gwt.core.client.general.CometSingletonClient
Added listener for sessionTerminate

Fri Dec 16 14:13:08 GMT-500 2011 com.nic.gwt.nsnic.NIC
INFO: com.nic.gwt.core.client.general.CometSingletonClient
CometSingletonClient start CometSingletonClient
[getBroadcastId()=CometSingletonClientBroadcastId,
getConnectionId()=0]

Fri Dec 16 14:13:09 GMT-500 2011 com.nic.gwt.nsnic.NIC
FINE: com.nic.gwt.core.client.general.CometSingletonClient
Added listener for auditbleNEUpdate

Fri Dec 16 14:13:09 GMT-500 2011 com.nic.gwt.nsnic.NIC
FINE: com.nic.gwt.core.client.general.CometSingletonClient
Added listener for bulkAuditUpdate

Fri Dec 16 14:13:09 GMT-500 2011 com.nic.gwt.nsnic.NIC
FINE: com.nic.gwt.core.client.general.CometSingletonClient
Added listener for bulkNEAuditUpdate

Fri Dec 16 14:13:18 GMT-500 2011 com.nic.gwt.nsnic.NIC
SEVERE: com.nic.gwt.core.client.general.CometSingletonClient
CometSingletonClient handleError CometSingletonClient
[ getBroadcastId()=CometSingletonClientBroadcastId,
getConnectionId()=0]
org.atmosphere.gwt.client.TimeoutException: http://nic-373:7001/nsnic/cometServlet
timeout has expired after 10000ms
at Unknown.u1b(StackTraceCreator.java:168)
at Unknown.b0b(StackTraceCreator.java:421)
at Unknown.vjh(TimeoutException.java:38)
at Unknown.Qih(AtmosphereClient.java:535)
at Unknown.Jk(Timer.java:149)
at Unknown.anonymous(Timer.java:68)
at Unknown.Q0b(Impl.java:168)
at Unknown.T0b(Impl.java:213)
at Unknown.anonymous(Impl.java:57)

Fri Dec 16 14:13:23 GMT-500 2011 com.nic.gwt.nsnic.NIC
INFO: com.nic.gwt.core.client.general.CometSingletonClient
CometSingletonClient handleDisconnect CometSingletonClient
[getBroadcastId()=CometSingletonClientBroadcastId,
getConnectionId()=0]

Fri Dec 16 14:13:23 GMT-500 2011 com.nic.gwt.nsnic.NIC
SEVERE: com.nic.gwt.core.client.general.CometSingletonClient
CometSingletonClient handleError CometSingletonClient
[getBroadcastId()=CometSingletonClientBroadcastId,
getConnectionId()=0]
org.atmosphere.gwt.client.AtmosphereClientException: Unexpected
disconnection
at Unknown.u1b(StackTraceCreator.java:168)
at Unknown.b0b(StackTraceCreator.java:421)
at Unknown.h0b(Exception.java:29)
at Unknown.pjh(AtmosphereClientException.java:46)
at Unknown.tkh(StreamingProtocolTransport.java:74)
at Unknown.xkh(HTTPRequestCometTransport.java:204)
at Unknown.Nkh(HTTPRequestCometTransport.java:131)
at Unknown.anonymous(XMLHttpRequest.java:287)
at Unknown.Q0b(Impl.java:168)
at Unknown.T0b(Impl.java:213)
at Unknown.anonymous(Impl.java:57)
at Unknown.Rkh(HTTPRequestCometTransport.java:177)
at Unknown.Jk(Timer.java:149)
at Unknown.anonymous(Timer.java:68)
at Unknown.Q0b(Impl.java:168)
at Unknown.T0b(Impl.java:213)
at Unknown.anonymous(Impl.java:57)

Which then seems to keep going on an on forever eventually saturating all HTTP connections and rendering our application useless.

atmosphere.xml:

web.xml snippet:

cometServlet
org.atmosphere.cpr.AtmosphereServlet

org.atmosphere.disableOnStateEvent
true

1