We get some errors on ExecuteGet but we are unable to see anything on the returned IGetOperationResult Message or StatusCode, they are just empty. What can we do?
Sample logging after an unsuccesful ExecuteGet operation:
DataSet | getResult.Message: , getResult.StatusCode: , getResult.InnerResult.Message: , getResult.InnerResult.StatusCode:
All are empty.
We enabled logging and this is the actual error we get. Why node is marked as dead from a single timeout and how can we avoid this behavior?
2013-05-24 01:40:54.7744|ERROR|Enyim.Caching.Memcached.MemcachedNode|System.IO.IOException: Failed to read from the socket 'xxx.31.225.148:11210'. Error: TimedOut
at Enyim.Caching.Memcached.PooledSocket.BasicNetworkStream.Read(Byte buffer, Int32 offset, Int32 count)
at System.IO.BufferedStream.Read(Byte array, Int32 offset, Int32 count)
at Enyim.Caching.Memcached.PooledSocket.Read(Byte buffer, Int32 offset, Int32 count)
at Enyim.Caching.Memcached.Protocol.Binary.BinaryResponse.Read(PooledSocket socket)
at Enyim.Caching.Memcached.Protocol.Binary.BinarySingleItemOperation.ReadResponse(PooledSocket socket)
at Enyim.Caching.Memcached.MemcachedNode.ExecuteOperation(IOperation op)
2013-05-24 01:40:54.8524|WARN|Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl|Marking node xxx.31.225.148:11210 as dead
2013-05-24 01:40:54.8680|ERROR|Couchbase.CouchbasePool|Failed to initialize the pool.
I found this configuration from Enyim client at github (ThrottlingFailurePolicyFactory) in order to prevent sporadic and non-critical failures. Is it working on Couchbase .Net client? If not is it possible to be included on the next release?
<socketPool minPoolSize="50" maxPoolSize="100" receiveTimeout="00:00:10" deadTimeout="00:00:02"> <failurePolicyFactory factory="Enyim.Caching.Memcached.ThrottlingFailurePolicyFactory, Enyim.Caching" resetAfter="00:00:00.100" failureThreshold="10" /> </socketPool>
That configuration is documented for the .Net client here: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-co...
What environment are you running the server node(s) in? Have you perhaps changed any of the node(s) IPs?
1. Actually i dig on the source code and find out that this is supported already. The docs do not mention it, so update the info if possible.
2. Windows 2008 x64 machines, 2 nodes, no change on the IPs.
3. A temporary connection failure from memcache affects whole application. Node goes down without actually being down, much time without caching (by default 10 seconds), application freezes. The only solution i see is automatic failover, if you have the resources to implement it.
4. When this error (http://www.couchbase.com/issues/browse/NCBC-170) is going to be fixed? I have seen it many many times on my application but never fixed, always postponed for the next release.
© 2013 COUCHBASE All rights reserved.