I discovered some errors related to Socket.IO in waveinabox.net server log
and would like to report them. They all seem to be connected with Firefox
socket connection.

The first error looks like this:

643:DBUG::REQUEST /socket.io/xhr-multipart/ on
org.eclipse.jetty.server.nio.SelectChannelConnector$2@1534742
2011-04-27
13:57:05.643:DBUG::sessionManager=org.eclipse.jetty.server.session.HashSessionManager@691714
2011-04-27 13:57:05.644:DBUG::session=null
2011-04-27 13:57:05.644:DBUG::servlet=default
2011-04-27 13:57:05.644:DBUG::servlet holder= default
2011-04-27 13:57:05.644:DBUG::chain=
com.google.inject.servlet.GuiceFilter-28640766->default
2011-04-27 13:57:05.644:DBUG::call filter
com.google.inject.servlet.GuiceFilter-28640766
2011-04-27 13:57:05.644:WARN::Committed before 404 null
2011-04-27 13:57:05.644:WARN::/socket.io/xhr-multipart/
java.lang.IllegalStateException: Committed
at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1052)
at org.eclipse.jetty.server.Response.sendError(Response.java:270)
at org.eclipse.jetty.server.Response.sendError(Response.java:372)
at
com.glines.socketio.server.transport.XHRTransport$XHRSessionHelper.handle(XHRTransport.java:137)
at
com.glines.socketio.server.transport.AbstractHttpTransport.handle(AbstractHttpTransport.java:90)
at
com.glines.socketio.server.SocketIOServlet.service(SocketIOServlet.java:123)
at
com.glines.socketio.server.SocketIOServlet.service(SocketIOServlet.java:91)
at
org.waveprotocol.box.server.rpc.ServerRpcProvider$WaveSocketIOServlet.service(ServerRpcProvider.java:536)

If we inspect the line 536 at ServerRpcProvider we can see that it happens
in the service(ServletRequest req, ServletResponse res) method (which I
think is related to XHR requests, is it correct?). To test this suggestion I
tried to login using Forefox - it couldn't load the Wave Panel, even that
Chrome could load it (with some delay).

The second error looked like this:
[FKlmOuIJJsaW0gJslXON]: writeData(START): ~1~14~FKlmOuIJJsaW0gJslXON
2011-04-27 20:18:56.464:DBUG::RESPONSE /search/  200
2011-04-27 20:18:56.464:DBUG::EOF org.eclipse.jetty.io.EofException
2011-04-27 20:18:56.944:DBUG::EXCEPTION
org.eclipse.jetty.io.EofException
at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:905)
at
org.eclipse.jetty.server.HttpConnection.flushResponse(HttpConnection.java:757)
at org.eclipse.jetty.server.Response.flushBuffer(Response.java:982)
at
com.glines.socketio.server.transport.XHRPollingTransport$XHRPollingSessionHelper.writeData(XHRPollingTransport.java:51)
at
com.glines.socketio.server.transport.XHRPollingTransport$XHRPollingSessionHelper.customConnect(XHRPollingTransport.java:60)
at
com.glines.socketio.server.transport.XHRTransport$XHRSessionHelper.connect(XHRTransport.java:323)
at
com.glines.socketio.server.transport.XHRTransport.connect(XHRTransport.java:384)
at
com.glines.socketio.server.transport.AbstractHttpTransport.handle(AbstractHttpTransport.java:97)

And then:
java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:122)
at sun.nio.ch.IOUtil.write(IOUtil.java:78)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:352)
at org.eclipse.jetty.io.nio.ChannelEndPoint.flush(ChannelEndPoint.java:187)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.flush(SelectChannelEndPoint.java:273)
at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:849)
at
org.eclipse.jetty.server.HttpConnection.flushResponse(HttpConnection.java:757)
at org.eclipse.jetty.server.Response.flushBuffer(Response.java:982)
at
com.glines.socketio.server.transport.XHRPollingTransport$XHRPollingSessionHelper.writeData(XHRPollingTransport.java:51)
at
com.glines.socketio.server.transport.XHRPollingTransport$XHRPollingSessionHelper.customConnect(XHRPollingTransport.java:60)
at
com.glines.socketio.server.transport.XHRTransport$XHRSessionHelper.connect(XHRTransport.java:323)
at
com.glines.socketio.server.transport.XHRTransport.connect(XHRTransport.java:384)

Both exceptions seem to be related with buffer handling for XHR requests. I
think that this error caused the server to stop responding (the CPU was at
100% too). The errors usually happen at relatively high load (about 6-10
logged in users).

Every advice on how to solve it would be welcome!
Thanks
Yuri.

Reply via email to