[NCBC-614] Review and reduce verbosity of logging in INFO mode Created: 28/Aug/14  Updated: 31/Oct/14  Resolved: 31/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.8
Fix Version/s: 1.3.10

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency

 Comments   
Comment by Jeff Morris [ 31/Oct/14 ]
http://review.couchbase.org/#/c/42682/




[NCBC-643] TimeSpan expiration under 1 sec results in an infinite timeout Created: 16/Sep/14  Updated: 31/Oct/14  Resolved: 31/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: 1.3.6
Fix Version/s: 1.3.10

Type: Bug Priority: Major
Reporter: Jeff Dillon Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Starting in 1.3.6, when setting the TimeSpan expiration to less than 1 sec it appears to now round down to 0 which implies an infinite timeout. This does not currently have direct production impact, but this changed behavior broke the testing process for the customer.

From the customer:

"There looks to be 2 options to specify timeouts in .NET SDK, either with DateTime or with TimeSpan. Both of them technically allow users to specify timeouts with just a fraction of a second, even though internally Couchbase works with full seconds.

Example:
var result1 = client.ExecuteStore(StoreMode.Set, "a", 1, DateTime.UtcNow.AddMilliseconds(500));
var result2 = client.ExecuteStore(StoreMode.Set, "b", 1, TimeSpan.FromMilliseconds(500));

Behavior for first method remains unchanged. The DateTime value will get recalculated into UNIX time and rounded down to full seconds. The key "a" will then be stored in Couchbase with expiration equal to current time and will expire almost instantly. That is pretty much in line with what user intended.

The problem is with the second method. In .NET SDK 1.3.5 this TimeSpan value would get recalculated into a UNIX time the same way as DateTime and result in the same behavior. But NCBC-485 changed this. From .NET SDK 1.3.6 this TimeSpan is passed into Couchbase as raw seconds. You trim the 0.5 second value down to 0 seconds and Couchbase server then interprets this as infinite timeout. But that is the complete opposite of what user actually intended."

A fix suggestion is as follows:

https://github.com/couchbase/couchbase-net-client/blob/release13/src/Enyim.Caching/MemcachedClient.cs
line 1046 should be modified to:
if (TimeSpan.FromSeconds(1) <= validFor && validFor < TimeSpan.FromSeconds(((60 * 60) * 24) * 30))

 Comments   
Comment by Jeff Morris [ 31/Oct/14 ]
Jeff -

Thanks for the in-depth description and fix suggestion (which works). You can see the code in gerrit while it's being reviewed: http://review.couchbase.org/#/c/42680/

If you have a gerrit account and want to help or comment on the review, send me your username.

Thanks,

Jeff




[NCBC-707] Return timeout if NMV replies exceed threshold Created: 30/Oct/14  Updated: 31/Oct/14  Resolved: 30/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Jeff Morris [ 30/Oct/14 ]
http://review.couchbase.org/#/c/42641/
Comment by Matt Ingenthron [ 31/Oct/14 ]
Not directly related to this commit, but do we think the retry threshold is right since it came up in those tests?
Comment by Jeff Morris [ 31/Oct/14 ]
Not sure; maybe something we should monitor and then make a decision on once we have a better idea of what the threshold should be?
Comment by Matt Ingenthron [ 31/Oct/14 ]
I guess my thought is the threshold is too low if during our situational test rebalance we'll see timeouts. The problem is fast-retrying for more times isn't necessarily better but may be okay for the shortest term.




[NCBC-584] GetVBucket throws not implemented exception. Created: 14/Aug/14  Updated: 31/Oct/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.8
Fix Version/s: backlog-1.0

Type: Bug Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
From Q&A: http://www.couchbase.com/communities/jp/q-and-a/weird-error
Weird Error

Hi Everyone,

Thanks in advance for the help. I have been getting the following error periodically.

GetVBucket is implemented only for VBucketNodeLocator implementation of IMemcachedNodeLocator

I am using couchbase as a session state offload and a caching utility.

The conditions under which I was receiving this error are as follows:

Couchbase 2.5.1 enterprise.
2 node system
when I am calling the following method:

var answer = _couchBaseClient.KeyExists("Key_Name");

For some reason the KeyExists method throws this error.

I am running this code in a two IIS server environment. The error essentially prevents the site from being usable.

I was able to remove this error but one of the two ways (neither of which is preferable to me):

removing the use of the KeyExists method which I don't want to do.
remove 1 node of my 2 node setup which makes fail over not possible.....again something I don't want to do.

So my question(s) is:

What I am doing wrong?
Configuration Issue?
Not best practice?

Thanks,
- See more at: http://www.couchbase.com/communities/jp/q-and-a/weird-error#sthash.cMQqY9An.Ytj2AA3q.dpuf

 Comments   
Comment by Jeff Morris [ 31/Oct/14 ]
I can't replicate this. If somebody has a code snippet or a better understanding of the steps to reproduce, please post them or an example project/code.

-Jeff




[NCBC-621] IRI Parsing error when bootstrapping on mono Created: 05/Sep/14  Updated: 31/Oct/14  Resolved: 31/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: 1.3.9
Fix Version/s: 1.3.10

Type: Bug Priority: Minor
Reporter: Michael Nitschinger Assignee: Jeff Morris
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates to
relates to NCBC-577 SDK 1.3.8 doesn't support uuid with b... Closed

 Description   
Hey Jeff,

I tried the 1.3.9 one on mono, but there appears to be a weird issue. I use the 4.5 compat mode with 1.3.9, but also tried 4.0. Anyways, it seems to bootstrap and doesn't complain in general, but it fails when working on the URI extensions.

Maybe this is something easy to fix or we just dont support mono here? I've attached the logs.



 Comments   
Comment by Michael Nitschinger [ 05/Sep/14 ]
Last login: Fri Sep 5 11:10:52 on ttys001
clear; cd "/Users/michaelnitschinger/dotnet/cbworld/cbworld/cbworld/bin/Debug"; export PKG_CONFIG_PATH="/Library/Frameworks/Mono.framework/Versions/3.8.0/share/pkgconfig:/Library/Frameworks/Mono.framework/Versions/3.8.0/lib/pkgconfig"; export PKG_CONFIG_LIBDIR=""; export PATH="/Applications/Xamarin Studio.app/Contents/MacOS:/usr/bin:/bin:/usr/sbin:/sbin"; export MONO_GAC_PREFIX="/Applications/Xamarin Studio.app/Contents/MacOS"; export XBUILD_FRAMEWORK_FOLDERS_PATH=""; "/Library/Frameworks/Mono.framework/Versions/3.8.0/bin/mono" --debug "/Users/michaelnitschinger/dotnet/cbworld/cbworld/cbworld/bin/Debug/cbworld.exe" ; echo; read -p 'Press any key to continue...' -n1; exit
┌─[michael@daschlbase]─[~]
└──╼ clear; cd "/Users/michaelnitschinger/dotnet/cbworld/cbworld/cbworld/bin/Debug"; export PKG_CONFIG_PATH="/Library/Frameworks/Mono.framework/Versions/3.8.0/share/pkgconfig:/Library/Frameworks/Mono.framework/Versions/3.8.0/lib/pkgconfig"; export PKG_CONFIG_LIBDIR=""; export PATH="/Applications/Xamarin Studio.app/Contents/MacOS:/usr/bin:/bin:/usr/sbin:/sbin"; export MONO_GAC_PREFIX="/Applications/Xamarin Studio.app/Contents/MacOS"; export XBUILD_FRAMEWORK_FOLDERS_PATH=""; "/Library/Frameworks/Mono.framework/Versions/3.8.0/bin/mono" --debug "/Users/michaelnitschinger/dotnet/cbworld/cbworld/cbworld/bin/Debug/cbworld.exe" ; echo; read -p 'Press any key to continue...' -n1; exit




DEBUG [1] (:0) - Initializing Couchbase.CouchbasePool
 WARN [1] (:0) - Creating new client. CID: c5e9ddd2-b6bd-4d47-b72b-8e4bc486f26e CouchbaseClient
 WARN [1] (:0) - Starting Couchbase.CouchbasePool
 WARN [1] (:0) - Starting the listener. Queue=True
 WARN [Threadpool worker] (:0) - Started working.
 WARN [Threadpool worker] (:0) - Looking for the first working node.
