[
https://issues.apache.org/jira/browse/WAVE-312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13432684#comment-13432684
]
Yuri Zelikov commented on WAVE-312:
-----------------------------------
It seems to be an issue with the browser closing the websocket. And then
Socket.IO tries to write the socket - but fails. The websocket is closed with
error 1006. This error is called CLOSE_ABNORMAL and described as follows
(MDN/RFC 6455):
Reserved. Used to indicate that a connection was closed abnormally (that is,
with no close frame being sent) when a status code is expected.
Anyway, I don't know what can cause the issue, but the problem is related to
websockets - possibly for the browsers websocket implementations. Maybe the
issue happens only on some (older?) browsers. We can try to reproduce the
problem and watch if some JS errors are displayed in the browser console.
-------------------
INFO: websocket disconnected (1006 - closed):
org.waveprotocol.box.server.rpc.WebSocketServerChannel@77952afd
...
Jul 26, 2012 11:41:53 AM org.waveprotocol.box.server.rpc.WebSocketChannel
sendMessage
WARNING: Failed to transmit message on socket, sequence number 10, message
java.io.IOException: Connection reset by peer
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:292)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.flush(SelectChannelEndPoint.java:344)
------------------
---------------
INFO: Submit to [WaveletName
waveinabox.net/w+gY-qNfER1lA/waveinabox.net/conv+root] by [email protected]
@ 262 with 2 ops
Jul 29, 2012 9:35:40 AM org.waveprotocol.box.server.rpc.WebSocketChannel
sendMessage
WARNING: Failed to transmit message on socket, sequence number 1, message
wavelet_name: "waveinabox.net/w+gY-qNfER1lA/~/conv+root"
applied_delta {
hashed_version {
version: 262
history_hash: ""
}
author: "[email protected]"
operation {
mutate_document {
document_id: "conversation"
document_operation {
component {
retain_item_count: 9
}
component {
element_start {
type: "blip"
attribute {
key: "id"
value: "b+dKyEpzt2jTA"
}
}
}
component {
element_end: true
}
component {
retain_item_count: 1
}
}
}
}
operation {
mutate_document {
document_id: "b+dKyEpzt2jTA"
document_operation {
component {
annotation_boundary {
change {
key: "user/d/dKyEpzt2jT"
new_value: "[email protected],1343554540345,"
}
}
}
component {
retain_item_count: 3
}
component {
annotation_boundary {
change {
key: "user/e/dKyEpzt2jT"
new_value: "[email protected]"
}
}
}
component {
retain_item_count: 1
}
component {
annotation_boundary {
end: "user/d/dKyEpzt2jT"
end: "user/e/dKyEpzt2jT"
}
}
}
}
}
}
resulting_version {
version: 264
history_hash: "\370\2045\206(lF\230\334sX\024\230\356\324\301\030\220h\221"
}
channel_id: "ch1015"
com.glines.socketio.common.SocketIOException: org.eclipse.jetty.io.EofException
at
com.glines.socketio.server.transport.jetty.JettyContinuationTransportHandler.sendMessage(JettyContinuationTransportHandler.java:160)
at
com.glines.socketio.server.transport.jetty.JettyContinuationTransportHandler.sendMessage(JettyContinuationTransportHandler.java:194)
at
com.glines.socketio.server.transport.jetty.JettyContinuationTransportHandler.sendMessage(JettyContinuationTransportHandler.java:186)
at
org.waveprotocol.box.server.rpc.SocketIOServerChannel.sendMessageString(SocketIOServerChannel.java:97)
at
org.waveprotocol.box.server.rpc.WebSocketChannel.sendMessage(WebSocketChannel.java:143)
at
org.waveprotocol.box.server.rpc.ServerRpcProvider$SocketIOConnection.sendMessage(ServerRpcProvider.java:173)
at
org.waveprotocol.box.server.rpc.ServerRpcProvider$Connection$1.run(ServerRpcProvider.java:276)
at
org.waveprotocol.box.server.rpc.ServerRpcProvider$Connection$1.run(ServerRpcProvider.java:262)
at
org.waveprotocol.box.server.rpc.ServerRpcControllerImpl$1.run(ServerRpcControllerImpl.java:191)
at
org.waveprotocol.box.server.rpc.ServerRpcControllerImpl$1.run(ServerRpcControllerImpl.java:166)
at
org.waveprotocol.box.server.frontend.WaveClientRpcImpl$1.onUpdate(WaveClientRpcImpl.java:141)
at
org.waveprotocol.box.server.frontend.WaveViewSubscription.sendUpdate(WaveViewSubscription.java:191)
at
org.waveprotocol.box.server.frontend.WaveViewSubscription.onUpdate(WaveViewSubscription.java:149)
at
org.waveprotocol.box.server.frontend.UserManager.onUpdate(UserManager.java:76)
at
org.waveprotocol.box.server.frontend.ClientFrontendImpl.participantUpdate(ClientFrontendImpl.java:235)
at
org.waveprotocol.box.server.frontend.ClientFrontendImpl.waveletUpdate(ClientFrontendImpl.java:280)
at
org.waveprotocol.box.server.waveserver.WaveletNotificationDispatcher.waveletUpdate(WaveletNotificationDispatcher.java:125)
at
org.waveprotocol.box.server.waveserver.WaveletContainerImpl.notifyOfDeltas(WaveletContainerImpl.java:181)
at
org.waveprotocol.box.server.waveserver.LocalWaveletContainerImpl.submitRequest(LocalWaveletContainerImpl.java:107)
at
org.waveprotocol.box.server.waveserver.WaveServerImpl.submitDelta(WaveServerImpl.java:542)
at
org.waveprotocol.box.server.waveserver.WaveServerImpl.submitRequest(WaveServerImpl.java:344)
at
org.waveprotocol.box.server.frontend.ClientFrontendImpl.submitRequest(ClientFrontendImpl.java:194)
at
org.waveprotocol.box.server.frontend.WaveClientRpcImpl.submit(WaveClientRpcImpl.java:164)
at
org.waveprotocol.box.common.comms.WaveClientRpc$ProtocolWaveClientRpc$1.submit(WaveClientRpc.java:4459)
at
org.waveprotocol.box.common.comms.WaveClientRpc$ProtocolWaveClientRpc.callMethod(WaveClientRpc.java:4589)
at
org.waveprotocol.box.server.rpc.ServerRpcControllerImpl.run(ServerRpcControllerImpl.java:200)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
Caused by: org.eclipse.jetty.io.EofException
at
org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:939)
at
org.eclipse.jetty.server.AbstractHttpConnection.flushResponse(AbstractHttpConnection.java:618)
at org.eclipse.jetty.server.Response.flushBuffer(Response.java:1025)
at
com.glines.socketio.server.transport.XHRMultipartDataHandler.onWriteData(XHRMultipartDataHandler.java:94)
at
com.glines.socketio.server.transport.jetty.ConnectionTimeoutPreventerDataHandler.onWriteData(ConnectionTimeoutPreventerDataHandler.java:77)
at
com.glines.socketio.server.transport.jetty.JettyContinuationTransportHandler.sendMessage(JettyContinuationTransportHandler.java:158)
... 28 more
Caused by: java.io.IOException: Broken pipe
-----------------------------------------------------------
> Not saving editions when concurrent editions in same wave
> ---------------------------------------------------------
>
> Key: WAVE-312
> URL: https://issues.apache.org/jira/browse/WAVE-312
> Project: Wave
> Issue Type: Bug
> Components: Web Client
> Environment: Tried in http://waveinabox.net and http://kune.cc
> Reporter: Samer
> Labels: bug, concurrency, edit,, editor,, persistence
> Attachments: fixWave-312.patch, raw-nullpointer.log.xz
>
>
> - Alice: begins editing a blip of a wave. She needs to write a long paragraph.
> - Bob: begins editing a while after Alice, in another blip in the same wave.
> - Alice doesn't see that Bob is writing, nothing new appears
> - Alice finishes editing her wave and moves to another wave.
> - Bobs finishes editing that wave and moves to another wave.
> - When Alice comes back to the same wave, she sees her edition was not fully
> saved. It saved only until the instant that Bob began editing.
> - When Bob comes back to the wave, he sees nothing of what he wrote was saved.
> Sometimes it shows the mysterious delta error from:
> http://www.mail-archive.com/[email protected]/msg02036.html
> https://issues.apache.org/jira/browse/WAVE-307
> but other times it shows nothing on the log, so don't know if it's directly
> related or just chance.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira