leeoo / spymemcached

Automatically exported from code.google.com/p/spymemcached
0 stars 0 forks source link

Fatal AssertionError: Unhandled operation type: class GetAndTouchOperationImpl that leads to client death #262

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What version of the product are you using? On what operating system?
Spymemcached 2.8.1 on Ubuntu 12.04 LTS 64 talking to Couchbase sever 1.8.1. 
community edition
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

Tell me more...
From time to time we've got an exception:
Exception in thread "Memcached IO over {MemcachedConnection to 
Ubuntu-1204-precise-64-minimal/88.198.5.203:11210}" java.lang.AssertionError: 
Unhandled operation type: class 
net.spy.memcached.protocol.binary.GetAndTouchOperationImpl
    at net.spy.memcached.ops.BaseOperationFactory.clone(BaseOperationFactory.java:82)
    at net.spy.memcached.MemcachedConnection.redistributeOperations(MemcachedConnection.java:563)
    at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:260)
    at com.couchbase.client.CouchbaseConnection.run(CouchbaseConnection.java:229)

This breaks the main loop and leads essentially to client death (unable to 
perform any further operations):
java.lang.AssertionError: IO Thread is not running.
    at net.spy.memcached.MemcachedConnection.checkState(MemcachedConnection.java:823)
    at net.spy.memcached.MemcachedConnection.enqueueOperation(MemcachedConnection.java:638)
    at net.spy.memcached.MemcachedClient.asyncGetAndTouch(MemcachedClient.java:1272)
    at net.spy.memcached.MemcachedClient.getAndTouch(MemcachedClient.java:943)
    at com.rutarget.couchbase.CouchbaseKeyValueStorageClient$7.call(CouchbaseKeyValueStorageClient.java:186)
    at com.rutarget.couchbase.CouchbaseKeyValueStorageClient$7.call(CouchbaseKeyValueStorageClient.java:183)
    at com.rutarget.couchbase.CouchbaseKeyValueStorageClient.tryOperation(CouchbaseKeyValueStorageClient.java:235)
    at com.rutarget.couchbase.CouchbaseKeyValueStorageClient.getValueCAS(CouchbaseKeyValueStorageClient.java:183)

After looking at the code it seems found that it happens when retrying a failed 
‘get and touch’ operation.

Original issue reported on code.google.com by kirill.s...@gmail.com on 12 Nov 2012 at 10:14

GoogleCodeExporter commented 9 years ago
seems to be the same for TouchOperationImpl

Original comment by kirill.s...@gmail.com on 12 Nov 2012 at 11:00

GoogleCodeExporter commented 9 years ago
This is definitely a bug and I wil try to get it in for the next release.

Original comment by mikewie...@gmail.com on 16 Nov 2012 at 1:42

GoogleCodeExporter commented 9 years ago
Hi Mike, just to check if there's any progress on this?

Original comment by clie...@rutarget.ru on 18 Sep 2013 at 8:37

GoogleCodeExporter commented 9 years ago
I will get it into 2.10.2!

Original comment by michael....@gmail.com on 16 Oct 2013 at 1:44

GoogleCodeExporter commented 9 years ago
Please see http://www.couchbase.com/issues/browse/SPY-106 for progress.

Original comment by michael....@gmail.com on 16 Oct 2013 at 1:44

GoogleCodeExporter commented 9 years ago
is in master and will be in 2.10.3

Original comment by michael....@gmail.com on 28 Nov 2013 at 11:43

GoogleCodeExporter commented 9 years ago
Thanks Michael!

Original comment by ksafo...@rutarget.ru on 28 Nov 2013 at 11:44