DEBUG [Threadpool worker] (:0) - Found config for bucket default.
 WARN [Threadpool worker] (:0) - Resolved pool url http://127.0.0.1:8091/pools to http://127.0.0.1:8091/pools/default/bucketsStreaming/default?bucket_uuid=56d89e666ebf2e54ccb952e114c79f96
 WARN [Threadpool worker] (:0) - Start receiving messages.
 INFO [Threadpool worker] (:0) - Received new configuration.
 INFO [Threadpool worker] (:0) - Has vbucket. Server count: 1
DEBUG [Threadpool worker] (:0) - Found address 127.0.0.1 for 127.0.0.1
DEBUG [Threadpool worker] (:0) - Using address 127.0.0.1 for 127.0.0.1
 WARN [Threadpool worker] (:0) - Creating node Couchbase.CouchbasePool
ERROR [Threadpool worker] (:0) - Failed to initialize the pool.
System.MissingFieldException: Cannot find variable s_IriParsing.
  at System.MonoType.InvokeMember (System.String name, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object target, System.Object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, System.String[] namedParameters) [0x00549] in /Volumes/build-root-ramdisk/mono-3.8.0/mcs/class/corlib/System/MonoType.cs:518
  at System.Type.InvokeMember (System.String name, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object target, System.Object[] args) [0x00000] in /Volumes/build-root-ramdisk/mono-3.8.0/mcs/class/corlib/System/Type.cs:1411
  at Couchbase.Extensions.UriExtensions.EnableIriParsing (System.Uri uri, Boolean enable) [0x00000] in <filename unknown>:0
  at Couchbase.CouchbasePool.CreateNode (System.Net.IPEndPoint endpoint, ISaslAuthenticationProvider auth, System.Collections.Generic.Dictionary`2 nodeInfo) [0x00000] in <filename unknown>:0
  at Couchbase.CouchbasePool.InitVBucket (Couchbase.Configuration.ClusterConfig config, ISaslAuthenticationProvider auth) [0x00000] in <filename unknown>:0
  at Couchbase.CouchbasePool.ReconfigurePool (Couchbase.Configuration.ClusterConfig config) [0x00000] in <filename unknown>:0
 WARN [Threadpool worker] (:0) - Processing message: {"name":"default","bucketType":"membase","authType":"sasl","saslPassword":"","proxyPort":0,"replicaIndex":false,"uri":"/pools/default/buckets/default?bucket_uuid=56d89e666ebf2e54ccb952e114c79f96","streamingUri":"/pools/default/bucketsStreaming/default?bucket_uuid=56d89e666ebf2e54ccb952e114c79f96","localRandomKeyUri":"/pools/default/buckets/default/localRandomKey","controllers":{"flush":"/pools/default/buckets/default/controller/doFlush","compactAll":"/pools/default/buckets/default/controller/compactBucket","compactDB":"/pools/default/buckets/default/controller/compactDatabases","purgeDeletes":"/pools/default/buckets/default/controller/unsafePurgeBucket","startRecovery":"/pools/default/buckets/default/controller/startRecovery"},"nodes":[{"couchApiBaseHTTPS":"https://127.0.0.1:18092/default%2B56d89e666ebf2e54ccb952e114c79f96","couchApiBase":"http://127.0.0.1:8092/default%2B56d89e666ebf2e54ccb952e114c79f96","replication":1,"clusterMembership":"active","recoveryType":"none","status":"healthy","otpNode":"ns_1@127.0.0.1","thisNode":true,"hostname":"127.0.0.1:8091","clusterCompatibility":196608,"version":"3.0.0-1118-rel-enterprise","os":"x86_64-apple-darwin10.8.0","ports":{"sslProxy":11214,"httpsMgmt":18091,"httpsCAPI":18092,"proxy":11211,"direct":11210}}],"stats":{"uri":"/pools/default/buckets/default/stats","directoryURI":"/pools/default/buckets/default/statsDirectory","nodeStatsListURI":"/pools/default/buckets/default/nodes"},"ddocs":{"uri":"/pools/default/buckets/default/ddocs"},"nodeLocator":"vbucket","fastWarmupSettings":false,"autoCompactionSettings":false,"uuid":"56d89e666ebf2e54ccb952e114c79f96","vBucketServerMap":{"hashAlgorithm":"CRC","numReplicas":0,"serverList":["127.0.0.1:11210"],"vBucketMap":[[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0]]},"bucketCapabilitiesVer":"","bucketCapabilities":["cbhello","touch","couchapi","cccp"]}
 INFO [1] (:0) - CID Config: c5e9ddd2-b6bd-4d47-b72b-8e4bc486f26e {"Servers":{"Bucket":"default","BucketPassword":"","Username":"","Password":"","Urls":[{"Uri":"http://127.0.0.1:8091/pools"}],"Port":1,"RetryCount":0,"RetryTimeout":"00:00:02","ObserveTimeout":"00:01:00","HttpRequestTimeout":"00:01:00","VBucketRetryCount":2,"ViewRetryCount":2},"SocketPool":{"MinPoolSize":10,"MaxPoolSize":20,"ConnectionTimeout":"00:00:10","QueueTimeout":"00:00:02.5000000","ReceiveTimeout":"00:00:10","DeadTimeout":"00:00:02","FailurePolicyFactory":{"Type":null,"Factory":null,"Content":{"Content":null}},"LingerTime":"00:00:10","LingerEnabled":false},"HeartbeatMonitor":{"Uri":"","Interval":10000,"Enabled":true},"HttpClient":{"InitializeConnection":true,"Timeout":"00:01:15"},"NodeLocator":{"Type":null,"Factory":null,"Content":{"Content":null}},"KeyTransformer":{"Type":null,"Factory":null,"Content":{"Content":null}},"Transcoder":{"Type":null,"Factory":null,"Content":{"Content":null}},"PerformanceMonitorFactory":{"Factory":null},"DocumentNameTransformer":{"Type":"Couchbase.Configuration.ProductionModeNameTransformer, Couchbase, Version=1.3.9.0, Culture=neutral, PublicKeyToken=05e9c6b5a9ec94c2","Factory":null,"Content":{"Content":null}},"HttpClientFactory":{"Type":"Couchbase.DefaultHttpClientFactory, Couchbase, Version=1.3.9.0, Culture=neutral, PublicKeyToken=05e9c6b5a9ec94c2","Factory":null,"Content":{"Content":null}},"VBucketRetryCount":2,"ViewRetryCount":2}
finding
storingFalse

Press any key to continue...
Comment by Michael Nitschinger [ 05/Sep/14 ]
Code I'm using is:

using System;
using Couchbase;
using Enyim.Caching.Memcached;
using Newtonsoft.Json;

namespace cbworld
{
class MainClass
{
public static void Main (string[] args)
{
log4net.Config.XmlConfigurator.Configure();
var client = new CouchbaseClient ();
Console.WriteLine ("finding" + client.Get("key"));
var result = client.Store (StoreMode.Set, "key", "Hello World");
Console.WriteLine ("storing" + result);
}
}

}
Comment by Jeff Morris [ 05/Sep/14 ]
This is a difference in the System.URI class between .NET and Mono.
Comment by Don Pinto [ 05/Sep/14 ]
I don't think we even test on Mono today.
Downgrading this to minor.

Thanks,
Comment by Patrick Varley [ 01/Oct/14 ]
Next version of mono will have it.
http://mono.1490590.n4.nabble.com/Net-program-cannot-find-mono-variable-s-IriParsing-td4663873.html
Comment by Jeff Morris [ 01/Oct/14 ]
I pushed a patch that will handle the exception that is raised if IriParsing is not supported: http://review.couchbase.org/#/c/41801
Comment by Patrick Varley [ 01/Oct/14 ]
Stunning!
Comment by Jeff Morris [ 01/Oct/14 ]
A hint of sarcasm? Anyhow, depending upon how mono handles special characters in Uri's, this may or not work - but at least it's not failing at the patch.
Comment by Jeff Morris [ 31/Oct/14 ]
Duplicate:

http://www.couchbase.com/issues/browse/NCBC-621






[NCBC-647] Markdown Links not Rendered Created: 18/Sep/14  Updated: 31/Oct/14  Resolved: 31/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.3.9
Fix Version/s: 1.3.10

Type: Bug Priority: Minor
Reporter: Chris Malarky Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
There are some links not being rendered correctly because of missing text between the brackets in the markdown.

Three in configuring-logging.markdown:

[](https://github.com/couchbase/couchbase-net-client). If you use these Visual
[](http://logging.apache.org/log4net/release/manual/configuration.html).
See [](http://nlog-project.org/wiki/Configuration_file) for more NLog

And one in packages-for-the.net-client-library.markdown (though I can't see this section in the rendered docs):
[](https://www.couchbase.com/develop/net/current/). The download package



 Comments   
Comment by Jeff Morris [ 31/Oct/14 ]
Updated all but the last (packages-for-the.net-client-library), because I don't think it's being used.




[NCBC-616] Fixed PagedView with only one page Created: 29/Aug/14  Updated: 31/Oct/14  Resolved: 31/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.8
Fix Version/s: 1.3.10

Type: Bug Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
When using a PageView with a page size larger than the number of items
in the result set, the MoveNext() operation indicates there are no items
in the current page and returns false.

The fix changes the expression to check if there the nextId is not null
and if the current page contains any items.

 Comments   
Comment by Jeff Morris [ 29/Aug/14 ]
http://review.couchbase.org/#/c/41122/
Comment by Jeff Morris [ 31/Oct/14 ]
Merged.




[NCBC-666] the setting up project section should refer to using Enyim.Caching.dll not Enyim,Memecached.dll Created: 03/Oct/14  Updated: 31/Oct/14  Resolved: 31/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: None
Fix Version/s: 1.3.10

Type: Bug Priority: Major
Reporter: Cihan Biyikoglu Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
http://docs.couchbase.com/couchbase-sdk-net-1.3/
under "setting up a project" we refer to memcached.dll. we should be referring to enyim.caching.dll since that is what the file name is.

------

Setting up a project¶
Create a new console project in Visual Studio. Add references to the Couchbase.dll, Enyim.Memcached.dll, and Newtonsoft.Json.dll assemblies that are in the release zip file.

Visual Studio console applications target the .NET Framework Client Profile by default, so you need to change the project properties to target the full .NET Framework. If you skip this step, you’ll have compilation errors.



 Comments   
Comment by Jeff Morris [ 13/Oct/14 ]
Will update docs for 1.3.10 release.
Comment by Jeff Morris [ 31/Oct/14 ]
This will be published with the 1.3.10 release notes on Tuesday.




[NCBC-691] Maximum and Default Locking times are misleading Created: 19/Oct/14  Updated: 31/Oct/14  Resolved: 31/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.3.9
Fix Version/s: 1.3.10

Type: Bug Priority: Major
Reporter: Chris Malarky Assignee: Chris Malarky
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates to
relates to MB-12379 Default and Maximum lock time describ... Open

 Description   
The maximum lock in 2.5.1 and 3.0.0 is 30 secs, the default is 15 seconds. Any attempt to set a lock higher than the maximum results in the default being used. The .NET docs need updating to match this behaviour.

 Comments   
Comment by Chris Malarky [ 19/Oct/14 ]
Not sure if 2.0 is affected? Couldn't find a GetWithLock in the docs.
Comment by Jeff Morris [ 19/Oct/14 ]
GetWithLock hasn't been implemented yet it 2.0.
Comment by Jeff Morris [ 31/Oct/14 ]
Small code change since the default lock time was zero seconds. Now it's 15 seconds:
http://review.couchbase.org/#/c/42675/

Document update will be included with 1.3.10 docs.

Before:

"GetWithLock() prevents a key from being updated for either 30 seconds (default) or the value specified as an optional lock expiration."

After:

"`GetWithLock()` prevents a key from being updated for 15 seconds by default or by setting it to a value with a maximum of 30 seconds, which defined by the server."

Let me know how the verbiage suits you :)




[NCBC-711] Add GetWithLock to IBucket and provide implementions for Memcached and Couchbase buckets. Created: 31/Oct/14  Updated: 31/Oct/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.1

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[NCBC-686] Use POST when requesting a View if the URI exceeds the maximum character length Created: 15/Oct/14  Updated: 31/Oct/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.9
Fix Version/s: backlog-1.0

Type: Bug Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
From https://forums.couchbase.com/t/getview-need-http-post-instead-of-http-get/1743:

When executing a call extremely similar to the one below I receive the error "Invalid URI: The Uri string is too long".

Code snippet:

CouchbaseClient client;
client.GetView<SomeDataModel>("DesignName", "ViewName", true)
            .Stale(StaleMode.False)
            .Reduce(true)
            .StartKey<object[]>(["someString", 0, "", "", "", 0, ""])
            .EndKey<object[]>(["someString", 9999, "zzzzzzzzzzzzzzzzzzzz", "zzzzzzzzzzzzzzzzzzzz", "zzzzzzzzzzzzzzzzzzzz", 999999999, "zzzzzzzzzzzzzzzzzzzz"]);

If I remove the Start Key and End Key limiters the view will successfully return so I presume that an HTTP GET is being performed and the length of the keys are causing the issue. I used 20 "z"s to represent how long the data could be. For a literal end when there isn't a value specified of course "{" would work, but when values are specified for the strings could be 20 characters long, or possibly even longer.




[NCBC-585] Refactor finalization logic so that Exceptions are not thrown on finalizer thread Created: 15/Aug/14  Updated: 31/Oct/14  Resolved: 31/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.8
Fix Version/s: 1.3.10, 2.0.0

Type: Bug Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates to

 Description   
Reviewing MemcachedClient, there are a few issues that need to be resolved:
- The dispose/finalize logic itself is not correct in MemcachedClient. GCSuppressFinalize shouldn't be called during finalization for example.
- The finalizer contains code (logging) that could throw an exception if the config was not setup correctly or if It cannot create the instance for some reason

 Comments   
Comment by Jeff Morris [ 31/Oct/14 ]
http://review.couchbase.org/#/c/42671/




[NCBC-701] sometimes ops/sec drop to ~1 ops/sec Created: 25/Oct/14  Updated: 31/Oct/14  Resolved: 31/Oct/14

Status: Closed
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.1

Type: Bug Priority: Blocker
Reporter: Andrei Baranouski Assignee: Andrei Baranouski
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File 1_ops_sec2.png     PNG File 1_ops_sec3.png     PNG File 1_ops_sec.png     Zip Archive NCBC-701_new.zip    

 Description   
run with

$ git log -n 5
commit 509098f2aead49c4262f98058e4f045741e2fad1
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Fri Oct 24 15:23:08 2014 -0700

    Use consistent error handling when IO fails

    Change-Id: Idfca664637d5e3db41770fe0137b11b2cab36952
    Reviewed-on: http://review.couchbase.org/42427
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 2769f360e3d129c5ebda996117361e00b9e6677f
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Fri Oct 24 15:20:45 2014 -0700

    Ensure that each server is tried during a config heartbeat

    Change-Id: I7547effadbc5a76fb5c801450c0f069d2b272d32
    Reviewed-on: http://review.couchbase.org/42426
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 37758dbdc9baf75101a7e6230a2a277c37948d38
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Oct 23 19:56:49 2014 -0700

    Remove old markdown file. New one (README.md) will be updated soon

    Change-Id: I73abd2e85ba17d33d350fe0bc530bd2356c1d7cc
    Reviewed-on: http://review.couchbase.org/42412
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit 73df659c062aab8a1dd211ddbf93a78864458b09
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Oct 23 19:53:42 2014 -0700

    Removing old script from the enyim days

    Change-Id: I9ed90500ae2c256c6389f072c593f686e3ed4d31
    Reviewed-on: http://review.couchbase.org/42411
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Simon Baslé <simon@couchbase.com>

commit 28895f0acb807947e1e55471de3751a75e360de4
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Oct 23 19:47:37 2014 -0700

    Remove 'tester' projects from min repo

    These will be refactored and moved to a seperate repo on labs.

    Change-Id: I1ef3d497a210d915f5c01f50a50baa9f17c704a8
    Reviewed-on: http://review.couchbase.org/42410
    Reviewed-by: Simon Baslé <simon@couchbase.com>
    Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>

Administrator@WIN-26PC57KC7NB /c/jenkins/workspace/.net-sdkdclient-ng2_win2012_6
4_andrei/couchbase-net-client (master)




when I once again reproduced it( in command line now) I terminated sdkd execution and found that some threads has stack traces like:



  [External Code]
> Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 136 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Acquire() Line 148 C#
  Couchbase.NetClient.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Couchbase.IO.IConnectionPool.Acquire() Line 200 C#
  Couchbase.NetClient.dll!Couchbase.IO.Strategies.DefaultIOStrategy.Execute<Couchbase.Configuration.Server.Serialization.BucketConfig>(Couchbase.IO.Operations.IOperation<Couchbase.Configuration.Server.Serialization.BucketConfig> operation) Line 40 C#
  Couchbase.NetClient.dll!Couchbase.Core.Server.Send<Couchbase.Configuration.Server.Serialization.BucketConfig>(Couchbase.IO.Operations.IOperation<Couchbase.Configuration.Server.Serialization.BucketConfig> operation) Line 88 C#
  Couchbase.NetClient.dll!Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider._heartBeat_Elapsed(object sender, System.Timers.ElapsedEventArgs args) Line 50 C#
  [External Code]


 Comments   
Comment by Andrei Baranouski [ 25/Oct/14 ]
https://s3.amazonaws.com/bugdb/jira/NCBC-701/74a96698/NCBC-701.zip
Comment by Jeff Morris [ 25/Oct/14 ]
Andrei-

Your logs provided in NCBC-701.zip have a time range from 2014-10-25 02:39:22,706 to 2014-10-25 02:59:28,677, so I can't correlate with the graphs 1_ops_sec_.png and 1_ops_sec3.png.

What I see in the NCBC-701.zip logs is that:

a) Threads are waiting for connections (normal in certain situ's)
b) This is caused when other threads are taking too long per operation, thus making the wait queue _way_ too long

What would cause an operation to take a long time? Probably when a request is made on a server that has either been removed from the cluster or has shutdown. The time delay is the TCP timeout's which are all default ATM. So, instead of a making a request and failing immediately, the client waits for a response which may take seconds (actually the it will timeout at 2.5s), which is time in which another thread is waiting to make a request.

However, I can postulate that the config heartbeat checks are exasperating this, since it will check every server until it either succeeds or runs out of servers to try and it runs every 10s by default. Design wise we might want to:

- Move the config heartbeat to a separate dedicated TCP connection AND/OR
- Move it to a dedicated worker thread AND/OR
- Add a dedicated HTTPStreaming config listener to the CarrierPublicationProvider (this would solve most problems, but has some minuses) AND/OR
- Stop the config heartbeat timer when it begins a cycle and start it when a cycle completes - this would keep it from backing up - this is a flaw imo

Additionally, some of this may be mitigated by tuning:

- Increasing the MaxPool size - defaults to 2
- Tuning the socket timeout values (they are all default ATM)

-Jeff

Comment by Jeff Morris [ 25/Oct/14 ]
Andrei -

I made a patch for: "Stop the config heartbeat timer when it begins a cycle and start it when a cycle complete"

http://review.couchbase.org/#/c/42449/

You can test it if you pull it on top of master or push it through CR and do it on master.

Thanks,

Jeff
Comment by Jeff Morris [ 25/Oct/14 ]
Looking deeper into the logs provided, it looks like SDKD is not properly maintaining references to the cluster object:

Line 14767: 2014-10-25 02:39:27,697 [2] DEBUG Couchbase.Cluster - Finalizing Cluster
Line 15996: 2014-10-25 02:39:43,900 [2] DEBUG Couchbase.Cluster - Finalizing Cluster
Line 15997: 2014-10-25 02:39:43,901 [2] DEBUG Couchbase.IO.Strategies.DefaultIOStrategy - Finalizing DefaultIOStrategy for 10.3.121.134:11210 - 65d70de1-7221-42e4-84fc-7ff2ed34d2d5
Line 145546: 2014-10-25 02:41:39,766 [2] DEBUG Couchbase.Cluster - Finalizing Cluster
Line 150673: 2014-10-25 02:41:40,382 [2] DEBUG Couchbase.IO.Strategies.DefaultIOStrategy - Finalizing DefaultIOStrategy for 10.3.121.135:11210 - b50fa7db-a7dc-42e9-a762-09a2769e216f
Line 170419: 2014-10-25 02:53:58,109 [2] DEBUG Couchbase.Cluster - Finalizing Cluster
Line 171445: 2014-10-25 02:53:59,075 [2] DEBUG Couchbase.Cluster - Finalizing Cluster

This could or could not be causing inconsistent test results.

Things getting interesting around line 253943:

2014-10-25 02:59:21,082 [17] INFO Couchbase.Configuration.Server.Providers.ConfigProviderBase - Unregistering observer default
2014-10-25 02:59:21,083 [17] DEBUG Couchbase.Configuration.ConfigContextBase - Disposing ConfigContext
2014-10-25 02:59:21,083 [17] DEBUG Couchbase.Core.Server - Disposing Server for 10.3.121.134:11210
2014-10-25 02:59:21,083 [17] DEBUG Couchbase.IO.Strategies.DefaultIOStrategy - Disposing DefaultIOStrategy for 10.3.121.134:11210 - 6d4d7c96-ef1f-4bbd-adbd-a08303fc821d
2014-10-25 02:59:21,084 [17] DEBUG Couchbase.IO.ConnectionPool`1 - Disposing ConnectionPool for 10.3.121.134:11210 - f191b6cd-6b0b-4311-bcd8-13f40bf44fb0
2014-10-25 02:59:21,091 [17] DEBUG Couchbase.IO.ConnectionBase - Disposing connection for 10.3.121.134:11210 - 6877f2f9-3f19-4f34-8903-a03ba7b64a5e
2014-10-25 02:59:21,093 [40] WARN Couchbase.IO.ConnectionBase - Opcode=GetClusterConfig | Key= | Host=10.3.121.134:11210
System.IO.IOException: Unable to read data from the transport connection: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'.. ---> System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'.
   at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult, SocketError& errorCode)
   at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
   at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
   --- End of inner exception stack trace ---
   at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
   at Couchbase.IO.Strategies.EapConnection.ReceiveCallback(IAsyncResult asyncResult) in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_andrei\couchbase-net-client\Src\Couchbase\IO\Strategies\EapConnection.cs


