Pregunta

When I try and do the below:

using (var couch = new CouchbaseClient()) {
  couch.ExecuteStore(StoreMode.Add, idList[0].Id, seralisedList[0], PersistTo.One);
}

I get

System.NullReferenceException was unhandled
  HResult=-2147467261
  Message=Object reference not set to an instance of an object.
  Source=Couchbase
  StackTrace:
       at Couchbase.CouchbasePool.Couchbase.ICouchbaseServerPool.GetVBucket(String key)
       at Couchbase.CouchbaseClient.Observe(String key, UInt64 cas, PersistTo persistTo, ReplicateTo replicateTo, ObserveKeyState persistedKeyState, ObserveKeyState replicatedState)
       at Couchbase.CouchbaseClient.ExecuteStore(StoreMode mode, String key, Object value, PersistTo persistTo, ReplicateTo replciateTo)
       at Couchbase.CouchbaseClient.ExecuteStore(StoreMode mode, String key, Object value, PersistTo persistTo)
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()

And upon examining the return value of CouchBaseClient.ExecuteGet("name1") I notice "Unable to locate node" as the Message of the GetOperationResult

  • Server OS: Ubuntu 13.10 (Hyper V)
  • Couchbase: enterprise 2.2.0
  • .NET Client: 1.3.3
  • Client OS: Win 8

Web Log: http://pastebin.com/F1v1sMWU

App.Config

<couchbase>
  <servers bucket="default" bucketPassword="">
    <add uri="http://192.168.0.48:8091/pools"/>
  </servers>
</couchbase>

Couchbase Log4Net log:

2014-02-25 09:17:01,499 [8] DEBUG Couchbase.CouchbasePool [(null)] <(null)> - Initializing Couchbase.CouchbasePool
2014-02-25 09:17:01,530 [8] DEBUG Couchbase.CouchbasePool [(null)] <(null)> - Starting Couchbase.CouchbasePool
2014-02-25 09:17:01,550 [8] DEBUG Couchbase.MessageStreamListener [(null)] <(null)> - Starting the listener. Queue=True
2014-02-25 09:17:01,553 [9] DEBUG Couchbase.MessageStreamListener [(null)] <(null)> - Started working.
2014-02-25 09:17:01,558 [9] DEBUG Couchbase.MessageStreamListener [(null)] <(null)> - Looking for the first working node.
2014-02-25 09:17:01,616 [9] DEBUG Couchbase.ConfigHelper [(null)] <(null)> - Found config for bucket default.
2014-02-25 09:17:01,617 [9] DEBUG Couchbase.MessageStreamListener [(null)] <(null)> - Resolved pool url http://192.168.0.48:8091/pools to http://192.168.0.48:8091/pools/default/bucketsStreaming/default?bucket_uuid=d8bd12df7bd818663d0fd85a200edabf
2014-02-25 09:17:01,617 [9] DEBUG Couchbase.MessageStreamListener [(null)] <(null)> - Start receiving messages.
2014-02-25 09:18:01,689 [9] DEBUG Couchbase.MessageStreamListener [(null)] <(null)> - ReadMessage failed with exception:
System.Net.WebException: The operation has timed out
   at System.Net.HttpWebRequest.GetResponse()
   at Couchbase.MessageStreamListener.ReadMessages(Uri heartBeatUrl, Uri configUrl)
   at Couchbase.MessageStreamListener.ProcessPool()
2014-02-25 09:18:01,691 [9] DEBUG Couchbase.MessageStreamListener [(null)] <(null)> - Reached the retry limit, rethrowing.
System.Net.WebException: The operation has timed out
   at System.Net.HttpWebRequest.GetResponse()
   at Couchbase.MessageStreamListener.ReadMessages(Uri heartBeatUrl, Uri configUrl)
   at Couchbase.MessageStreamListener.ProcessPool()
2014-02-25 09:18:01,698 [9] WARN  Couchbase.MessageStreamListener [(null)] <(null)> - Current node 'http://192.168.0.48:8091/pools/default/bucketsStreaming/default?bucket_uuid=d8bd12df7bd818663d0fd85a200edabf' has failed.
2014-02-25 09:18:01,698 [9] DEBUG Couchbase.MessageStreamListener [(null)] <(null)> - Looking for the first working node.
2014-02-25 09:18:01,698 [9] WARN  Couchbase.MessageStreamListener [(null)] <(null)> - Could not resolve url http://192.168.0.48:8091/pools; trying the next in the list
2014-02-25 09:18:01,698 [9] WARN  Couchbase.MessageStreamListener [(null)] <(null)> - Could not found a working node.
2014-02-25 09:18:01,698 [9] WARN  Couchbase.MessageStreamListener [(null)] <(null)> - All nodes are dead, sleeping for a while.
2014-02-25 09:18:01,699 [9] DEBUG Couchbase.BucketConfigListener [(null)] <(null)> - Everything failed in Couchbase.BucketConfigListener
2014-02-25 09:18:01,699 [9] INFO  Couchbase.CouchbasePool [(null)] <(null)> - Received new configuration.
2014-02-25 09:18:01,702 [cbp_thread] INFO  Couchbase.CouchbasePool [(null)] <(null)> - Config is empty, all nodes are down.
2014-02-25 09:18:01,702 [cbp_thread] DEBUG Couchbase.MessageStreamListener [(null)] <(null)> - Processing message: 
2014-02-25 09:18:01,704 [8] DEBUG Couchbase.CouchbasePool [(null)] <(null)> - this.state was null, returning null node for key 'book::19510ce5-f890-45e9-b05c-2a35f1b05a0c'

Upon visiting http://192.168.0.48:8091/pools/default/bucketsStreaming/default?bucket_uuid=d8bd12df7bd818663d0fd85a200edabf Nothing happens until time out. So that would seem to be the root cause.

¿Fue útil?

Solución

So the "fix" was to destroy the VM and build it again. Just uninstalling couchbase server did not seem to do the trick.

It would seem that the problem is due to DHCP / not having a static IP. Hopefully now I have reserved the DHCP lease for the VM there will be no further issues. (It broke upon IP address change this morning.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top