Problem with compression client side


#1

Hi,
I have the following problem:

I’m developping a java app that iterates over a view and evaluates every key to perform some operations with it.
Everything went smooth until the first production run where I got the follwoing:

2014-08-25 17:57:23.732 WARN net.spy.memcached.transcoders.SerializingTranscoder: Caught IOException decoding 1884 bytes of data
java.io.StreamCorruptedException: invalid stream header: 613A323A
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.(Unknown Source)
at net.spy.memcached.transcoders.BaseSerializingTranscoder.deserialize(BaseSerializingTranscoder.java:128)
at net.spy.memcached.transcoders.SerializingTranscoder.decode(SerializingTranscoder.java:88)
at net.spy.memcached.transcoders.TranscodeService$1.call(TranscodeService.java:63)
at java.util.concurrent.FutureTask.run(Unknown Source)
at net.spy.memcached.transcoders.TranscodeService$Task.run(TranscodeService.java:110)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception in thread “main” java.lang.RuntimeException: Timed out waiting for operation
at com.couchbase.client.internal.HttpFuture.get(HttpFuture.java:75)
at com.couchbase.client.CouchbaseClient.query(CouchbaseClient.java:781)
at memCache.Exec.main(Exec.java:43)
Caused by: net.spy.memcached.internal.CheckedOperationTimeoutException: Operation timed out. - failing nodes: 10.10.0.39/10.10.0.39:11210, 10.10.0.37/10.10.0.37:11210, 10.10.0.38/10.10.0.38:11210
at net.spy.memcached.internal.BulkGetFuture.get(BulkGetFuture.java:127)
at net.spy.memcached.internal.BulkGetFuture.get(BulkGetFuture.java:52)
at com.couchbase.client.internal.ViewFuture.get(ViewFuture.java:72)
at com.couchbase.client.internal.ViewFuture.get(ViewFuture.java:50)
at com.couchbase.client.internal.HttpFuture.get(HttpFuture.java:72)
… 2 more

I can’t change the way that the keys are stored, but I know they are using the following PHP client to do so:

memcached
memcached support enabled
Version 2.2.0
libmemcached version 1.0.18
SASL support no
Session support yes
igbinary support no
json support no
msgpack support no

Directive Local Value Master Value
memcached.compression_factor 1.3 1.3
memcached.compression_threshold 2000 2000
memcached.compression_type fastlz fastlz
memcached.serializer php php
memcached.sess_binary 0 0
memcached.sess_connect_timeout 1000 1000
memcached.sess_consistent_hash 0 0
memcached.sess_lock_expire 0 0
memcached.sess_lock_max_wait 0 0
memcached.sess_lock_wait 150000 150000
memcached.sess_locking 1 1
memcached.sess_number_of_replicas 0 0
memcached.sess_prefix memc.sess.key. memc.sess.key.
memcached.sess_randomize_replica_read 0 0
memcached.sess_remove_failed 0 0
memcached.store_retry_count 2 2

Java is using the following artifact:

	<dependency>
	    <groupId>com.couchbase.client</groupId>
	    <artifactId>couchbase-client</artifactId>
	    <version>1.4.4</version>
	</dependency>

Any ideas?