The "default" bucket is disposed (closing the connections to 10.3.121.134:11210), but the client keeps trying to use those connections which then throw ODE's.

-Jeff
Comment by Andrei Baranouski [ 26/Oct/14 ]
Hi Jeff,

I run the tests with the patch http://review.couchbase.org/#/c/42449/

and it's still reproduced on win8 http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2_win8_64_andrei/31/console

timestamp on my screenshot differs for -10 hours becuase I took screenshots on my local host


maybe the problem is the following exceptions becuse I see drops in ops/sec just after them

2014-10-26 09:59:51,197 [12] ERROR Couchbase.Views.ViewClient - System.Net.WebException: The operation has timed out
   at System.Net.HttpWebRequest.GetResponse()
   at Couchbase.Views.ViewClient.Execute[T](IViewQuery query) in c:\jenkins\workspace\.net-sdkdclient-ng2_win8_64_andrei\couchbase-net-client\Src\Couchbase\Views\ViewClient.cs:line 91
2014-10-26 09:59:51,209 [12] DEBUG Couchbase.CouchbaseBucket - trying again: 1
2014-10-26 09:59:51,225 [19] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.136:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:51,233 [14] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.136:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:51,285 [16] DEBUG Couchbase.Views.ViewQuery - http://10.3.3.206:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:51,303 [16] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.135:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:51,463 [14] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.135:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:51,482 [14] DEBUG Couchbase.Views.ViewQuery - http://10.3.3.206:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:51,495 [14] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.134:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:51,519 [14] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.134:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:51,620 [15] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.136:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:51,628 [16] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.134:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:51,648 [15] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.134:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:51,653 [16] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.136:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:52,110 [10] ERROR Couchbase.Views.ViewClient - System.Net.WebException: The operation has timed out
   at System.Net.HttpWebRequest.GetResponse()
   at Couchbase.Views.ViewClient.Execute[T](IViewQuery query) in c:\jenkins\workspace\.net-sdkdclient-ng2_win8_64_andrei\couchbase-net-client\Src\Couchbase\Views\ViewClient.cs:line 91
