latos / wave-protocol

Automatically exported from code.google.com/p/wave-protocol
0 stars 0 forks source link

Wavelet versions get stuck on wave server when concurrent activity occurs #118

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Open a wave on two clients,
2. Have both clients submit deltas concurrently
3. Eventually, the server will start rejecting deltas, due to server-side 
exceptions like:

java.lang.IllegalStateException: Expected deltas starting at version 
203:8zZxYkBAqF9BgDcY46hIw1xIJNs=, got 210
        at com.google.common.base.Preconditions.checkState(Preconditions.java:172)
        at org.waveprotocol.box.server.frontend.ClientFrontendImpl.waveletUpdate(ClientFrontendImpl.java:347)
        at org.waveprotocol.box.server.waveserver.WaveBusDispatcher.waveletUpdate(WaveBusDispatcher.java:51)
        at org.waveprotocol.box.server.waveserver.WaveServerImpl.submitDelta(WaveServerImpl.java:633)
        at org.waveprotocol.box.server.waveserver.WaveServerImpl.submitRequest(WaveServerImpl.java:412)
        at org.waveprotocol.box.server.frontend.ClientFrontendImpl.submitRequest(ClientFrontendImpl.java:238)
        at org.waveprotocol.box.server.frontend.WaveClientRpcImpl.submit(WaveClientRpcImpl.java:152)
        at org.waveprotocol.box.server.waveserver.WaveClientRpc$ProtocolWaveClientRpc$1.submit(WaveClientRpc.java:3921)
        at org.waveprotocol.box.server.waveserver.WaveClientRpc$ProtocolWaveClientRpc.callMethod(WaveClientRpc.java:4032)
        at org.waveprotocol.box.server.rpc.ServerRpcController.run(ServerRpcController.java:199)
        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:636)

After that point, the wave is permanently broken.  When reloading that wave in 
a fresh client session, the client is sent snapshots at some version (210 in 
this example), but delta submissions against version 210 fail, because the 
server is expecting version 203 for some reason.

Original issue reported on code.google.com by hearn...@google.com on 18 Oct 2010 at 8:04

GoogleCodeExporter commented 8 years ago
Fixed in 
http://code.google.com/p/wave-protocol/source/detail?r=3090140ae3bd8e667ea361040
1210765eeaa176c

Original comment by ano...@google.com on 20 Oct 2010 at 7:26