2014-10-26 09:59:52,111 [10] DEBUG Couchbase.CouchbaseBucket - trying again: 1
2014-10-26 09:59:52,114 [9] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.135:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:52,256 [14] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.136:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:52,548 [17] DEBUG Couchbase.IO.ConnectionPool`1 - Releasing: c214d753-0a7d-4091-8355-054e81e3884f on 10.3.121.136:11210 - a6dd7625-ee7c-4658-90aa-1d5ce487daf1
2014-10-26 09:59:52,548 [17] DEBUG Couchbase.CouchbaseBucket - Operation doesn't support retries for key SimpleKeyREP7126REP7126REP7126REP7126REP7126
2014-10-26 09:59:52,548 [17] DEBUG Couchbase.CouchbaseBucket - Operation for key SimpleKeyREP7126REP7126REP7126REP7126REP7126 failed after 0 retries. Reason: Operation timed out: the timeout can be configured by changing the PoolConfiguration.OperationTimeout property. The default is 2500ms.
2014-10-26 09:59:52,548 [17] INFO Couchbase.Configuration.ConfigContextBase - Getting KeyMapper for rev#4 on thread 17
2014-10-26 09:59:52,548 [17] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 175 for key SimpleKeyREP7127REP7127REP7127REP7127REP7127 - rev4
2014-10-26 09:59:52,548 [17] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP7127REP7127REP7127REP7127REP7127 using server 10.3.121.134:11210
2014-10-26 09:59:52,548 [17] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire existing: 84627e8b-4a27-4b78-a962-3c86ec6aab7e | 10.3.121.134:11210 | [0, 2] - 397c8ced-c9bc-4df6-8030-05ff10a10b61 - Disposed: False
2014-10-26 09:59:52,548 [17] INFO Couchbase.IO.ConnectionBase - Sending key SimpleKeyREP7127REP7127REP7127REP7127REP7127 using 175 on 10.3.121.134:11210
2014-10-26 09:59:52,557 [17] DEBUG Couchbase.IO.ConnectionPool`1 - Releasing: 84627e8b-4a27-4b78-a962-3c86ec6aab7e on 10.3.121.134:11210 - 397c8ced-c9bc-4df6-8030-05ff10a10b61
2014-10-26 09:59:52,557 [17] DEBUG Couchbase.CouchbaseBucket - Operation succeeded 0 for key SimpleKeyREP7127REP7127REP7127REP7127REP7127
2014-10-26 09:59:52,557 [17] INFO Couchbase.Configuration.ConfigContextBase - Getting KeyMapper for rev#4 on thread 17
2014-10-26 09:59:52,557 [17] INFO Couchbase.Core.Buckets.VBucketKeyMapper - Using index 408 for key SimpleKeyREP7128REP7128REP7128REP7128REP7128 - rev4
2014-10-26 09:59:52,557 [17] DEBUG Couchbase.Core.Server - Sending SimpleKeyREP7128REP7128REP7128REP7128REP7128 using server 10.3.121.135:11210
2014-10-26 09:59:52,557 [17] DEBUG Couchbase.IO.ConnectionPool`1 - Acquire existing: 1ea73feb-71b4-4621-868e-14d7f23a46c3 | 10.3.121.135:11210 | [0, 2] - 46af13e1-5ed8-4ca1-87ba-61071626c3db - Disposed: False
2014-10-26 09:59:52,557 [17] INFO Couchbase.IO.ConnectionBase - Sending key SimpleKeyREP7128REP7128REP7128REP7128REP7128 using 408 on 10.3.121.135:11210
2014-10-26 09:59:52,562 [10] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.136:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:52,580 [16] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.134:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:52,589 [14] DEBUG Couchbase.Views.ViewQuery - http://10.3.3.206:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:52,641 [12] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.135:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:53,300 [14] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.134:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:53,817 [14] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.135:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:53,837 [14] DEBUG Couchbase.Views.ViewQuery - http://10.3.121.134:8092/default/_design/test_design/_view/test_view?
2014-10-26 09:59:53,842 [11] WARN Couchbase.IO.ConnectionBase - Opcode=Set | Key=SimpleKeyREP7126REP7126REP7126REP7126REP7126 | Host=10.3.121.136:11210
System.NullReferenceException: Object reference not set to an instance of an object.
   at Couchbase.IO.Converters.AutoByteConverter.ToByte(Byte[] buffer, Int32 offset) in c:\jenkins\workspace\.net-sdkdclient-ng2_win8_64_andrei\couchbase-net-client\Src\Couchbase\IO\Converters\AutoByteConverter.cs:line 36
   at Couchbase.IO.Operations.OperationBase`1.Read(Byte[] buffer, Int32 offset, Int32 length) in c:\jenkins\workspace\.net-sdkdclient-ng2_win8_64_andrei\couchbase-net-client\Src\Couchbase\IO\Operations\OperationBase'.cs:line 105
   at Couchbase.IO.Strategies.EapConnection.ReceiveCallback(IAsyncResult asyncResult) in c:\jenkins\workspace\.net-sdkdclient-ng2_win8_64_andrei\couchbase-net-client\Src\Couchbase\IO\Strategies\EapConnection.cs:line 80
2014-10-26 09:59:53,842 [7] WARN Couchbase.IO.ConnectionBase - Opcode=Set | Key=SimpleKeyREP7124REP7124REP7124REP7124REP7124 | Host=10.3.121.136:11210
System.NullReferenceException: Object reference not set to an instance of an object.
   at Couchbase.IO.Converters.AutoByteConverter.ToByte(Byte[] buffer, Int32 offset) in c:\jenkins\workspace\.net-sdkdclient-ng2_win8_64_andrei\couchbase-net-client\Src\Couchbase\IO\Converters\AutoByteConverter.cs:line 36
   at Couchbase.IO.Operations.OperationBase`1.Read(Byte[] buffer, Int32 offset, Int32 length) in c:\jenkins\workspace\.net-sdkdclient-ng2_win8_64_andrei\couchbase-net-client\Src\Couchbase\IO\Operations\OperationBase'.cs:line 105
   at Couchbase.IO.Strategies.EapConnection.ReceiveCallback(IAsyncResult asyncResult) in c:\jenkins\workspace\.net-sdkdclient-ng2_win8_64_andrei\couchbase-net-client\Src\Couchbase\IO\Strategies\EapConnection.cs:line 80

see logs from the patch run https://www.couchbase.com/issues/secure/attachment/22281/NCBC-701_new.zip


If we talk about the exceptions
Object name: 'System.Net.Sockets.Socket'.. ---> System.ObjectDisposedException: Cannot access a disposed object.
it happened much later we drop performance and presumably after I stop the sdkd application




Comment by Jeff Morris [ 26/Oct/14 ]
Andrei -

Thanks for clarifying, I'll look into these NRE's. I also have a few commits that need to push through CR that may also help and possibly a few more after those :)

The WebTimeoutExceptions will definitely cause latency and it's a known issue that's been identified in the Java and LBC sdks as well.

-Jeff
Comment by Andrei Baranouski [ 26/Oct/14 ]
but this should not occur permanently after a certain point, right?
Comment by Jeff Morris [ 26/Oct/14 ]
Yeah, they should recover at some point. Do you know what specific test? i.e. Rb2OutEpt, etc?
Comment by Andrei Baranouski [ 26/Oct/14 ]
it was Rb2OutEpt test but it does not matter, because it was presetup( the same for all tests).
Comment by Jeff Morris [ 27/Oct/14 ]
If it's pre-setup it indicates a possible issue with your cluster or network issues. These timeouts indicate that the client is waiting on the _server_ to reply...during a rebalance the request may have been mapped to a server that is no longer in the cluster, in which case the timeout is expected.

That being said, i was able to trace to the NRE's and created a ticket for them: http://www.couchbase.com/issues/browse/NCBC-703

-Jeff

Comment by Andrei Baranouski [ 27/Oct/14 ]
[8:03:16 PM] Andrei Baranouski: look what I have thought
it happens from time to time on env where client is from 172 network , cluster is from 10*
perhaps some time delay occurs between networks or termination

 yes, maybe it's a network problem, but it happens in presetup(there is no any rebalance or other operations with cluster on this phase)

[8:04:44 PM] Andrei Baranouski: but in any case we should to fix this bug
Comment by Jeff Morris [ 31/Oct/14 ]
I think we can close this?
Comment by Andrei Baranouski [ 31/Oct/14 ]
has been fixed in the latest commits




[NCBC-710] CouchbaseViewBase.GetEnumerator throws NotImplementedException Created: 31/Oct/14  Updated: 31/Oct/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.9
Fix Version/s: backlog-1.0

Type: Task Priority: Minor
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
From github:

internal abstract class CouchbaseViewBase : IView

needs to have line 211 be:
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}

When Newtonsoft.Json tries to serialize the view it throws this exception:

System.NotImplementedException was unhandled by user code
HResult=-2147467263
Message=The method or operation is not implemented.
Source=Couchbase
StackTrace:
at Couchbase.CouchbaseViewBase1.System.Collections.IEnumerable.GetEnumerator() at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer) at BadgePrintingUnitClientService.Controllers.RegistrantController.Get(String email) in c:\projectsSLC\Applications\BadgePrintingUnit\BadgePrintingUnitClientService\Controllers\RegistrantController.cs:line 37 at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary2 arguments, CancellationToken cancellationToken)
InnerException:





[NCBC-709] Make sure all Task/Task<T> call ConfigureAwaiter(false) Created: 30/Oct/14  Updated: 30/Oct/14  Resolved: 30/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
This is a general best practice for library code to disable the awaiter so that a deadlock does not occur in certain host environments (ASP.NET, UI, etc): http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html

 Comments   
Comment by Jeff Morris [ 30/Oct/14 ]
http://review.couchbase.org/#/c/42647/




[NCBC-708] Use attached config when a NMV is returned via CCCP Created: 30/Oct/14  Updated: 30/Oct/14  Resolved: 30/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Currently, the client requests a new config when a NMV is encountered even though the payload of the operation may be a config. This changes the behavior so that the client will use the config returned as the operation's result.

 Comments   
Comment by Jeff Morris [ 30/Oct/14 ]
Apparently I changed this already, because in a NMV event, the client uses the config that comes with the failed operation:

https://github.com/couchbase/couchbase-net-client/blob/master/Src/Couchbase/CouchbaseBucket.cs#L245





[NCBC-703] When an operation timesout ensure that an NRE is not thrown Created: 26/Oct/14  Updated: 30/Oct/14  Resolved: 28/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Blocker
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
2014-10-26 09:59:52,548 [17] DEBUG Couchbase.CouchbaseBucket - Operation for key SimpleKeyREP7126REP7126REP7126REP7126REP7126 failed after 0 retries. Reason: Operation timed out: the timeout can be configured by changing the PoolConfiguration.OperationTimeout property. The default is 2500ms.

...

2014-10-26 09:59:53,842 [11] WARN Couchbase.IO.ConnectionBase - Opcode=Set | Key=SimpleKeyREP7126REP7126REP7126REP7126REP7126 | Host=10.3.121.136:11210
System.NullReferenceException: Object reference not set to an instance of an object.
   at Couchbase.IO.Converters.AutoByteConverter.ToByte(Byte[] buffer, Int32 offset) in c:\jenkins\workspace\.net-sdkdclient-ng2_win8_64_andrei\couchbase-net-client\Src\Couchbase\IO\Converters\AutoByteConverter.cs:line 36
   at Couchbase.IO.Operations.OperationBase`1.Read(Byte[] buffer, Int32 offset, Int32 length) in c:\jenkins\workspace\.net-sdkdclient-ng2_win8_64_andrei\couchbase-net-client\Src\Couchbase\IO\Operations\OperationBase'.cs:line 105
   at Couchbase.IO.Strategies.EapConnection.ReceiveCallback(IAsyncResult asyncResult) in c:\jenkins\workspace\.net-sdkdclient-ng2_win8_64_andrei\couchbase-net-client\Src\Couchbase\IO\Strategies\EapConnection.cs:line 80


 Comments   
Comment by Jeff Morris [ 26/Oct/14 ]
This is a much more serious issue than expected.
Comment by Jeff Morris [ 28/Oct/14 ]
http://review.couchbase.org/#/c/42555/
Comment by Andrei Baranouski [ 29/Oct/14 ]

perhaps it is the very best results

 with commits from gerrit:

$ git log
commit 28c44b06219811747ffb4382a05686ef99a02ffe
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Tue Oct 28 20:04:08 2014 -0700

    NCBC-703: When an operation timesout ensure that an NRE is not thrown

    Change-Id: Iba4be3d23a1d416b2c64a4d0c04d22b3ec0c9011

commit f886642d1b6e57138d424b317e1cfe87986a6628
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Sat Oct 25 19:07:23 2014 -0700

    NCBC-702: Make Release and AddRef un-callable in assemblies other than Couchbase

    and Couchbase.Tests. IRefcountable is an internal interface whose method
    implmentations should not be called externally. This commit makes them
    (mostly) un-callable from assemblies that are not 'friend' assemblies of
    Couchbase.NetClient.

    Change-Id: Ie796909a747eaaf002fcf0984624d9ed0589c5d7

commit 00441eb8036257fa22962bb55ec12beedc309100
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Sat Oct 25 18:50:59 2014 -0700

    NCBC-585: Make Cluster object use Dispose correctly

    Change-Id: If98cb3499a634488f03bf93b914f616067552ef3

commit 3f12994ec37263d6e8dfd0bbd9bdf5dc5a3f7e6c
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Sat Oct 25 18:37:42 2014 -0700

    Mark the server as dead when it is disposed

    When the server is disposed, mark as dead so that an in-progress operation
    or view request will not select it. This should eliminate some ODE's but
    not all. This commit also makes the _disposed and _isDead variables
    volatile.

    Change-Id: I88b2e12079582c66725d898a6eaeee154163ea99

commit b1dc863432c0dc0ae3231004b6bc94734f8d1953
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Sat Oct 25 13:21:49 2014 -0700

    Ensure that heartbeat configuration is completed before raising next event

    Change-Id: I0389212c2b35508ef7637e59c610fac1cdbaca45

commit 509098f2aead49c4262f98058e4f045741e2fad1
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Fri Oct 24 15:23:08 2014 -0700

    Use consistent error handling when IO fails

    Change-Id: Idfca664637d5e3db41770fe0137b11b2cab36952
    Reviewed-on: http://review.couchbase.org/42427
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Brett Lawson <brett19@gmail.com>

commit 2769f360e3d129c5ebda996117361e00b9e6677f
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Fri Oct 24 15:20:45 2014 -0700

    Ensure that each server is tried during a config heartbeat

    Change-Id: I7547effadbc5a76fb5c801450c0f069d2b272d32
    Reviewed-on: http://review.couchbase.org/42426
    Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>

commit 37758dbdc9baf75101a7e6230a2a277c37948d38
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Thu Oct 23 19:56:49 2014 -0700

    Remove old markdown file. New one (README.md) will be updated soon

    Change-Id: I73abd2e85ba17d33d350fe0bc530bd2356c1d7cc



Run all tests on 3 different platforms:

win2008 http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/160/
win2012 http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2_win2012_64_andrei/92/
win8 http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2_win8_64_andrei/33

Rb2OutEpt-HYBRID
#1 win 2008
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2OutEpt-HYBRID/10-29-14/041893/11703c079c2f02626bbe335a9b718df5-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2OutEpt-HYBRID/10-29-14/041893/11703c079c2f02626bbe335a9b718df5-CB.html
#2 win 2012
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2OutEpt-HYBRID/10-29-14/036485/d3aee6f752c82f33ea80ec199fbf9ef8-MC.html hight latency at the end(sdkd issue?)
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2OutEpt-HYBRID/10-29-14/036485/d3aee6f752c82f33ea80ec199fbf9ef8-CB.html
#3 win 8
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2OutEpt-HYBRID/10-29-14/031066/597255f7ae0fd0df2ebc684cc28d61da-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2OutEpt-HYBRID/10-29-14/031066/597255f7ae0fd0df2ebc684cc28d61da-CB.html


Rb2Out-HYBRID
#1 win 2008
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2Out-HYBRID/10-29-14/042355/09ea1fa63ef3dfb2ca4a1d698c62efff-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2Out-HYBRID/10-29-14/042355/09ea1fa63ef3dfb2ca4a1d698c62efff-CB.html
#2 win 2012
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2Out-HYBRID/10-29-14/037057/ea79d54c579a1a48e0ac7f01f04bc867-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2Out-HYBRID/10-29-14/037057/ea79d54c579a1a48e0ac7f01f04bc867-CB.html
#3 win 8
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2Out-HYBRID/10-29-14/031811/f5a455baad9ffbf4c7a50276d16fb553-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2Out-HYBRID/10-29-14/031811/f5a455baad9ffbf4c7a50276d16fb553-CB.html


passthrough-HYBRID
#1 win 2008
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/passthrough-HYBRID/10-29-14/042844/c0039c00c1e4339b4dda19ce6038f5ee-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/passthrough-HYBRID/10-29-14/042844/c0039c00c1e4339b4dda19ce6038f5ee-CB.html
#2 win 2012
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/passthrough-HYBRID/10-29-14/037626/596375dbc5053db776d148d7ce3c3037-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/passthrough-HYBRID/10-29-14/037626/596375dbc5053db776d148d7ce3c3037-CB.html
#3 win 8
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/passthrough-HYBRID/10-29-14/032415/0281d375303cb616af11a86f2ec47286-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/passthrough-HYBRID/10-29-14/032415/0281d375303cb616af11a86f2ec47286-CB.html


ReAdd2-HYBRID
#1 win 2008
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/ReAdd2-HYBRID/10-29-14/042934/f6982afd2f191a9d4963d4ccfe64ab12-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/ReAdd2-HYBRID/10-29-14/042934/f6982afd2f191a9d4963d4ccfe64ab12-CB.html
#2 win 2012
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/ReAdd2-HYBRID/10-29-14/037833/c536fc8c73d37708c542444f578f2bc2-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/ReAdd2-HYBRID/10-29-14/037833/c536fc8c73d37708c542444f578f2bc2-CB.html
#3 win 8
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/ReAdd2-HYBRID/10-29-14/032628/b81a4faf3f7166858f26981c8b46a133-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/ReAdd2-HYBRID/10-29-14/032628/b81a4faf3f7166858f26981c8b46a133-CB.html


Rb2In-HYBRID
#1 win 2008
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2In-HYBRID/10-29-14/043313/249005aa696cf8685fd43625a88dd650-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2In-HYBRID/10-29-14/043313/249005aa696cf8685fd43625a88dd650-CB.html
#2 win 2012
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2In-HYBRID/10-29-14/038308/eebb9e612a56c87e5e34cd84c7f06157-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2In-HYBRID/10-29-14/038308/eebb9e612a56c87e5e34cd84c7f06157-CB.html
#3 win 8
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2In-HYBRID/10-29-14/033162/907eb3081d7173890ecead73f1c608cc-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2In-HYBRID/10-29-14/033162/907eb3081d7173890ecead73f1c608cc-CB.html


FoEptRb-HYBRID
#1 win 2008
crash in sdkd
#2 win 2012
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/FoEptRb-HYBRID/10-29-14/038886/080b15823ed51ae3d09db032bba64549-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/FoEptRb-HYBRID/10-29-14/038886/080b15823ed51ae3d09db032bba64549-CB.html
#3 win 8
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/FoEptRb-HYBRID/10-29-14/033869/c599539be79d3784579fe41aa054c532-MC.html hight latency at the end(sdkd issue?)
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/FoEptRb-HYBRID/10-29-14/033869/c599539be79d3784579fe41aa054c532-CB.html


SvcRestart-HYBRID
#1 win 2008
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/SvcRestart-HYBRID/10-29-14/043931/f0c6e37094e045acad562f15f272412f-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/SvcRestart-HYBRID/10-29-14/043931/f0c6e37094e045acad562f15f272412f-CB.html
#2 win 2012
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/SvcRestart-HYBRID/10-29-14/039260/de6ed80e8006c08ecc993b968adfdbc6-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/SvcRestart-HYBRID/10-29-14/039260/de6ed80e8006c08ecc993b968adfdbc6-CB.html
#3 win 8
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/SvcRestart-HYBRID/10-29-14/034312/3e0bae101605ee61a2f5b6241519ebd9-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/SvcRestart-HYBRID/10-29-14/034312/3e0bae101605ee61a2f5b6241519ebd9-CB.html

Rb1Swap-HYBRID
#1 win 2008
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb1Swap-HYBRID/10-29-14/044171/f63b74d2ea2a4d5ccf3676349fd7fe96-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb1Swap-HYBRID/10-29-14/044171/f63b74d2ea2a4d5ccf3676349fd7fe96-CB.html
#2 win 2012
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb1Swap-HYBRID/10-29-14/039588/f5287ccebd186e68c07aedba66ac7270-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb1Swap-HYBRID/10-29-14/039588/f5287ccebd186e68c07aedba66ac7270-CB.html
#3 win 8
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb1Swap-HYBRID/10-29-14/034662/e6891f2c44fb46c4f165b63fb93b9fd1-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb1Swap-HYBRID/10-29-14/034662/e6891f2c44fb46c4f165b63fb93b9fd1-CB.html


FoEptEject-HYBRID
#1 win 2008
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/FoEptEject-HYBRID/10-29-14/044530/8367451661c4514c692186f5b91b7746-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/FoEptEject-HYBRID/10-29-14/044530/8367451661c4514c692186f5b91b7746-CB.html
#2 win 2012
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/FoEptEject-HYBRID/10-29-14/040010/a490ee32d7754ac1949e5860a3145616-MC.html hight latency at the end(sdkd issue?)
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/FoEptEject-HYBRID/10-29-14/040010/a490ee32d7754ac1949e5860a3145616-CB.html
#3 win 8
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/FoEptEject-HYBRID/10-29-14/035142/cd5b688c7555a876bc92c6cbd8d7ff0f-MC.html
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/FoEptEject-HYBRID/10-29-14/035142/cd5b688c7555a876bc92c6cbd8d7ff0f-CB.html


 hope to do one more iteration with github version + ssl testing
Comment by Jeff Morris [ 29/Oct/14 ]
Andrei -

All open changesets have been merged with github.

-Jeff
Comment by Jeff Morris [ 29/Oct/14 ]
>>#2 win 2012
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2OutEpt-HYBRID/10-29-14/036485/d3aee6f752c82f33ea80ec199fbf9ef8-MC.html hight latency at the end(sdkd issue?)

Can you provide logs so I can see what's up?

Thanks,

Jeff
Comment by Andrei Baranouski [ 30/Oct/14 ]
https://s3.amazonaws.com/bugdb/jira/NCBC-703/c3330f3b/log.zip
http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2_win2012_64_andrei/94/console
http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.1-1443/Rb2OutEpt-HYBRID/10-30-14/046051/6c039aaa37b69a5d1c20192fbffc8e56-MC.html




[NCBC-693] ObjectDisposedException in ConnectionPool.Dispose when run against cluster_run Created: 21/Oct/14  Updated: 30/Oct/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Critical
Reporter: Andrei Baranouski Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File 693_real_cluster.png     Zip Archive NCBC-693_new.log.zip     PNG File NCBC-693.png     File test.logs    

 Description   
in this run I use CB cluster_run for nodes, ie client vm is on windows, 4 nodes are CB instances on the same host: 192.168.1.3:9000-192.168.1.3:9003

  [External Code]
> Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Dispose(bool disposing) Line 184 + 0x11 bytes C#
  Couchbase.dll!Couchbase.IO.ConnectionPool<Couchbase.IO.Strategies.EapConnection>.Dispose() Line 169 + 0xe bytes C#
  Couchbase.dll!Couchbase.IO.Strategies.DefaultIOStrategy.Dispose(bool disposing) Line 113 + 0xc bytes C#
  Couchbase.dll!Couchbase.IO.Strategies.DefaultIOStrategy.Finalize() Line 122 + 0xb bytes C#
  [External Code]

in client logs:

2014-10-21 19:05:18,841 [19] INFO Couchbase.IO.ConnectionBase - Sending key SimpleKeyREP3511REP3511REP3511REP3511REP3511 using 50 on 192.168.1.3:12006
2014-10-21 19:05:18,841 [7] WARN Couchbase.Configuration.Server.Providers.ConfigProviderBase - System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 192.168.1.3:11210
   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
   at Couchbase.IO.DefaultConnectionFactory.<GetGeneric>b__2[T](IConnectionPool`1 p, IByteConverter c) in c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\IO\DefaultConnectionFactory.cs:line 48
   at Couchbase.IO.ConnectionPool`1.Acquire() in c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\IO\ConnectionPool.cs:line 124
   at Couchbase.IO.ConnectionPool`1.Couchbase.IO.IConnectionPool.Acquire() in c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\IO\ConnectionPool.cs:line 200
   at Couchbase.Authentication.SASL.SaslFactory.<GetFactory3>b__0(String username, String password, IOStrategy strategy, IByteConverter converter) in c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Authentication\SASL\SaslFactory.cs:line 21
   at Couchbase.Configuration.Server.Providers.CarrierPublication.CarrierPublicationProvider.GetConfig(String bucketName, String password) in c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Configuration\Server\Providers\CarrierPublication\CarrierPublicationProvider.cs:line 75


 Comments   
Comment by Jeff Morris [ 21/Oct/14 ]
Andrei -

The socket error in the description is unrelated and expected during a rebalance.

-Jeff
Comment by Andrei Baranouski [ 21/Oct/14 ]
https://s3.amazonaws.com/bugdb/jira/NCBC-693/c4c0d1e9/NCBC-693.zip

hm, but rebalance has not started there
Comment by Jeff Morris [ 21/Oct/14 ]
True, in this case it's bootstrapping and the server rejected the connection: No connection could be made because the target machine actively refused it 192.168.1.3:11210

This will happen if that IP is in your bootstrap list, but the node hasn't joined a cluster or isn't an ept (master) node.

A few lines later, the client switches to HttpStreaming: Bootstrapping from http://192.168.1.3:9000/pools

Using port 9000(?)...is port 11210 the port you are intending to use? Either way this would be a separate issue entirely related to using custom ports.

The ODE that is the title of this ticket happens when the DefaultIOStrategy finalizes (a minor bug) because it's not longer referenced; the _refs collection has already been disposed (it's a ConcurrentBag) via finalization. The two are separate issues.
Comment by Andrei Baranouski [ 21/Oct/14 ]
in cluster_run the port are not default:
for example for the instance http://192.168.1.3:9000/(8091-&gt;9000 here)
memcached port 11210 -> 12000
proxy 11211 -> 12001

http://192.168.1.3:9001/
memcached port 11210 -> 12002
proxy 11211 -> 12003 .....

i'm not sure that there is an issue related to customs ports because some time docs are loaded in cluster without any problems

Comment by Jeff Morris [ 21/Oct/14 ]
Yes, it's a bug with custom ports unrelated to the bug in this ticket; it needs a separate ticket. It works because the client falls back to HttpStreaming and bootstraps from there.

Ticket: https://www.couchbase.com/issues/browse/NCBC-694
Comment by Andrei Baranouski [ 25/Oct/14 ]
I think the ticket should be marked minimum as critical(even blocker) because I'm able to reproduce it with default env when run via command line

[903.95 INFO] (SDKD log:137) +++ Flushing remaining exception trace buffer
[903.96 INFO] (SDKD log:137) at System.Threading.ThreadLocal`1.GetValueSlow()
   at System.Threading.ThreadLocal`1.get_Value()
   at System.Collections.Concurrent.ConcurrentBag`1.GetThreadList(Boolean forceCreate)
   at System.Collections.Concurrent.ConcurrentBag`1.TryTakeOrPeek(T& result, Boolean take)
   at System.Collections.Concurrent.ConcurrentBag`1.TryTake(T& result)
   at Couchbase.IO.ConnectionPool`1.Dispose(Boolean disposing) in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_andrei\couchbase-net-client\Src\Couchbase\IO\ConnectionPool.cs:line 184
   at Couchbase.IO.ConnectionPool`1.Dispose() in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_andrei\couchbase-net-client\Src\Couchbase\IO\ConnectionPool.cs:line 169
   at Couchbase.IO.Strategies.DefaultIOStrategy.Dispose(Boolean disposing) in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_andrei\couchbase-net-client\Src\Couchbase\IO\Strategies\DefaultIOStrat
egy.cs:line 113
   at Couchbase.IO.Strategies.DefaultIOStrategy.Finalize() in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_andrei\couchbase-net-client\Src\Couchbase\IO\Strategies\DefaultIOStrategy.cs:line 122

Comment by Jeff Morris [ 25/Oct/14 ]
Andrei -

This ticket addresses the issue specifically: https://www.couchbase.com/issues/browse/NCBC-694

It's not a blocker because it doesn't impact the default configuration (only when you use custom ports) and the client will fall back to using HttpStreamingProvider and function as expected.

-Jeff
Comment by Andrei Baranouski [ 25/Oct/14 ]
I mean I reproduced it even with default settings/ports
Comment by Jeff Morris [ 25/Oct/14 ]
Andrei -

Do you have a log file for it when using default settings/ports? This is a side affect that the DefaultIOStrategy is finalizing, instead of Dispose being called:

Couchbase.IO.Strategies.DefaultIOStrategy.Finalize() in c:\jenkins\workspace\.net-sdkdclient-ng2_win2012_64_andrei\couchbase-net-client\Src\Couchbase\IO\Strategies\DefaultIOStrategy.cs:line 122

I need a broader set of logs to determine why it's finalizing as opposed to being disposed. It's a legit bug, just not a critical or a blocker.

Thanks,

Jeff
Comment by Andrei Baranouski [ 30/Oct/14 ]
please note that this happens every time during rebalance, and sometimes with a simple loading.
logs attached for case without rebalance




[NCBC-676] Make JSON Serializer open and extensible Created: 08/Oct/14  Updated: 29/Oct/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.1

Type: Story Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-681 Make JsonSerializerSettings externall... Technical task In Progress Jeff Morris  

 Description   
Some customers may want to use a JSON serializer other than NewtonSoft, this feature makes the serialization interface extensible so that a consumer of the SDK can implement there own serializer.




[NCBC-540] Ensure TTL on operations follows documented rules Created: 01/Jul/14  Updated: 29/Oct/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.1

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
See here: http://docs.couchbase.com/couchbase-devguide-2.0/#about-document-expiration




[NCBC-642] Use IOControl to set heartbeat settings on each TCP connection Created: 15/Sep/14  Updated: 29/Oct/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.1

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency




[NCBC-706] Client throws exception when first bootstrapping URI fails Created: 29/Oct/14  Updated: 29/Oct/14  Resolved: 29/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
When the client attempts to bootstrap, if it chooses a URI that it cannot connect to, it throws an AggregateException with the errors it encountered, but does not continue onto the next URI in the list.

 Comments   
Comment by Jeff Morris [ 29/Oct/14 ]
http://review.couchbase.org/#/c/42594/1




[NCBC-705] When a view request 404's servers return message is overriden with exception message. Created: 29/Oct/14  Updated: 29/Oct/14  Resolved: 29/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
When a view request errors out, the results that are being returned:

{"error":"not_found","reason":"Design document _design/beer-sample2 not found"}

Are overridden by the error handling logic, and return back a more generic .NET error: (404) Not Found.

 Comments   
Comment by Jeff Morris [ 29/Oct/14 ]
http://review.couchbase.org/#/c/42585/




[NCBC-704] Ensure opaque value is unique for all operation instances Created: 29/Oct/14  Updated: 29/Oct/14  Resolved: 29/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Bug Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
All operations are implementations of the base class OperationBase<T> which is generic. This class held a static variable to use as a counter base; which is flawed because for each type of T instantiated, a new static variable would be created because internally each type of T is compiled into it's own class. This moves the opaque generator into a new class, SequenceGenerator, so that the identifier is unique and incremented correctly.

 Comments   
Comment by Jeff Morris [ 29/Oct/14 ]
http://review.couchbase.org/#/c/42573/2




[NCBC-702] Make Release and AddRef un-callable in assemblies other than Couchbase and Couchbase.Tests Created: 25/Oct/14  Updated: 26/Oct/14  Resolved: 26/Oct/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 Beta
Fix Version/s: 2.0.0

Type: Task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Jeff Morris [ 26/Oct/14 ]
http://review.couchbase.org/#/c/42452/




Generated at Fri Oct 31 20:16:24 CDT 2014 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.