[NCBC-561] During a Hard Failover -1 is returned in VBucketMap for Primary and all Replicas Created: 24/Jul/14  Updated: 02/Oct/14  Resolved: 02/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: Test 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   
Example VBucketMap:

["192.168.56.102:11210","192.168.56.103:11210"],"vBucketMap":[[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[-1],[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],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0]...

This causes a IndexOutOfRangeException.

 Comments   
Comment by Jeff Morris [ 24/Jul/14 ]
Spoke with Mordy and trying the following approach:

1 - If Primary is -1, then shuffle server list and randomly take a server
2 - Send operation and if NMV is returned, update config (add wait event w/timeout to block until set by NotifyObserver)
3 - Set a property for retry attempts and a configurable max retry limit
4 - Resend operation
5 - If max retries, then operation failed and return failure response to app layer
Comment by Jeff Morris [ 02/Oct/14 ]
I believe this is resolved by: NCBC-479




[NCBC-551] After a hard Failover in flight operations continue to use failed over node Created: 13/Jul/14  Updated: 02/Oct/14  Resolved: 02/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: Test 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

Issue Links:
Relates to
relates to NCBC-479 Add Retry logic for NMV's Resolved
relates to NCBC-653 MemcachedBucket does not have SendWit... Resolved

 Description   
When a node is failed over, in flight operations continue to try to use the failed over node's TCP connections, which are "dead". When this occurs, the client should retry x times and then go back one step to get a new VBucket mapping and node to use and then retry again.

 Comments   
Comment by Chad Kreimendahl [ 26/Aug/14 ]
This is actually a major issue for us in the current code base. I'm curious if this could be resolved and backported ASAP?
Comment by Jeff Morris [ 02/Oct/14 ]
Resolved by these two tickets:
NCBC-653: Add SendWithRetryMethod to MemcachedBucket
NCBC-479: Add Retry logic for NMV's




[NCBC-550] Thread A is disposing of Bucket while thread B is still using it Created: 11/Jul/14  Updated: 28/Jul/14  Resolved: 27/Jul/14

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

Type: Bug Priority: Test 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

Attachments: Text File log_25.txt    
Issue Links:
Relates to
relates to NCBC-545 couchApiBase in pools/default/buckets... Closed

 Description   

2014-07-11 10:56:35,176 [14] INFO Couchbase.IO.Operations.OperationResult`1 - Received config rev#1073
2014-07-11 10:56:35,176 [14] INFO Couchbase.Core.Buckets.CouchbaseBucket - New config found 1073
2014-07-11 10:56:35,176 [14] WARN Couchbase.Configuration.Server.Providers.ConfigProviderBase - A ConfigObserver for the bucket default was not found. Provider has been disposed: True
2014-07-11 10:56:39,401 [14] INFO Couchbase.Core.Buckets.CouchbaseBucket - Requires retry SimpleKeyREP73REP73REP73REP73REP73REP73REP73

 Comments   
Comment by Jeff Morris [ 13/Jul/14 ]
commit 28ea4d12d13803a472b2e31c848c1aa47f05ad67

This should fix the threading issues discovered thus far. Importantly it adds ref counting to bucket classes, so that the dispose will only be called by the final thread using the shared bucket.

Let's try another set of situational tests and see what happens.
Comment by Jeff Morris [ 13/Jul/14 ]
Note: use this path (upper case "Src"): couchbase-csharp-client-ng/Src/ _not_ couchbase-csharp-client-ng/src/

Comment by Andrei Baranouski [ 14/Jul/14 ]
Hi Jeff,

seems like it's still reproduced: http://sdkbuilds.couchbase.com/job/.net-sdkdclient-ng2-andrei/25/console


2014-07-14 01:09:51,763 [14] INFO Couchbase.IO.Operations.OperationResult`1 - Received config rev#1163
2014-07-14 01:09:51,763 [14] INFO Couchbase.Core.Buckets.CouchbaseBucket - New config found 1163
2014-07-14 01:09:51,767 [14] WARN Couchbase.Configuration.Server.Providers.ConfigProviderBase - A ConfigObserver for the bucket default was not found. Provider has been disposed: True
2014-07-14 01:09:51,767 [14] INFO Couchbase.Core.Buckets.CouchbaseBucket - Requires retry SimpleKeyREP0REP0REP0REP0REP0REP0REP0REP0


client's logs attached


Comment by Andrei Baranouski [ 14/Jul/14 ]
client's logs with 2.0 commit 28ea4d against 3.0.--918
Comment by Jeff Morris [ 14/Jul/14 ]
Andrei -

Looks like a different error:

[51.36 INFO] (SDKD log:137)  at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Couchbase.Core.Server.GetBaseViewUri(String bucketName) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-csharp-client-ng\Src\Couchbase\Core\Server.cs:line
   at Couchbase.Core.Server.Send[T](IViewQuery query) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-csharp-client-ng\Src\Couchbase\Core\Server.cs:line 85
   at Couchbase.Core.Buckets.CouchbaseBucket.Query[T](IViewQuery query) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-csharp-client-ng\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 492
   at Sdkd.Views.ViewCommand.GetViewObject(CouchbaseBucket cli, Request req, ViewOptions vo) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 122
   at Sdkd.Views.ViewCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 225
   at SdkdConsole.Daemon.Handle.DispatchCommand(Request req) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 191
   at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 123
   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()

If it's a different error, then we should open a new ticket. Let me know if this is the case.

-Jeff

Comment by Jeff Morris [ 14/Jul/14 ]
Quick question: in the situational test are you disposing the bucket? I am going to add more tracing and then provide another SHA1 for testing.
Comment by Andrei Baranouski [ 14/Jul/14 ]
Hi Jeff,

yes, stack trace in the test is different but client's logs are the same as in the ticket, so if it's the new issue...

currently in my runs I don't use the bucket disposing because we re-use client instances in all threads/phases in the test/scenario https://github.com/couchbase/sdkd-net/blob/client-2.0/src/Sdkd/Couchbase/ClientFactory.cs#L33

but i will add at the end of the tests or when we run with ShareClients = false


Comment by Jeff Morris [ 14/Jul/14 ]
>>WARN Couchbase.Configuration.Server.Providers.ConfigProviderBase - A ConfigObserver for the bucket default was not found. Provider has been disposed: True

The last sentence on that line makes me think that somehow the bucket instance is being disposed either implicitly (via finalizer) or explicitly.

Sure enough >> DEBUG Couchbase.Core.ClusterManager - Disposing!!!

The patch in place should keep disposed from being called until the last instance has finished using it. Hmm.
Comment by Jeff Morris [ 23/Jul/14 ]
This should be resolved as long as the bucket instance is not disposed or reaches finalization (in other words it's the applications responsibility to ensure that the bucket isn't disposed). If an operation is attempted on a disposed bucket, an ObjectDisposedException will be thrown which must be handled by the app.
Comment by Don Pinto [ 25/Jul/14 ]
Jeff, Can you please sync-up with Andrei over Skype. This is still looking as a blocker from his side.

Thanks,
Comment by Jeff Morris [ 27/Jul/14 ]
http://review.couchbase.org/#/c/39935/
Comment by Jeff Morris [ 28/Jul/14 ]
SHA for testing: commit 9ce8806edc38503086af1fe9af66484b5766859d




[NCBC-505] Ram size variable overflows when deserializing configuration Created: 11/Jun/14  Updated: 13/Jun/14  Resolved: 13/Jun/14

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

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   
"I have been trying to use this DP1. It throws "JSON integer 15456010240 is too large or small for an Int32. Path '[0].quota.ram', line 1, position 12344" at the line cluster.OpenBucket(bucketName); Should that not be Int64 variable to hold the RAM size?"

 Comments   
Comment by Jeff Morris [ 13/Jun/14 ]
commit e73b094db436ddadaa078b30389c33af2f66378f




[NCBC-400] Constructor fails to initialize in a 2 node cluster Created: 18/Feb/14  Updated: 19/Feb/14  Resolved: 19/Feb/14

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

Type: Task Priority: Blocker
Reporter: Andrew Jebasingh Assignee: Jeff Morris
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: 2 node cluster running on Centos 6.5 with Couchbase Server 2.5

Attachments: Zip Archive TestApp (2).zip     Zip Archive TestApp.zip    

 Description   
Details are at http://www.couchbase.com/communities/q-and-a/constructor-hangs-while-trying-initialize#comment-1564

The test solution I created is attached.

Thanks!

 Comments   
Comment by Jeff Morris [ 18/Feb/14 ]
Tried this on a 2.5 Cluster and it worked. Logging wasn't working because you were missing the enyim sectionGroup.
Comment by Andrew Jebasingh [ 19/Feb/14 ]
Okay I got it figured out finally and can reproduce it all the time on demand now. It's fiddler2. If I have fiddler running, then it hangs on the streaming connection (which is to be expected I guess!)

However, when I close fiddler2 and then try running it, it works great and returns from the constructor immediately.

Thanks for your help in resolving this issue, and hope this helps anyone else who has this problem!




[NCBC-484] Can't connect to local or remote Couchbase server Created: 20/May/14  Updated: 02/Jun/14  Resolved: 02/Jun/14

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

Type: Bug Priority: Blocker
Reporter: niculear Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: windows
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Client - Windows 8.1
Servers tested:
  Windows Server 2012
  Windows 8.1
  Windows 7
  Centos 6

Attachments: Zip Archive CouchBase_Connect_Test.zip    

 Description   
I've written a test application that just connects to a Couchbase server, and reads one record. I've tested this app on other machines and it works, however I can't connect to any Couchbase server (local or remote) from my local machine. Every time, I get a System.Net.WebException when it times out.

Firewall is turned off
There are no HTTP debugging applications running
I can connect to the server via a web browser
Using a CouchbaseCluster connection works

Attached is my solution, and the log is in the /bin/debug folder.

 Comments   
Comment by Jeff Morris [ 20/May/14 ]
Does the "test-bucket" exist? Once I changed the source to this it worked for me locally:

            var conn = new CouchbaseClientConfiguration();
            conn.Urls.Add(new Uri("http://127.0.0.1:8091/pools/"));
            conn.Bucket = "default";
            conn.HttpRequestTimeout = new TimeSpan(0, 1, 0);

If does exist, then it's probably something that's blocking the streaming http connection from establishing. I usually see this with Fiddler/Charles on startup, but once the client has established it's connection you can run the http debugger with no problems. Is there something else that's possibly blocking the connection?
Comment by niculear [ 20/May/14 ]
Yes, I created a bucket called 'test-bucket' with default settings, and created one record in it:

UniqueID1 { "test-data": "It's Working!" }
Comment by Jeff Morris [ 20/May/14 ]
What happens when you change 127.0.0.1 => localhost? You mentioned you are using Hyper-V? That could be the problem...have you tried running VS using admin credentials ("run as adminstrator")?

Also, try changing the Get<string>(...) to ExecuteGet<string>(..) and then checking the result.Message property.
Comment by niculear [ 20/May/14 ]
Hi Jeff,

I've been running VS as admin the whole time, changing loopback address to localhost incurs the same result, and here is the response I get when using ExecuteGet:

Unable to locate node

If I run the app inside of one of my Hyper-V vm's (pointing to the host machine) it works.

Nick
Comment by niculear [ 20/May/14 ]
Hi Jeff,

Looks like it was my anti-virus after all. I use BitDefender, and after disabling the firewall, anti-virus, and every other service that could be disabled I looked for other causes for this problem. I decided to try uninstalling BitDefender from my system, and it seemed to work after that. I'll be opening a ticket with them to see why this is happening, so thanks for your help, and sorry to waste your time.

Nick
Comment by Jeff Morris [ 20/May/14 ]
No problem, just close this ticket :)
Comment by Jeff Morris [ 20/May/14 ]
Also, could you please update your question with the answer? http://www.couchbase.com/communities/q-and-a/windows-81-machine-will-not-connect-couchbase

It helps the next person who encounters the problem down the road.

Thanks,

Jeff

Comment by Jeff Morris [ 02/Jun/14 ]
User resolved.




[NCBC-420] N1QL Support for ad-hoc queries Created: 24/Mar/14  Updated: 01/Apr/14  Resolved: 01/Apr/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: .future
Fix Version/s: backlog-2.0

Type: Story 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


 Comments   
Comment by Jeff Morris [ 01/Apr/14 ]
I shouldn't have made this a story, it's really a task under a story. I'll close it and create a more detailed one for the next sprint.

That being said, basic support for ad-hoc queries using the N1QL DP2 works. It's still a long way from production ready, but you can do this:

var bucket = (ICouchbaseBucket) _cluster.OpenBucket("default");
            const string query = "SELECT * FROM tutorial WHERE fname = 'Ian'";

            var result = bucket.Query<dynamic>(query);
            foreach (var row in result.Rows)
            {
                Console.WriteLine(row);
            }




[NCBC-415] Exception throw while getting View after update to 1.3.3 Created: 10/Mar/14  Updated: 11/Mar/14  Resolved: 11/Mar/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.3
Fix Version/s: 1.3.5

Type: Bug Priority: Blocker
Reporter: wilsont Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: ASP.net MVC3/4 , couchbase server 2.1.1 community edition (build-764)

Attachments: Zip Archive MvcApplication2.zip     JPEG File screen1.JPG     JPEG File screen2.JPG     JPEG File screen3.JPG    

 Description   
First of all this problem doesn't exists in 1.3.1, it starts after I have updated the .net client to 1.3.3

The exception is being threw while i call

client.GetView(designName, viewName)

The View's object is not JSON, it's an serializable c# custom class.

Is there any way to solve this problem? Thanks a lot!

- See more at: http://www.couchbase.com/communities/comment/1633#comment-1633

Full exception

Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: A. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Newtonsoft.Json.JsonTextReader.ReadInternal() at Newtonsoft.Json.JsonTextReader.Read() at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, JsonContract contract, Boolean hasConverter) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value) at Couchbase.GenericViewRowTransformer`1.TransformRow(JsonReader reader, ICouchbaseClient client, Boolean shouldLookupById) at Couchbase.CouchbaseView`1.b__0(JsonReader jr) at Couchbase.CouchbaseViewHandler.d__0`1.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Linq.Buffer`1..ctor(IEnumerable`1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)

- See more at: http://www.couchbase.com/communities/comment/1633#comment-1633


Definition of View

function (doc, meta) {
 if(meta.id.indexOf("AsyncInsert") > -1)
    emit(meta.id, doc);
}

Sample Data
Key : SnapBucketAsyncInsertPhotoLike.4639.7616
Data : "AAEAAAD/////AQAAAAAAAAAMAgAAAEJPUkZyYW1ld29yaywgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwFAQAAACBPUkZyYW1ld29yay5Nb2RlbHMuQXN5bmNJbnNlcnRUTwQAAAAPX2ludmFsaWRhdGVsaXN0CV9jYWNoZWtleQRfc3FsDl9zcWxQYXJhbWV0ZXJzAwEBA9UCU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5LZXlWYWx1ZVBhaXJgMltbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXSwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV2OAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbT1JGcmFtZXdvcmsuTW9kZWxzLlNpbXBsZVNxbFBhcmFtZXRlciwgT1JGcmFtZXdvcmssIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0CAAAACQMAAAAGBAAAABNQaG90b0xpa2UuNDYzOS43NjE2BgUAAAClBiBJbnNlcnQgaW50byBbUGhvdG9MaWtlXSAoW1NuYXBQaG90b0lkXSAsIFtTbmFwUGhvdG9TaXRlSWRdICwgW1NuYXBVc2VySWRdICwgW09SVXNlcklkXSAsIFtPUlVzZXJTaXRlSWRdICwgW1JhdGluZ10gLCBbQ3JlYXRlVGltZV0gKSB2YWx1ZXMgKEBTbmFwUGhvdG9JZCAsIEBTbmFwUGhvdG9TaXRlSWQgLCBAU25hcFVzZXJJZCAsIEBPUlVzZXJJZCAsIEBPUlVzZXJTaXRlSWQgLCBAUmF0aW5nICwgQENyZWF0ZVRpbWUgKSA7IFVQREFURSBbU25hcFBob3RvXSBTRVQgTGlrZUNvdW50PUxpa2VDb3VudCsxLExpa2VDb3VudDI0SG91cnM9TGlrZUNvdW50MjRIb3VycysxLExhc3RMaWtlVGltZT1AQ3VycmVudERhdGVUaW1lMiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXN0TGlrZURhdGVTZXJpYWw9QExhc3RMaWtlRGF0ZVNlcmlhbDINCiAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBTbmFwUGhvdG9JZD1AU25hcFBob3RvSWQyO0lOU0VSVCBJTlRPIFNuYXBVc2VyQWN0aXZpdHkgKFtTbmFwVXNlcklkXSxbVHlwZUlkXSxbQWN0aW9uVXNlcklkXSxbU25hcFBob3RvSWRdLFtJc1JlYWRdLFtDcmVhdGVUaW1lXSkgVkFMVUVTDQogICAgICAgICAgICAgICAgICAgICAgICAoIChTRUxFQ1QgU25hcFVzZXJJZCBGUk9NIFNuYXBQaG90byBXSVRIKG5vbG9jaykNCiAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIFNuYXBQaG90b0lkID0gQFNuYXBQaG90b0lkMiksIEBTbmFwVXNlckFjdGl2aXR5VHlwZUlkMixAQWN0aW9uVXNlcklkMixAU25hcFBob3RvSWQyLDAsQEN1cnJlbnREYXRlVGltZTIpOyAJBgAAAAQDAAAA1QJTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLktleVZhbHVlUGFpcmAyW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldLFtTeXN0ZW0uSW50MzIsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uAwAA5QFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5LZXlWYWx1ZVBhaXJgMltbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXVtdCAgJBwAAAAEAAAABAAAABAYAAACOAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbT1JGcmFtZXdvcmsuTW9kZWxzLlNpbXBsZVNxbFBhcmFtZXRlciwgT1JGcmFtZXdvcmssIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQAACdPUkZyYW1ld29yay5Nb2RlbHMuU2ltcGxlU3FsUGFyYW1ldGVyW10CAAAACAgJCAAAAAwAAAAMAAAABwcAAAAAAQAAAAQAAAAD4wFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5LZXlWYWx1ZVBhaXJgMltbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXQT3////4wFTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5LZXlWYWx1ZVBhaXJgMltbU3lzdGVtLlN0cmluZywgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XSxbU3lzdGVtLkludDMyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXQIAAAADa2V5BXZhbHVlAQAIBgoAAAAJU25hcFBob3RvwB0AAAH1////9////woAAAAAAfT////3////CgAAAAAB8/////f///8KAAAAAAcIAAAAAAEAAAAQAAAABCVPUkZyYW1ld29yay5Nb2RlbHMuU2ltcGxlU3FsUGFyYW1ldGVyAgAAAAkOAAAACQ8AAAAJEAAAAAkRAAAACRIAAAAJEwAAAAkUAAAACRUAAAAJFgAAAAkXAAAACRgAAAAJGQAAAA0EDBoAAABOU3lzdGVtLkRhdGEsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQ4AAAAlT1JGcmFtZXdvcmsuTW9kZWxzLlNpbXBsZVNxbFBhcmFtZXRlcgMAAAAFX25hbWUGX3ZhbHVlB19kYnR5cGUBAgQVU3lzdGVtLkRhdGEuU3FsRGJUeXBlGgAAAAIAAAAGGwAAAAxAU25hcFBob3RvSWQJHAAAAAXj////FVN5c3RlbS5EYXRhLlNxbERiVHlwZQEAAAAHdmFsdWVfXwAIGgAAAAgAAAABDwAAAA4AAAAGHgAAABBAU25hcFBob3RvU2l0ZUlkCR8AAAAB4P///+P///8IAAAAARAAAAAOAAAABiEAAAALQFNuYXBVc2VySWQJIgAAAAHd////4////wgAAAABEQAAAA4AAAAGJAAAAAlAT1JVc2VySWQJJQAAAAHa////4////wgAAAABEgAAAA4AAAAGJwAAAA1AT1JVc2VyU2l0ZUlkCSgAAAAB1////+P///8IAAAAARMAAAAOAAAABioAAAAHQFJhdGluZwkrAAAAAdT////j////CAAAAAEUAAAADgAAAAYtAAAAC0BDcmVhdGVUaW1lCS4AAAAB0f///+P///8EAAAAARUAAAAOAAAABjAAAAANQFNuYXBQaG90b0lkMgkxAAAAAc7////j////CAAAAAEWAAAADgAAAAYzAAAAEUBDdXJyZW50RGF0ZVRpbWUyCTQAAAABy////+P///8EAAAAARcAAAAOAAAABjYAAAAYQFNuYXBVc2VyQWN0aXZpdHlUeXBlSWQyCTcAAAAByP///+P///8IAAAAARgAAAAOAAAABjkAAAAOQEFjdGlvblVzZXJJZDIJOgAAAAHF////4////wgAAAABGQAAAA4AAAAGPAAAABRATGFzdExpa2VEYXRlU2VyaWFsMgk9AAAAAcL////j////CAAAAAUcAAAAHVN5c3RlbS5EYXRhLlNxbFR5cGVzLlNxbEludDMyAgAAAAptX2ZOb3ROdWxsB21fdmFsdWUAAAEIGgAAAAHAHQAAAR8AAAAcAAAAAQAAAAABIgAAABwAAAABHxIAAAElAAAAHAAAAAHYtAEAASgAAAAcAAAAAQAAAAABKwAAABwAAAABAQAAAAUuAAAAIFN5c3RlbS5EYXRhLlNxbFR5cGVzLlNxbERhdGVUaW1lAwAAAAptX2ZOb3ROdWxsBW1fZGF5Bm1fdGltZQAAAAEICBoAAAAB66IAABwsGgABMQAAABwAAAABwB0AAAE0AAAALgAAAAHrogAAHCwaAAE3AAAAHAAAAAEDAAAAAToAAAAcAAAAAR8SAAABPQAAABwAAAABF1EzAQs="


 Comments   
Comment by wilsont [ 10/Mar/14 ]
The sample project is using .net client 1.3.4 , the problem is still exists.
Comment by Jeff Morris [ 11/Mar/14 ]
This is a regression bug that was causing the generic CouchbaseView to be used in place of the standard CouchbaseView. This caused the GenericRowTransformer to be used which expects a type of "T".
Comment by Jeff Morris [ 11/Mar/14 ]
http://review.couchbase.org/#/c/34391/
Comment by Jeff Morris [ 11/Mar/14 ]
http://review.couchbase.org/#/c/34391/




[NCBC-363] Implement Client Configuration Management Created: 13/Jan/14  Updated: 31/May/14  Due: 27/Jan/14  Resolved: 31/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: .future
Fix Version/s: backlog-2.0

Type: Story 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   
As a developer,
I want a provider based configuration client management system
So that the client can be configured in a way which matches the my given use-case

Acceptance:
-Configuration can be done via app.config files or programmatically
-Default values are always supplied - this means that by simple new'ing up a client, it can be used immediately with no further code or configuration.
-All major components (which really leads to overall design) are pluggable and able to be tested in isolation

 

 Comments   
Comment by Jeff Morris [ 31/May/14 ]
commit b14e551ee8442d605f414fe0e6bde0f8b5bddde1

Additional work will be required as we define the set of configurable elements, but the base functionality is completed.




[NCBC-362] Implement Server Configuration Management Created: 13/Jan/14  Updated: 02/Jun/14  Due: 27/Jan/14  Resolved: 16/Mar/14

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

Type: Story Priority: Blocker
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed 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-370 Develop File System Based Provider Im... Technical task Resolved Jeff Morris  
NCBC-371 Develop a Streaming HTTP Server Confi... Technical task Resolved Jeff Morris  
NCBC-372 Develop a CCCP Server Configuration P... Technical task Resolved Jeff Morris  

 Description   
As a developer,
I want a provider based configuration management system
So that the client will try multiple ways of getting a configuration before failing.

Acceptance:
-The most up-to-date configuration is always available to the client
-The implementation is via test-driven design
-The provider configuration is "configurable" from a client perspective
-The implementation uses some threshold so that the configuration changes are not "too noisy"
 




[NCBC-365] Incoming and Outgoing Data Serialization Created: 13/Jan/14  Updated: 19/Jun/14  Due: 27/Jan/14  Resolved: 19/Jun/14

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

Type: Story 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   
As a user,
I want my data to deserialized/serialized into it's correct type
So that I do not have to do any casting or conversion and my data is not corrupted

Acceptance:
-The operations are template based
-Boxing/unboxing are minimized or preferable eliminated
-The Type sent, is the Type received

*ALSO investigate flags field for storing type in message



 

 Comments   
Comment by Jeff Morris [ 19/Jun/14 ]
commit 4b57e61762fc57e51f028c723bb6b2cec6e2a683




[NCBC-366] Implement Connection Pool Created: 13/Jan/14  Updated: 02/Jun/14  Due: 27/Jan/14  Resolved: 13/Feb/14

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

Type: Story 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   
As a network operator,
I want clients which I support, to minimize network and hardware/software resources
So that clients do not consume or use large number of socket connections, etc which impact overall network reliability

Acceptance:
-The connection pool is 'swappable'
-Connections are properly managed so that they are not leaked
-Unit tests




 

 Comments   
Comment by Jeff Morris [ 13/Feb/14 ]
A basic connection pool that was developed in the prototype has been integrated into the source. Some work still needs to be done with respect to creation/destruction and how this class interacts with the other classes in the object graph.




[NCBC-320] Run Situational Tests Against Created: 29/Oct/13  Updated: 18/Nov/13  Resolved: 18/Nov/13

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

Type: Task Priority: Blocker
Reporter: Jeff Morris Assignee: Saakshi Manocha
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency
Duplicate

 Description   
Saakshi -

Can run situational tests against this commit:http://review.couchbase.org/#/c/29832/

I need the results ASAP, so please do this today if possible. We can touch base on our weekly tonight. If you run into any issues building or running the code, let me know asap.

Thanks,

Jeff



 Comments   
Comment by Saakshi Manocha [ 11/Nov/13 ]
we will track the progress of this task in SDKQE-389




[NCBC-310] Refactor Connection Pool Created: 07/Oct/13  Updated: 04/Dec/13  Resolved: 04/Dec/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.8
Fix Version/s: 1.3.0

Type: Improvement 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   
Refactor and implement connection pool.

 Comments   
Comment by Jeff Morris [ 28/Oct/13 ]
http://review.couchbase.org/#/c/29832/
Comment by Jeff Morris [ 28/Oct/13 ]
Note the commit above may not work for versions of couchbase < 2.0. Is this a problem? If so, I can make it 1.8 compatible.
Comment by Perry Krug [ 29/Oct/13 ]
As per your last comment, I think it will be a problem if we don't provide at least a warning to pre-2.0 users (which we still have some of...and some of those are using .NET). If you can make it compatible, that would be great, if not, we need to make sure it's clear that users should not upgrade to this version if they are not yet on 2.0.
Comment by Jeff Morris [ 04/Dec/13 ]
Fixed by release of 1.3.0




[NCBC-289] Does not return errors object on view operation Created: 14/Aug/13  Updated: 10/Dec/13  Resolved: 10/Dec/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.7
Fix Version/s: 1.3.1

Type: New Feature Priority: Blocker
Reporter: Patrick Varley Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The couchbase maunal shows the JSON for view responses:
http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-querying-errorcontrol.html

The Java and python SDK have ability to access errors .net does not.

Looking at CouchbaseViewHandler. It looks like its meant to be throwing an exception when it gets errors in the JSON. However that exception will never happen as there is a bug on lines 95 to 101 (code below). The two if statements counter each other. You can fix it via calling jsonReader.Read() after the 1st if statement however I believe that is not the correct solution. We should return an error object. I think the whole IEnumerator<T> TransformResults<T>(Func<JsonReader, T> rowTransformer, IDictionary<string, string> viewParams) needs looking at.

if (jsonReader.TokenType == JsonToken.PropertyName
&& jsonReader.Depth == 1
&& ((string)jsonReader.Value) == "errors")
{
// we skip the deserialization if the array is null
if (jsonReader.TokenType == Newtonsoft.Json.JsonToken.StartArray)
{

 Comments   
Comment by Matt Ingenthron [ 12/Nov/13 ]
Jeff is running with this change.
Comment by Patrick Varley [ 18/Nov/13 ]
Jeff,

From what I remember looking at the code it look like the error object would only get initialised once the JSON respond was full parsed.
There were some operations that did not parsed the JSON to the end.

Please let me know if the method I created in http://review.couchbase.org/#/c/29173/ will be changed.

I know you been busy and this can wait until the December release.

Thanks,
Patrick
Comment by Jeff Morris [ 18/Nov/13 ]
Patrick -

I am mainly holding back on this only because we don't have valid unit tests to ensure that it works as expected. To make it easier to unit test, I am refactoring the code a bit so that any stream (not just the response from a web request) can run through that code. I started on this and then had to put it on the back burner for a bit, but will be jumping back to it as soon as 1.3.0 is released.

If anything needs to be changed, I'll let you know!

Thanks,

Jeff
Comment by Jeff Morris [ 05/Dec/13 ]
We decided to throw an exception when an error is detected for all view
error cases. In the next version (2.x) of the client will make a decision
on how we want the client to behave when an error is encountered when
processing a view. This commit makes it consistent across all error cases
and does not change the interface, which would likely impact users
requiring them to change there code from handling exceptions to checking
an errors property for failures.

This commit also adds additional unit tests and refactors the
CouchbaseViewHandler class so that we can pass streams into the
ReadResponse method that contain text resembling errors returned from the
server.
Comment by Jeff Morris [ 10/Dec/13 ]
CR & Submitted via gerrit




[NCBC-285] add new approach to retrieve configuration over memcached binary protocol Created: 30/Jul/13  Updated: 02/Jun/14  Resolved: 16/Mar/14

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

Type: New Feature Priority: Blocker
Reporter: Matt Ingenthron Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: cccp
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency
depends on MB-8728 add a new operation which allows for ... Closed

 Description   
To support better faster, more reliable response to configuration changes, the .NET client should change from HTTP streaming configuration to the new memcached binary protocol method delivered under project CCCP.

This may require adding new constructors and app.config options to be hostname and optionally port number driven.

This is part of project CCCP, as covered at http://www.couchbase.com/wiki/display/couchbase/Cluster+Configuration+Carrier+Publication




[NCBC-278] NREs thrown when executing views on overloaded server Created: 08/Jul/13  Updated: 02/Oct/13  Resolved: 02/Oct/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.6
Fix Version/s: 1.2.7

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

Issue Links:
Gantt: start-finish

 Description   
This is in the view code, should be a quick fix.

In a nutshell, rapidly querying the view ends up throwing an NRE thus crashing the calling thread. This seems to be thrown from the System.Web code, but is probably something wrong in the client itself

 Comments   
Comment by Mark Nunberg [ 09/Jul/13 ]
http://review.couchbase.org/#/c/27355/2
Comment by Mark Nunberg [ 09/Jul/13 ]
http://review.couchbase.org/#/c/27358/




[NCBC-257] During rebalance client tries to connect the primary node only Created: 02/May/13  Updated: 02/Oct/13  Resolved: 02/Oct/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.6
Fix Version/s: 1.2.8

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


 Description   
I'm adding this bug to identify performance issue that is raised in CBSE-521 and CBSE-528

It is observed during the sdkd scenario tests, that while rebalance is happening, the client tries to connect only the primary node and does not connect to the other secondary nodes in the cluster. During rebalance the topology changes and hence many errors like socket reset, no response received, operation time out, etc.
These errors go away when the rebalance is over and with rebound phase, no errors are observed.
Please see some sample reports:
http://sdk-testresults.couchbase.com.s3.amazonaws.com/sdkd/HWIN-335SPEPOCGT-IHYBRID_fo-ept-rb-Sdotnet-1.2-release-T2013-04-02-00.11.35-LV_MC_BASIC.txt
http://sdk-testresults.couchbase.com.s3.amazonaws.com/sdkd/HWIN-335SPEPOCGT-IHYBRID_rb-2-in-Sdotnet-1.2-release-T2013-04-02-00.21.03-LV_HTTP_BASIC.txt
http://sdk-testresults.couchbase.com.s3.amazonaws.com/sdkd/HWIN-335SPEPOCGT-IHYBRID_fo-ept-eject-Sdotnet-1.2-release-T2013-04-02-00.17.30-LV_HTTP_BASIC.txt

Mark - need your input here too, do you think these errors during rebalance can impact performance or stability at customer site.


 Comments   
Comment by Saakshi Manocha [ 02/May/13 ]
Also, as per the documentation and our understanding, we can expect errors during CHANGE phase and ideally they should go away in REBOUND phase.

CHANGE: Here we see that errors start happening. This is because a cluster topology change started around this time. We can expect errors until the topology change is completed. In this case, the topology change was adding a single node to the cluster.
REBOUND: Here we see the errors are stopping. This is because the topology change has been completed. Since we added an extra node to the
cluster, the rate of operations has actually gone up from before. This is because there are more nodes to handle requests now.
Comment by Matt Ingenthron [ 10/May/13 ]
This appears to be a critical issue. Marking as blocker for 1.2.7 until we have a better understanding.
Comment by John Zablocki (Inactive) [ 15/May/13 ]
When you say "connect to the primary node only" are you referring to the streaming connection or all ops are going on the primary node?
Comment by Saakshi Manocha [ 23/May/13 ]
I ran the sdkd tests on a 4-node cluster. During the fail-over/rebalance phase, client automatically considers one node as the primary node and throughout the logs, the error is:
 System.IO.IOException: Failed to read from the socket '10.3.3.206:11210'. Error: SocketError value was Success, but 0 bytes were received

It only tries to connect to the primary node, never tries to connect to the other nodes, and once the primary node is up and the rebalance is over, the error rate slows down.
Comment by Michael Catanzariti [ 09/Sep/13 ]
Any news about that one?
we are experimenting the same issue when adding or removing a node into/from the cluster of 3 nodes during a load test (10000 concurrent users)

It seems that the client library is returning null on CouchbaseClient.GetWithCas only during the rebalance operation (a few minutes) as if it could not find existing documents.
once the rebalance operation is over, the driver returns correctly the existing documents
Comment by Michael Catanzariti [ 10/Sep/13 ]
Hi, We just trace the code of library and it seems the problems occurs in the method CouchbaseClient.ExecuteWithRedirect in the following section

if (iows.State == OperationState.InvalidVBucket)
{
    var nodes = this.Pool.GetWorkingNodes();

    foreach (var node in nodes)
    {
        opResult = node.Execute(op);
....


when the cluster is rebalancing, the nodes could be all disposed and the node.Execute method returns an error for ALL the nodes

Our further investigations lead us to think that a there is a race condition between disposing nodes when the driver receives a new config from the cluster and the execution of requests by the client.
Indeed in the method CouchbasePool.ReconfigurePool the statement "Interlocked.Exchange(ref this.state, state);" does not protect the method CouchbaseClient.ExecuteWithRedirect to get the old nodes.
The nodes could be the current ones in the statement "var nodes = this.Pool.GetWorkingNodes();" and the line after they could be already disposed by the listener thread.

I hope to be clear enough :)


Comment by Matt Ingenthron [ 10/Sep/13 ]
Thanks for the investigation information Michael, this should help us more quickly get to the bottom of it.
Comment by Jeff Morris [ 12/Sep/13 ]
I am looking into the issue and I see a couple of places in the CouchbasePool class that are suspect. I'll dig deeper into this and follow up with a resolution asap.

Comment by Jeff Morris [ 25/Sep/13 ]
http://review.couchbase.org/#/c/29197/




[NCBC-78] Enhance discussion of return codes/values Created: 26/Jun/12  Updated: 31/Jan/14  Resolved: 31/Jan/14

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

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

Attachments: Microsoft Word error-code-checking.docx    
Issue Links:
Duplicate
is duplicated by NCBC-249 We need documentation that explains h... Resolved

 Description   
Given the comments on this page: http://www.couchbase.com/docs/couchbase-sdk-net-1.1/couchbase-sdk-net-retrieve-set.html

Perhaps there can be a section on the possible return codes/values, what they mean, when they might happen, and how to deal with them?

 Comments   
Comment by Mark Nunberg [ 22/Nov/12 ]
This is a must-have for SDK testing. It is very difficult to determine failure types and severities without knowing what types of errors, exception classes, or such to expect.

At the very least, there should be standard return codes (in a well-defined location) for memcached error codes.
Comment by Jeff Morris [ 30/Jan/14 ]
Possible dupe: http://www.couchbase.com/issues/browse/NCBC-249#comment-77768
Comment by Jeff Morris [ 30/Jan/14 ]
Proposed amendment to documentation. Please review and provide feedback.
Comment by Perry Krug [ 31/Jan/14 ]
Thanks Jeff, this is a great start and well explained. I think it fits very nicely into our documentation, and just needs to be linked to from a variety of places in order to help people find it.

I think it would also be helpful to see some examples of handling of some of the more common error codes
Comment by Jeff Morris [ 31/Jan/14 ]
Great. I think we should consider this a "work in progress" and do a bit each month. Probably the best way to approach this is to create separate, specific tickets addressing documentation that we are lacking and ad them to the backlog. I'll pull one or two into each monthly "sprint" that I do for a release. From a workflow perspective, I like jira tickets to have a short lifespan...makes me feel more productive ;)
Comment by Jeff Morris [ 31/Jan/14 ]
This will sit underneath: http://docs.couchbase.com/couchbase-sdk-net-1.3/#appendix-working-with-operation-results

Note that it's no longer listed as an "appendix" but as a section: "Working with Operation Results and Error Codes"

Will be published with release notes for 1.3.2 on Tuesday.




[NCBC-3] NuGet download is not working correclty Created: 01/Aug/11  Updated: 05/Aug/11  Resolved: 05/Aug/11

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

Type: Bug Priority: Blocker
Reporter: Matt Ingenthron Assignee: Bin Cui
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Created a project with VisualStudio, and tried to bring in the dependencies with NuGet. Unfortunately, the assemblies don't come in, correctly.

From zipfile download, they do load correctly.

 Comments   
Comment by Bin Cui [ 05/Aug/11 ]
Republish the package with required format.




[NCBC-662] Common Flags improperly decoding configs as a String type causing cast exception Created: 01/Oct/14  Updated: 02/Oct/14  Resolved: 02/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   
When a NMV triggers a Config response, the body of the response is decoded and serialized into a string instead of BucketConfig object causing a cast exception and keeping the client from updating:

2014-10-01 19:38:34,748 [14] ERROR Couchbase.Core.Buckets.CouchbaseBucket - System.InvalidCastException: Unable to cast object of type 'System.String' to type 'Couchbase.Configuration.Server.Serialization.BucketConfig'.
   at Couchbase.Core.Transcoders.DefaultTranscoder.Decode[T](Byte[] buffer, Int32 offset, Int32 length, Flags flags) in c:\Users\jmorris\repos\CouchbaseNetClient-Build-2.0\couchbase-net-client\Src\Couchbase\Core\Transcoders\DefaultTranscoder.cs:line 157
   at Couchbase.IO.Operations.OperationBase`1.GetConfig() in c:\Users\jmorris\repos\CouchbaseNetClient-Build-2.0\couchbase-net-client\Src\Couchbase\IO\Operations\OperationBase'.cs:line 383
   at Couchbase.Core.Buckets.CouchbaseBucket.CheckForConfigUpdates[T](IOperationResult`1 operationResult, IOperation operation) in c:\Users\jmorris\repos\CouchbaseNetClient-Build-2.0\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 238
2014-10-01 19:38:34,750 [14] DEBUG Couchbase.Core.Buckets.CouchbaseBucket - Operation retry 0 for key key1845. Reason: VBucketBelongsToAnotherServer

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




[NCBC-663] Authentication error when making View request to bucket with SASL Auth Created: 02/Oct/14  Updated: 02/Oct/14  Resolved: 02/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   
The request are being sent without authentication:

2014-10-02 11:33:54,492 [22] ERROR Couchbase.Views.ViewClient - System.Net.WebException: The remote server returned an error: (401) Unauthorized.
   at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
   at System.Net.WebClient.DownloadData(Uri address)
   at Couchbase.Views.ViewClient.Execute[T](IViewQuery query) in c:\Users\jmorris\repos\CouchbaseNetClient-Build-2.0\couchbase-net-client\Src\Couchbase\Views\ViewClient.cs:line 72

Note that this happens after the user has opened and authenticated against the bucket. The user/password are simply not being sent with each request.

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




[NCBC-668] $HOST causes parsing error on Memcached buckets Created: 03/Oct/14  Updated: 09/Oct/14  Resolved: 05/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

Issue Links:
Duplicate
duplicates NCBC-670 HTTP Streaming uri parsing fails when... Resolved

 Description   
From email:

"First is when i try to run the new client against memcached bucket. There is the same issue with $HOST coming from HttpStreamingProvider instead of CarrierPublicationProvider.


System.UriFormatException was caught
  HResult=-2146233033
  Message=Invalid URI: The hostname could not be parsed.
  Source=System
  StackTrace:
       at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
       at Couchbase.Core.ClusterController.UpdateBootstrapList(IBucketConfig bucketConfig) in c:\Temp\couchbase-net-client-master\Src\Couchbase\Core\ClusterController.cs:line 233
       at Couchbase.Core.ClusterController.CreateBucket(String bucketName, String password) in c:\Temp\couchbase-net-client-master\Src\Couchbase\Core\ClusterController.cs:line 207
  InnerException:
"

 Comments   
Comment by Jeff Morris [ 04/Oct/14 ]
http://review.couchbase.org/41889
Comment by Jeff Morris [ 05/Oct/14 ]
I missed one code execution path: the initial config request which is not done by the streaming HTTP mechanism.
Comment by Jeff Morris [ 05/Oct/14 ]
http://review.couchbase.org/#/c/41897/




[NCBC-549] View queries are using localhost when client is configured for a remote Created: 10/Jul/14  Updated: 10/Jul/14  Resolved: 10/Jul/14

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

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   
If you manually create a ViewQuery object and pass it to IBucket.Query(IViewQuery), it will use localhost as the base host instead of the remote host/ip that the cluster configuration has returned.

 Comments   
Comment by Jeff Morris [ 10/Jul/14 ]
Included in this commit e5ead27c1efa5d33bb4d0ba9f55d424ffd9d3c79




[NCBC-637] When CCCP fails ensure NRE is not thrown Created: 11/Sep/14  Updated: 11/Sep/14  Resolved: 11/Sep/14

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

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   
This is a regression from an earlier fix. Currently, memcached buckets will fail because the client never gets out of the bootstrap phase because a NRE is thrown which stops the bootstrap process before the HttpStreamingProvider gets a chance to bootstrap.

 Comments   
Comment by Jeff Morris [ 11/Sep/14 ]
http://review.couchbase.org/#/c/41371/




[NCBC-516] .NET SDK 2.0 Documentation Created: 17/Jun/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

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

Type: Epic Priority: Blocker
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed 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-495 Code Comments & Sandcastle Documentation Technical task Closed Jeff Morris  
Epic Name: Beta 1 Documentation and Sample App
Epic Status: To Do

 Description   
This includes Code Comments and Sandcastle docs, and Example Application, and general developer guide. The release of Beta 1 depends upon the completion of this epic.




[NCBC-364]  VBucket Locator Component Created: 13/Jan/14  Updated: 15/Sep/14  Due: 27/Jan/14  Resolved: 15/Sep/14

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

Type: Story 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   
As a user,
I want a VBucket Locator Component
So that operations send/retrieve data from the correct node in the cluster based off of the hash of the key

Acceptance:
-The hash creator is swappable
-The default hash supported is CRC32
-The correct node is returned during a VBucket look-up

 

 Comments   
Comment by Jeff Morris [ 03/Mar/14 ]
Refactored and completed last week.




[NCBC-652] Add support for bulk operations: Get and Upsert Created: 20/Sep/14  Updated: 21/Sep/14  Resolved: 21/Sep/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: 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   
Add support for multi get/upsert.

 Comments   
Comment by Jeff Morris [ 21/Sep/14 ]
http://review.couchbase.org/#/c/41538/

Missing some unit tests which will be done a bit later as a separate commit.




ops/sec is not restored to the expected value even when warmup completed (restart 3/4 nodes) (NCBC-644)

[NCBC-683] When a node goes on/offline ensure that the cluster map is up to date Created: 14/Oct/14  Updated: 14/Oct/14  Resolved: 14/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: Technical task 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

Issue Links:
Relates to
relates to NCBC-644 ops/sec is not restored to the expect... Closed

 Description   
When a node crashes or otherwise goes offline, the client will continue to use the stale configuration. If the node becomes active again, the client will be in an inconsistent state because the node will be flagged as dead and unusable. This commit ensures that the client gets a fresh configuration in the case of a NMV or certain IO errors (forcibly closed or reset) even if the revision hasn't changed.

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




[NCBC-468] Resolve compiler warnings Created: 08/May/14  Updated: 02/Jun/14  Resolved: 02/Jun/14

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

Type: Task 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


 Description   
There are a number of compiler warnings ~25. These needs to be resolved.

 Comments   
Comment by Jeff Morris [ 02/Jun/14 ]
commit 50580733fd0b279e57125cfb1b5da001ef3fbef4

Reduced the compiler/resharper warnings from 800+ to around 23~. The rest will be resolved in future commits.




[NCBC-459] CRAM MD5 SASL Support Created: 07/May/14  Updated: 02/Jun/14  Resolved: 29/May/14

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

Type: Task Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed 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-486 Create CRAM-MD5 ISaslMechanism Impl Technical task Resolved Jeff Morris  
NCBC-487 Create Sasl Mechanism Factory Technical task Resolved Jeff Morris  
NCBC-488 Integrate SASL Factory into client Technical task Resolved Jeff Morris  

 Description   
CRAM MD5 Sasl support for .NET client - PLAIN is currently supported.

 Comments   
Comment by Jeff Morris [ 29/May/14 ]
commit 85b1ae52e221414de4dfb0853292a62ae4147f9a




[NCBC-460] Rename ICluster and Cluster to ICouchbaseCluster and CouchbaseCluster Created: 07/May/14  Updated: 02/Jun/14  Resolved: 08/May/14

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

Type: Task 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


 Description   
Rename for consistency across SDK's.




Set, add, and replace should be separate methods (NCBC-123)

[NCBC-463] Add support for "Replace" operation Created: 07/May/14  Updated: 02/Jun/14  Resolved: 09/May/14

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

Type: Technical task 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





[NCBC-464] Refactor Bucket.Get(ViewQuery) to Bucket.Query(ViewQuery) Created: 07/May/14  Updated: 02/Jun/14  Resolved: 08/May/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 08/May/14 ]
commit fb6789b718908136a8414b4b63a9153935655637




[NCBC-457] Change verbosity of HB logging to DEBUG Created: 05/May/14  Updated: 04/Jun/14  Resolved: 04/Jun/14

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

Type: Task 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


 Comments   
Comment by Matt Ingenthron [ 05/May/14 ]
I might argue for debug here, but it's your call. I think of things like configuration changes as INFO level, and things like regular background stuff as DEBUG.
Comment by Jeff Morris [ 05/May/14 ]
Fair enough, it was DEBUG originally, so we would be just reverting back to what it previously was.
Comment by Jeff Morris [ 05/May/14 ]
http://review.couchbase.org/#/c/36715/1




[NCBC-456] SocketAsyncStrategy's Dispose method throws NotImplementedException Created: 03/May/14  Updated: 02/Jun/14  Resolved: 06/May/14

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

Type: Task 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


 Description   
Dispose needs to be implemented.

 Comments   
Comment by Jeff Morris [ 06/May/14 ]
commit 528b737f44a0363e0c04da81485c855151251e3e




[NCBC-455] Inserting POCO throws NullRefererenceException Created: 03/May/14  Updated: 02/Jun/14  Resolved: 04/May/14

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

Type: Task 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


 Description   
No serializer exists for POCOs

 Comments   
Comment by Jeff Morris [ 04/May/14 ]
Fixed, but TypeSerializer needs to be refactored at some point for perf reasons.

 commit 3c70e8cba079e7991fcc93c4d11d7621ba613fb1




[NCBC-453] When key is not found IOperationResult.Message field contains error message Created: 02/May/14  Updated: 02/Jun/14  Resolved: 02/May/14

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

Type: Task 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


 Description   
This applies to all operations that fail.

 Comments   
Comment by Jeff Morris [ 02/May/14 ]
commit 3b936d2c03ddfc7e372f2645e0ed21601447f975




[NCBC-454] Make all Common.Logging.ILog references private static Created: 02/May/14  Updated: 02/Jun/14  Resolved: 02/May/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 02/May/14 ]
commit 8cb80ed372cb803bd7cf0a3f26e056653826c753




[NCBC-452] View Query Error Handling Created: 02/May/14  Updated: 02/Jun/14  Resolved: 02/May/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 02/May/14 ]
commit 1cbc7e11350dc15ae61e08d9045ecf5ae7bd56ea




[NCBC-451] Provide error handling for invalid N1QL queries. Created: 02/May/14  Updated: 02/Jun/14  Resolved: 02/May/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 02/May/14 ]
commit 45297110ec69a8936714d2c3302e03a97281077d




[NCBC-444] XML code documentation Created: 01/May/14  Updated: 02/Jun/14  Resolved: 08/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: .future
Fix Version/s: 2.0 DP1

Type: Story Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed 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-445 XML code documentation - Couchbase.Vi... Technical task Resolved Jeff Morris  
NCBC-446 XML code documentation - Couchbase.Co... Technical task Resolved Jeff Morris  
NCBC-447 XML code documentation - Couchbase.N1... Technical task Resolved Jeff Morris  
NCBC-448 XML code documentation - Couchbase.Au... Technical task Resolved Jeff Morris  
NCBC-449 XML code documentation - Couchbase.Co... Technical task Resolved Jeff Morris  
NCBC-450 XML code documentation - Couchbase.IO... Technical task Resolved Jeff Morris  

 Description   
Annotating all public and most internal classes and methods with XML code comments.




XML code documentation (NCBC-444)

[NCBC-446] XML code documentation - Couchbase.Core.Buckets namespace Created: 01/May/14  Updated: 02/Jun/14  Resolved: 01/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs, library
Affects Version/s: .future
Fix Version/s: 2.0 DP1

Type: Technical task 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


 Comments   
Comment by Jeff Morris [ 01/May/14 ]
commit d5b4c588612d5abb8955ad063ffb310d8ac4c17b




XML code documentation (NCBC-444)

[NCBC-449] XML code documentation - Couchbase.Configuration namespace Created: 01/May/14  Updated: 02/Jun/14  Resolved: 02/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs, library
Affects Version/s: .future
Fix Version/s: 2.0 DP1

Type: Technical task 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


 Comments   
Comment by Jeff Morris [ 02/May/14 ]
commit ad3a5cb876587eb2ff4e4efc3036ac762366ed16




XML code documentation (NCBC-444)

[NCBC-448] XML code documentation - Couchbase.Authentication namespace Created: 01/May/14  Updated: 02/Jun/14  Resolved: 01/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs, library
Affects Version/s: .future
Fix Version/s: 2.0 DP1

Type: Technical task 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


 Comments   
Comment by Jeff Morris [ 01/May/14 ]
commit c58e4aa806592bb556df1fe9c876f13fe26fa20a




XML code documentation (NCBC-444)

[NCBC-445] XML code documentation - Couchbase.Views namespace Created: 01/May/14  Updated: 02/Jun/14  Resolved: 01/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs, library
Affects Version/s: .future
Fix Version/s: 2.0 DP1

Type: Technical task 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


 Comments   
Comment by Jeff Morris [ 01/May/14 ]
commit 9e9ca0adc357cbc43c1b300a46350f051179cd1f




XML code documentation (NCBC-444)

[NCBC-447] XML code documentation - Couchbase.N1QL namespace Created: 01/May/14  Updated: 02/Jun/14  Resolved: 01/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs, library
Affects Version/s: .future
Fix Version/s: 2.0 DP1

Type: Technical task 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


 Comments   
Comment by Jeff Morris [ 01/May/14 ]
commit c9c7576b84ae7cc5c063cde4e9e81a1b52e94345




XML code documentation (NCBC-444)

[NCBC-450] XML code documentation - Couchbase.IO namespace Created: 01/May/14  Updated: 02/Jun/14  Resolved: 08/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs, library
Affects Version/s: .future
Fix Version/s: 2.0 DP1

Type: Technical task 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


 Comments   
Comment by Jeff Morris [ 08/May/14 ]
commit 5402ad79dbc1eff8f7fa02436b2968bc62147621




[NCBC-443] Consolidate all query interfaces into IBucket Created: 01/May/14  Updated: 02/Jun/14  Resolved: 01/May/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 01/May/14 ]
commit bae3efc69d5d231a30b2618ddca50471bf89470f




[NCBC-441] Cluster.cs needs another overloaded ctor for IClusterManager instances Created: 28/Apr/14  Updated: 02/Jun/14  Resolved: 02/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: .future
Fix Version/s: 2.0 DP1

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


 Description   
This is for testability/DI, currently IClusterManager is new'd up in the ctor's

 Comments   
Comment by Jeff Morris [ 02/May/14 ]
commit fdb0731b8e36af268a8e479b2611bcb04048248f




[NCBC-436] Revieve error when I and try and access a view through the .net SDK Created: 18/Apr/14  Updated: 01/May/14  Resolved: 01/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.4
Fix Version/s: 1.3.5

Type: Task Priority: Critical
Reporter: sglazer Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: 64bit Windows 7 I am running in a WCF service with target framework 4.5

Attachments: PNG File Couchbase.png    

 Description   
sample documents:

{
  "type": "UserWebsiteProperties",
  "url": "http://google.com",
  "keywords": [
    "k1",
    "k2",
    "k3",
    "k4",
    "k5"
  ]
}

{
  "type": "UserWebsiteProperties",
  "url": "http://www.test.com",
  "keywords": [
    "k1",
    "k2",
    "k2",
    "video1",
    ""
  ]
}

Map Function:
function (doc, meta) {
  if (doc.type && doc.type == "UserWebsiteProperties" && doc.keywords) {
     emit(doc.url, null);
  }
}

c# code:

 public KeywordList GetAllKeywords()
        {
            var client = CouchbaseManager.Instance;
            var view = client.GetView("_design/keywords", "keywords", true);
            
            var count = view.Count();
            foreach (var row in view)
            {
                var key = row.Info["key"];
            }

            
            return new KeywordList();
        }

Error Result:

Message: Query failed for view keywords in design document _design/keywords

Reason: attachments not supported in Couchbase

Stacktrace: at Couchbase.CouchbaseViewHandler.d__0`1.MoveNext()
at SEOServices.Service1.GetAllKeywords() in c:\Users\Stephen\Desktop\SEO\Services\SEO Services\SEOServices\Service1.svc.cs:line 32
at SyncInvokeGetAllKeywords(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
- See more at: http://www.couchbase.com/communities/q-and-a/net-client-getview-not-working#sthash.MRr0wTgI.dpuf







 Comments   
Comment by sglazer [ 18/Apr/14 ]
Please note: I'm querying the production version of the view in the code: var view = client.GetView("_design/keywords", "keywords", true); but posted a screen shot of the development view. They are the same in both and the error occurs regardless of which version of the view I use. Also a bit more code in case you need it: ublic static class CouchbaseManager
    {
        private readonly static CouchbaseClient _instance;

        static CouchbaseManager()
        {
            _instance = new CouchbaseClient();
        }

        public static CouchbaseClient Instance { get { return _instance; } }
    }
Comment by Jeff Morris [ 18/Apr/14 ]
It's a bug...the client is emitting a url that looks like this:
http://127.0.0.1:8092/default/_design/_design/keywords/_view/keywords

instead of:
http://127.0.0.1:8092/default/_design/keywords/_view/keywords

Can you try installing 1.3.3 and see if you can reproduce it? You may need to revert to 1.3.3 or even 1.3.1 - I'll have a patch pretty soon, if you need it I can do a verification fix.
Comment by Jeff Morris [ 18/Apr/14 ]
Actually, it's not a bug :) well, it's a bug on the users side: you are passing in "_design/keywords" as your design document, when all you need is "keywords". The "_design" portion is an API abstraction and not needed (the API will construct the url and add it). This will work:

var view = client.GetView("keywords", "keywords", true);

That being said, i think we should go ahead and remove the "_design" portion if it's added like this given the level of confusion it causes. The error message returned by the server was less that helpful.

Thanks,

Jeff
Comment by sglazer [ 18/Apr/14 ]
Thanks again for the speedy response Jeff. I would be happy to try installing 1.3.3 and letting you know what happens.I'm not exactly sure what a verification fix is but anything that can get me over this hump so that I can continue working with views would be great. I'll try 1.3.3 in the meantime. Can I use NUGET to intall that version?

Stephen
Comment by sglazer [ 18/Apr/14 ]
Thanks Jeff that did the trick. I apologize if I wasted your time but I used some posted sample code as a reference and the error message definitely threw me for a loop. Great job and thanks a ton for the help.




[NCBC-503] CouchbaseCluster construction is missing un/pw Created: 04/Jun/14  Updated: 04/Jun/14  Resolved: 04/Jun/14

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

Type: Task 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


 Description   
https://github.com/couchbase/couchbase-net-client/pull/2

"I recently used the couchbase net client library and while trying to use the cluster management api's I found a bug where the constructor wasn't passing the username and password along while getting the pool and bucket data. This bug fix simply passes those into the http get calls."

 Comments   
Comment by Jeff Morris [ 04/Jun/14 ]
Merged: http://review.couchbase.org/#/c/37869/




[NCBC-502] XML Code documentation for configuration classes. Created: 03/Jun/14  Updated: 03/Jun/14  Resolved: 03/Jun/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 03/Jun/14 ]
commit 861b04002abab2a815b5a9c49c3829b602a0b325




[NCBC-501] Fix possible cast exception in KetamaKeyMapper Created: 03/Jun/14  Updated: 03/Jun/14  Resolved: 03/Jun/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 03/Jun/14 ]
commit 330e9aa65cc7071056bb54702665f6fbfd4a6b39




[NCBC-499] Refactor InternalPoolImpl so that NRE is not thrown. Created: 02/Jun/14  Updated: 04/Jun/14  Resolved: 04/Jun/14

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

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


 Description   
https://github.com/couchbase/couchbase-net-client/pull/14
http://www.couchbase.com/communities/q-and-a/nullreferenceexception-memcachednodeinternalpoolimpl

NullReferenceException at MemcachedNode+InternalPoolImpl.<Dispose>

I recently updated to Couchbase Client Library .NET 1.3.4 and I've been experiencing daily incidences of the following NullReferenceException:

System.NullReferenceException
Stack:
at Enyim.Caching.Memcached.MemcachedNode+InternalPoolImpl.b__7(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.TimerQueue.FireNextTimers()

The exception is particularly problematic because it appears to happen within the Timer callback here: https://github.com/couchbase/couchbase-net-client/blob/master/src/Enyim.... which means that it bubbles up as an AppDomain.CurrentDomain.UnhandledException and terminates my process

I'm going to enable logging as described here (http://docs.couchbase.com/couchbase-sdk-net-1.3/#configuring-logging) in hopes that I get some more information to go on
- See more at: http://www.couchbase.com/communities/q-and-a/nullreferenceexception-memcachednodeinternalpoolimpl#sthash.x5T3rjeQ.dpuf

 Comments   
Comment by Jeff Morris [ 04/Jun/14 ]
Merged: http://review.couchbase.org/#/c/37840/




[NCBC-494] Finalizer throws NRE if Pools has already been finalized/GC'd Created: 02/Jun/14  Updated: 04/Jun/14  Due: 05/Jun/14  Resolved: 04/Jun/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 04/Jun/14 ]
http://review.couchbase.org/#/c/37879/




[NCBC-492] Refactor ConfigProviders into ConfigProviderBase Created: 29/May/14  Updated: 02/Jun/14  Resolved: 29/May/14

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

Type: Task 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


 Description   
Refactored the common fields and methods of HttpStreamingProvider and CarrierConfigurationProvider into a base class: ConfigProviderBase. Improved readability and maintainability.

 Comments   
Comment by Jeff Morris [ 29/May/14 ]
commit 465ca71b91d55abc9be288a7b6be2fa671ffcc94




CRAM MD5 SASL Support (NCBC-459)

[NCBC-488] Integrate SASL Factory into client Created: 24/May/14  Updated: 02/Jun/14  Resolved: 27/May/14

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

Type: Technical task 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


 Description   
Integrate Sasl factory into client so that the mechanism to be used can be created on the fly based upon server capabilities.

 Comments   
Comment by Jeff Morris [ 27/May/14 ]
commit ca23efee6041e23c9c82467f276d7c074e0e3548




CRAM MD5 SASL Support (NCBC-459)

[NCBC-486] Create CRAM-MD5 ISaslMechanism Impl Created: 24/May/14  Updated: 02/Jun/14  Resolved: 24/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: .future
Fix Version/s: 2.0 DP2

Type: Technical task 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


 Description   
Basic functionality for CRAM-MD5 and SASL using Couchbase's terms.

 Comments   
Comment by Jeff Morris [ 24/May/14 ]
commit a042d8b567f452af62a0878cff71cfbd3b927e52




[NCBC-483] Add Apache License to each source file footer Created: 19/May/14  Updated: 02/Jun/14  Resolved: 19/May/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 19/May/14 ]
commit 1c16121de8673e6f826426af9208c35845e66e45




[NCBC-482] Provide hostname resolution to IP address Created: 16/May/14  Updated: 06/Jun/14  Resolved: 06/Jun/14

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

Type: Task Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed 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-510 Only use DNS lookup when IP is not av... Technical task Resolved Jeff Morris  

 Description   
BucketConfig requires host name to be the IP, which is invalid - the IP address should be resolved from the Hostname.

 Comments   
Comment by Jeff Morris [ 06/Jun/14 ]
commit 234b17990298d00d80115ddf6baf2533480d28af




[NCBC-477] Add support for Incr/Decr Created: 14/May/14  Updated: 14/Jun/14  Resolved: 14/Jun/14

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

Type: Task Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed 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-508 Add Increment operation support Technical task Resolved Jeff Morris  
NCBC-509 Add Decrement operation support Technical task Resolved Jeff Morris  




[NCBC-476] Add Info trace statements to config management Created: 13/May/14  Updated: 02/Jun/14  Resolved: 13/May/14

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

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


 Comments   
Comment by Jeff Morris [ 13/May/14 ]
commit 5a674c8199d513bcef680ad4571ca49e9054b544




[NCBC-472] Implement Set, Add, Replace for Memcached bucket (really Insert, Replace, Upsert) Created: 09/May/14  Updated: 02/Jun/14  Resolved: 09/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: .future
Fix Version/s: 2.0 DP2

Type: Task 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


 Description   
This is similar to NCBC-123 but for memcached buckets.

 Comments   
Comment by Jeff Morris [ 09/May/14 ]
commit ff683cac318d103e9da79c987ebb8ab720c1c1aa




[NCBC-473] Refactor CreateQuery parameters Created: 09/May/14  Updated: 02/Jun/14  Resolved: 09/May/14

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

Type: Task 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


 Description   
Change the order of parameters to make more consistent.

 Comments   
Comment by Jeff Morris [ 09/May/14 ]
commit a859bdc22d58836e0e45214dc453be8b34b619ce




[NCBC-471] Add support for Remove (delete) operation Created: 09/May/14  Updated: 02/Jun/14  Resolved: 09/May/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 09/May/14 ]
commit e70cd0113c5eb63bac8b8ce0048ffebc526d4e70




Set, add, and replace should be separate methods (NCBC-123)

[NCBC-470] Add support for Insert (Add) operation Created: 08/May/14  Updated: 02/Jun/14  Resolved: 09/May/14

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

Type: Technical task 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





[NCBC-469] Refactor IBucket.Insert to IBucket.Upsert Created: 08/May/14  Updated: 02/Jun/14  Resolved: 08/May/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 08/May/14 ]
commit b49d6d867742223be95a30934081def9c623bb0f




[NCBC-424] Add SSL support in support of Couchbase Server 3.0 Created: 27/Mar/14  Updated: 02/Jun/14  Resolved: 22/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs, library
Affects Version/s: .future
Fix Version/s: 2.0 DP1

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

Issue Links:
Dependency
blocks MB-10084 Sub-Task: Changes required for Data E... Open

 Description   
In support of the new SSL feature in Couchbase Server 3.0, we will need to add SSL support. See the related issue CCBC-344.

 Comments   
Comment by Jeff Morris [ 12/May/14 ]
Additional info: https://docs.google.com/document/d/17e-9gNJmIR5baqcxjQCbm5XVACpoYOK8PG-Neg6TTL8/edit
Comment by Jeff Morris [ 22/May/14 ]
commit 30536f0839814dc56543148b62afae3fadf39cb1




[NCBC-422] Check that a CCCP config's rev# is greater than the current Created: 24/Mar/14  Updated: 13/May/14  Resolved: 13/May/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: .future
Fix Version/s: backlog-2.0

Type: Task 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


 Comments   
Comment by Jeff Morris [ 12/May/14 ]
Is the latest rev# always the most updated? Can I assume that CCCP will return a config more than once?
Comment by Jeff Morris [ 13/May/14 ]
43b60903f17b4ef424dda63a8989ff2573e04d6e




[NCBC-418] SASL Authentication Created: 24/Mar/14  Updated: 12/Apr/14  Resolved: 12/Apr/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: .future
Fix Version/s: backlog-2.0

Type: Story 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


 Description   
Provide support for SASL authentication.

 Comments   
Comment by Jeff Morris [ 12/Apr/14 ]
Basic plain text support for SASL




[NCBC-352] ExecuteIncrement with CAS fails Created: 17/Dec/13  Updated: 24/Dec/13  Resolved: 17/Dec/13

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

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


 Description   
The following unit test should pass:

        [Test]
        public void incer_with_cas_test()
        {
            var client = k.Get<CouchbaseClient>();

            client.Remove( "foobar" );

            var result = client.ExecuteGet( "foobar" );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.ExecuteGet( "foobar" );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.ExecuteGet( "foobar" );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.ExecuteGet( "foobar" );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.ExecuteGet( "foobar" );

            Assert.NotNull( result.Value );
            Assert.That( result.Value, Is.EqualTo( 4 ) );
        }

However, the output is:
  Expected: 4
  But was: "1"

The debug/error log for Couchbase / Enyim reads as follows:

2013-12-16 23:36:59.5972|DEBUG|Couchbase.CouchbaseNode|Operation failed :i foobar n: 192.168.0.53:11210 t: Runner thread m: Failed to process response: Invalid arguments sc: InvalidArguments r: 0

2013-12-16 23:36:59.5972|DEBUG|Couchbase.CouchbaseClient|Operation failed :i foobar n: t: Runner thread m: Failed to process response: Invalid arguments sc: InvalidArguments r: 0



 Comments   
Comment by bchavez [ 17/Dec/13 ]
Slight correction to the last assertion:

Assert.That( ulong.Parse( result.Value.ToString() ) , Is.EqualTo( 4ul ) );

Output:

  Expected: 4
  But was: 1
Comment by Jeff Morris [ 17/Dec/13 ]
bchavez -

Try this:

       [Test]
        public void incer_with_cas_test()
        {
            Client.Remove("foobar");

            var casResult = Client.GetWithCas("foobar");
            Client.ExecuteIncrement("foobar", 1, 1, casResult.Cas);

            var result = Client.ExecuteGet("foobar");
            Client.ExecuteIncrement("foobar", 1, 1, casResult.Cas);

            result = Client.ExecuteGet("foobar");
            Client.ExecuteIncrement("foobar", 1, 1, casResult.Cas);

            result = Client.ExecuteGet("foobar");
            Client.ExecuteIncrement("foobar", 1, 1, casResult.Cas);

            result = Client.ExecuteGet("foobar");

            Assert.NotNull(result.Value);
            Assert.That(Convert.ToInt32(result.Value), Is.EqualTo(4));
        }

BTW - Thank you, thank you, thank you for providing a test with your bug report :)

-Jeff
Comment by Jeff Morris [ 17/Dec/13 ]
I provided a working example that shows how to use CAS with the .NET SDK. The API is a little wonky and this is something we will improve in the next version: 2.0
Comment by bchavez [ 20/Dec/13 ]
Hi Jeff,

I don't think the unit test is semantically accurate ...

I've added a "Console.WriteLine" to print out the CAS value after each ExecuteIncrement:

    [Test]
        public void incer_with_cas_test2()
        {
            var Client = k.Get<CouchbaseClient>();

            Client.Remove( "foobar" );

            var casResult = Client.GetWithCas( "foobar" );
            Console.WriteLine( "Cas Value: {0}", casResult.Cas );
            Client.ExecuteIncrement( "foobar", 1, 1, casResult.Cas );

            var result = Client.ExecuteGet( "foobar" );
            Console.WriteLine( "Cas Value: {0}", casResult.Cas );
            Client.ExecuteIncrement( "foobar", 1, 1, casResult.Cas );

            result = Client.ExecuteGet( "foobar" );
            Console.WriteLine( "Cas Value: {0}", casResult.Cas );
            Client.ExecuteIncrement( "foobar", 1, 1, casResult.Cas );

            result = Client.ExecuteGet( "foobar" );
            Console.WriteLine( "Cas Value: {0}", casResult.Cas );
            Client.ExecuteIncrement( "foobar", 1, 1, casResult.Cas );

            result = Client.ExecuteGet( "foobar" );

            Assert.NotNull( result.Value );
            Assert.That( Convert.ToInt32( result.Value ), Is.EqualTo( 4 ) );
        }

Cas Value: 0
Cas Value: 0
Cas Value: 0
Cas Value: 0

The foobar counter does reach a value of 4. However, it does so only when the cas value is zero. I don't think this is the expected behavior.

I've modified my unit test with your suggestion; and the unit test still fails:

       [Test]
        public void incer_with_cas_test()
        {
            var client = k.Get<CouchbaseClient>();

            client.Remove( "foobar" );

            var result = client.GetWithCas( "foobar" );
            Console.WriteLine( "Cas Value: {0}", result.Cas );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.GetWithCas( "foobar" );
            Console.WriteLine( "Cas Value: {0}", result.Cas );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.GetWithCas( "foobar" );
            Console.WriteLine( "Cas Value: {0}", result.Cas );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.GetWithCas( "foobar" );
            Console.WriteLine( "Cas Value: {0}", result.Cas );
            client.ExecuteIncrement( "foobar", 1, 1, result.Cas );

            result = client.GetWithCas( "foobar" );

            Assert.NotNull( result.Result );
            Assert.That( ulong.Parse( result.Result.ToString() ) , Is.EqualTo( 4ul ) );
        }

Cas Value: 0
Cas Value: 2477644067283
Cas Value: 2477644067283
Cas Value: 2477644067283

  Expected: 4
  But was: 1
Comment by Jeff Morris [ 23/Dec/13 ]
bchavez -

Your right, that unit test is not correct. I'll dig deeper into this and see what I can find. Also, if you can isolate the issue and want to go ahead and try to fix it, feel free to submit a pull request.

-Jeff
Comment by bchavez [ 24/Dec/13 ]
Hey Jeff,

I'm starting to think couchbase / memcached fundamentally does not support Increment with CAS.

I've found that none of the other SDKs (java, python, etc...) do not support INCR with CAS parameter. The .NET SDK is the only one that stands out with CAS parameters.

Also, a quick perusal of the couchbase / memcached source code, I found:

couchbase-server_src\memcached\daemon\memcached.c:

static void complete_incr_bin(conn *c) {
    protocol_binary_response_incr* rsp = (protocol_binary_response_incr*)c->wbuf;
    protocol_binary_request_incr* req = binary_get_request(c);

    assert(c != NULL);
    assert(c->wsize >= sizeof(*rsp));

    if (req->message.header.request.cas != 0) {
        write_bin_packet(c, PROTOCOL_BINARY_RESPONSE_EINVAL, 0);
        return;
    }

I've confirmed with Wireshark protocol analyzer and the client is sending the correct CAS value over the wire on TCP 11210, but an "Invalid arguments" response is sent from couchbase.

Ultimately, from the memcache.c source code above, I think this means if the CAS value in the request header is NOT zero, an "Invalid arguments" response is shot back to the client.

Fundamentally, I don't think CAS operations can be preformed with INCR and DECR.

Could you please confirm that INCR with CAS is an invalid operation in Couchbase with someone who's more experienced with the couchbase server code?

I suppose as a possible workaround, I could "Increment with CAS" on the client side using Store mode operations ...

Thanks,
Brian
Comment by Jeff Morris [ 24/Dec/13 ]
Hey Brian -

So, the official story is that since incr/decr are atomic; there is no need for CAS, so the server does not support it. As to why the .NET client has incr/decr with overloads for CAS is beyond me, this version of the client has quite a bit of history behind it.

I think the right thing to do here is to mark them as obsolete with a message indicating why and then not include them in the 2.0 version of the client.

-Jeff




[NCBC-337] Investigate "View vquery was mapped to a dead node, failing." errors in situational testing Created: 04/Dec/13  Updated: 10/Dec/13  Resolved: 10/Dec/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.0
Fix Version/s: 1.3.1

Type: Task 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

Attachments: PNG File statusHealthy-config.PNG     PNG File statusWarmup-config.PNG    

 Description   
In situational testing, we have a very large number of view exceptions in the logs. We may want to provide a retry strategy for certain classifications of view errors, especially during a rebalance scenario.

 Comments   
Comment by Jeff Morris [ 10/Dec/13 ]
So, this happens when a config does not contain a "couchApiBase" element is not returned with the config. At this point the "status" in the config is "warmup".
Comment by Jeff Morris [ 10/Dec/13 ]
http://review.couchbase.org/#/c/31007/




[NCBC-334] Add a method of getting the version of the library programatically Created: 14/Nov/13  Updated: 04/Jan/14  Resolved: 04/Jan/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.8
Fix Version/s: 1.3.1

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


 Description   
From some tools, it would usually be useful to get a version from the CouchbaseClient class. Ideally this would be derived from something like 'git describe' such that we could see if the code being used is not yet released and what it's lineage is.



 Comments   
Comment by Jeff Morris [ 31/Dec/13 ]
After some discussion, the solution needs the following steps:

1-Git hook: writes the sha1, git-describe or other info describing the snapshot of source being built to a file (Version.txt) in the local directory - this hook is run on every pull, fetch, etc
2-Version.txt: a file in the local directory that is:
  a) a Build Action of "Embedded resource"*,
  b) is added to git-ignore
  c) contains the version info from git described in #1
3-Build event: will copy the text from the file into the appropriate assembly attributes:
  a) for version into the AssemblyVersionAttribute,
  b) for other info (git describe or sha1 into the AssemblyInformationalAttribute. I think we could do this via variable substitution.

*May not have to be an embedded resource, maybe just a file on disk.
Comment by Jeff Morris [ 31/Dec/13 ]
Prototype: https://github.com/jeffrymorris/githook-version-example
Comment by Jeff Morris [ 04/Jan/14 ]
Committed a first generation implementation that adds a post-merge git hook that will run on a git-pull (iif their are remote changes). The hook will run a git-describe to get the state of the current repo and embed it within the AssemblyInformationVersion attribute in the AssemblyInfo.cs, which makes the info viewing through Windows explorer. It also adds a Version.txt file with the same information that is included as an embedded resource.

A later revision will update the AssemblyVersion and AssemblyFileVersion attributes with a version based off the git-describe (details to come) and add the git log information to the Version.txt file as well as add a method to expose the information publicly.

Note that the psake scripts will overwrite this information and will need to be updated so that the info exists for release builds as well as testing builds.

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




[NCBC-312] Client API documentation for the creation of Design Docs/Views Created: 09/Oct/13  Updated: 05/Feb/14  Resolved: 10/Oct/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.2.8
Fix Version/s: backlog-2.0

Type: New Feature Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Won't Fix Votes: 0
Labels: views
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
From a user:

 "We’ve been reviewing again using couchbase for a couple of bits but have noticed that the current .net client has no ability to create views and this has to be done via the console. If we went this route this could become a management nightmare for us."

 Comments   
Comment by Jeff Morris [ 09/Oct/13 ]
There is some documentation here: http://docs.couchbase.com/couchbase-sdk-net-1.2/#appendix-cluster-management-with-thenet-client-library
Comment by Matt Ingenthron [ 10/Oct/13 ]
Closeable?
Comment by Jeff Morris [ 10/Oct/13 ]
Yes, I think so.
Comment by Jeff Morris [ 10/Oct/13 ]
Documentation can be found here:
http://docs.couchbase.com/couchbase-sdk-net-1.2/#appendix-cluster-management-with-thenet-client-library




[NCBC-311] Uncaught Null Reference Exception causes host process to terminate Created: 09/Oct/13  Updated: 03/Dec/13  Resolved: 03/Dec/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.8
Fix Version/s: 1.3.0

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


 Description   
From the Enyim github repo:

I found a potential race condition inside Enyim.Caching causing a null reference exception which propagates up through CouchbaseClient and crashes the IIS process.

I've filed an issue on Github with the details but also want to see if Couchbase team can do anything about it. I'm not sure if or how Couchbase team is related to the Enyim.Caching project.

https://github.com/enyim/EnyimMemcached/issues/131:

I got this in my Windows event log:

An unhandled exception occurred and the process was terminated.

Application ID: /LM/W3SVC/1/ROOT/oa3

Process ID: 3432

Exception: System.NullReferenceException

Message: Object reference not set to an instance of an object.

StackTrace: at Enyim.Caching.CountdownEvent.Signal()
at Couchbase.CouchbaseClient.<>c__DisplayClass16.b__f(Boolean success)
at Couchbase.SyncOperation.<>c__DisplayClass2.b__1(Boolean readSuccess)
at Enyim.Caching.Memcached.Protocol.Binary.BinaryResponse.DoDecodeHeader(AsyncIOArgs asyncEvent, Boolean& pendingIO)
at Enyim.Caching.Memcached.Protocol.Binary.BinaryResponse.DoDecodeHeaderAsync(AsyncIOArgs asyncEvent)
at Enyim.Caching.Memcached.PooledSocket.AsyncSocketHelper.EndReceive()
at Enyim.Caching.Memcached.PooledSocket.AsyncSocketHelper.AsyncReadCompleted(Object sender, SocketAsyncEventArgs e)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSuccess(SocketError socketError, Int32 bytesTransferred, SocketFlags flags)
at System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

It caused IIS / AppPool to crash. Looking at the source code I suspect it's a potential race condition where Enyim.Caching.CountdownEvent.mre was set to null by the Dispose() method while CouchbaseClient.PerformMultiSync() is calling .Signal() in an async operation (which calls this.mre.Set() triggering the NRE). Maybe there should be a null check before calling mre.Set()?

 Comments   
Comment by Jeff Morris [ 03/Dec/13 ]
http://review.couchbase.org/#/c/30275/




[NCBC-306] .NET GetJSON operation throws null reference exception Created: 03/Oct/13  Updated: 28/Oct/13  Resolved: 28/Oct/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.8
Fix Version/s: 1.3.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


 Description   
"When I try to perform a GetJSON operation for a key that doesn't have any data associated with it, I get a null reference exception. Is this the expected behaviour? Looking at the source for the .NET client it seems that a null check is performed, but too late."

 Comments   
Comment by Jeff Morris [ 28/Oct/13 ]
http://review.couchbase.org/#/c/29840/

I am not sure if my implementation is sufficient...however, a null value will be returned by the GetJson method if it was set by the SetJson method. My concern is that is it valid to have a null document in a bucket? Also, the string "null" is what is what is returned by the server.




[NCBC-198] When performing MultiGet, unloading AppDomain crashes the host Created: 08/Jan/13  Updated: 29/Oct/13  Resolved: 29/Oct/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.6
Fix Version/s: 1.3.0

Type: Bug Priority: Critical
Reporter: John Zablocki (Inactive) Assignee: Jeff Morris
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
https://github.com/enyim/EnyimMemcached/issues/103

 Comments   
Comment by Jeff Morris [ 29/Oct/13 ]
https://www.couchbase.com/issues/browse/NCBC-311




[NCBC-170] evaluate socket pool reliability change Created: 30/Nov/12  Updated: 07/Oct/13  Resolved: 07/Oct/13

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

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


 Description   
A recent issue seems to be similar to a reported issue in EnyimMemcached. We should evaluate whether or not to include this in our release.

See https://github.com/enyim/EnyimMemcached/issues/94

 Comments   
Comment by Jeff Morris [ 07/Oct/13 ]
Nothing changed - issue restricted to older version of memcached.




[NCBC-138] Streaming api not working on Windows server 2008 with latest code form github Created: 08/Oct/12  Updated: 22/Oct/12  Resolved: 22/Oct/12

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

Type: Bug Priority: Critical
Reporter: Mike Wiederhold Assignee: Mike Wiederhold
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: windows server 2008 64-bit


 Description   
Please double check that the streaming api is still properly functioning and follow up on the forum post below.

http://www.couchbase.com/forums/thread/why-does-bucketstreaming-keep-failing-windows-server-2008-r2-beta-2-0

 Comments   
Comment by John Zablocki (Inactive) [ 22/Oct/12 ]
The build on Nuget and the binaries at couchbase.com/develop/net/next are both from the latest source published to GitHub. I regularly use the raw source and haven't seen this problem. Mark N. also uses the source when testing on a Windows Server box and hasn't reported this issue.




[NCBC-9] docs do not describe how to configure dev or production views Created: 29/Sep/11  Updated: 23/Mar/12  Resolved: 23/Mar/12

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

Type: Bug Priority: Critical
Reporter: Matt Ingenthron Assignee: John Zablocki (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by John Zablocki (Inactive) [ 23/Mar/12 ]
It is now described at http://www.couchbase.com/develop/net/next
Comment by John Zablocki (Inactive) [ 23/Mar/12 ]
See ProductionModeNameTransformer and DevelopmentModeNameTransformer in Getting Started.




[NCBC-81] ExecuteGet() for DictionaryType on multiple keys does not throw a exception if it is not able to connect to a node Created: 28/Jun/12  Updated: 04/Dec/13  Resolved: 04/Dec/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.1.6
Fix Version/s: 1.3.0

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


 Description   
For development purposes i'm using a local Couchbase server installation with a single node. So i guess that turning off the CouchbaseServer service means the whole cluster in my case.
Here's a simple demo code:

System.Configuration.Configuration cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ICouchbaseClientConfiguration section = cfg.GetSection("Couchbase") as ICouchbaseClientConfiguration;

using (CouchbaseClient client = new CouchbaseClient(section))
{
IOperationResult res = client.ExecuteStore(Enyim.Caching.Memcached.StoreMode.Set, "Test1", 1);
Console.WriteLine("Set1 Success:{0} StatusCode:{1} Message:{2}", res.Success, res.StatusCode, res.Message);

res = client.ExecuteStore(Enyim.Caching.Memcached.StoreMode.Set, "Test2", 2);
Console.WriteLine("Set2 Success:{0} StatusCode:{1} Message:{2}", res.Success, res.StatusCode, res.Message);

IDictionary<string, IGetOperationResult> multigetRes = client.ExecuteGet(new string[] { "Test1", "Test2" });
Console.WriteLine("Dictionary count: {0}", multigetRes.Count);

foreach (KeyValuePair<string, IGetOperationResult> kvp in multigetRes)
{
Console.WriteLine("Get {0} Success:{1}, StatusCode: {2} Message: {3}", kvp.Key, kvp.Value.Success, kvp.Value.StatusCode, kvp.Value.Message);
}
}

Output with CouchbaseServer service on:
Set1 Success:True StatusCode:0 Message:
Set2 Success:True StatusCode:0 Message:
Dictionary count: 2
Get Test1 Success:True, StatusCode: Message:
Get Test2 Success:True, StatusCode: Message:

Output with CouchbaseServer service off:
Set1 Success:False StatusCode: Message:Failed to locate node
Set2 Success:False StatusCode: Message:Failed to locate node
Dictionary count: 0





Singular gets result in the correct exception error message:
Modified demo:
System.Configuration.Configuration cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ICouchbaseClientConfiguration section = cfg.GetSection("Couchbase") as ICouchbaseClientConfiguration;
using (CouchbaseClient client = new CouchbaseClient(section))
{
IOperationResult res = client.ExecuteStore(Enyim.Caching.Memcached.StoreMode.Set, "Test1", 1);
Console.WriteLine("Set1 Success:{0} StatusCode:{1} Message:{2}", res.Success, res.StatusCode, res.Message);
res = client.ExecuteStore(Enyim.Caching.Memcached.StoreMode.Set, "Test2", 2);
Console.WriteLine("Set2 Success:{0} StatusCode:{1} Message:{2}", res.Success, res.StatusCode, res.Message);
IDictionary<string, IGetOperationResult> multigetRes = client.ExecuteGet(new string[] { "Test1", "Test2" });
Console.WriteLine("Dictionary count: {0}", multigetRes.Count);
foreach (KeyValuePair<string, IGetOperationResult> kvp in multigetRes)
{
Console.WriteLine("MultiGet {0} Success:{1}, StatusCode: {2} Message: {3}", kvp.Key, kvp.Value.Success, kvp.Value.StatusCode, kvp.Value.Message);
}
res = client.ExecuteGet("Test1");
Console.WriteLine("Get1 Success:{0} StatusCode:{1} Message:{2}", res.Success, res.StatusCode, res.Message);
res = client.ExecuteGet("Test2");
Console.WriteLine("Get2 Success:{0} StatusCode:{1} Message:{2}", res.Success, res.StatusCode, res.Message);
}

Output:
Set1 Success:False StatusCode: Message:Failed to locate node
Set2 Success:False StatusCode: Message:Failed to locate node
Dictionary count: 0
Get1 Success:False StatusCode: Message:Unable to locate node
Get2 Success:False StatusCode: Message:Unable to locate node

 Comments   
Comment by Ivars Auzins [ 04/Oct/13 ]
I added pull request in github that would fix this: https://github.com/couchbase/couchbase-net-client/pull/8
Comment by Jeff Morris [ 04/Oct/13 ]
Thanks Ivars! I will review this for the 1.3.0 release.
Comment by Jeff Morris [ 04/Dec/13 ]
http://review.couchbase.org/#/c/30718/




[NCBC-467] AwaitableIOStrategy need it's Dispose method to be implemented. Created: 08/May/14  Updated: 24/Jun/14  Resolved: 24/Jun/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 24/Jun/14 ]
Completed and committed some time back.




[NCBC-439] HttpStreamingProvider streaming thread hangs when Dispose is called on Cluster object Created: 28/Apr/14  Updated: 24/Jun/14  Resolved: 24/Jun/14

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

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


 Description   
When called Dispose() should close and cleanup _everything_ however, if you do not explicitly call Cluster.CloseBucket(bucket) in certain cases the HttpStreamingProvider listener thread will hang indefinitly if Cluster.Dispose() is called. This is a definite bug that needs to be resolved before developer preview.

*Note: remove comment from code when resolved

 Comments   
Comment by Jeff Morris [ 24/Jun/14 ]
commit 335b2ad22752623d6279850d2ec1a36448982e66




[NCBC-417] Cluster.Dispose does not release all resources - config listener thread hangs in certain cases Created: 16/Mar/14  Updated: 24/Jun/14  Resolved: 24/Jun/14

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

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


 Comments   
Comment by Jeff Morris [ 24/Jun/14 ]
Resolved some time back.




[NCBC-291] add method to access errors array in view response Created: 19/Aug/13  Updated: 24/Jun/14  Resolved: 24/Jun/14

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

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


 Description   
Currently, there's no way to get to the errors []

 Comments   
Comment by Jeff Morris [ 12/Dec/13 ]
Per this ticket, this feature will be moved to the 2.0 version of the client: http://www.couchbase.com/issues/browse/NCBC-289
Comment by Jeff Morris [ 24/Jun/14 ]
commit 90124fe52922daa5e45dcc84e9121fd359122c9b




[NCBC-428] Refactor URI creation across all HTTP endpoints Created: 01/Apr/14  Updated: 25/Jun/14  Resolved: 25/Jun/14

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

Type: Task 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


 Description   
The current source is a mishmash of different ways to create uri's on the fly for configs, view requests, and query requests. This needs to be better thought and implemented or else we'll have a maintenance nitemare.

 Comments   
Comment by Jeff Morris [ 25/Jun/14 ]
This was done some time back. If I find any additional URI creation logic strewn about, I'll re-open or create a new ticket.




[NCBC-478] Add support for Append Created: 14/May/14  Updated: 25/Jun/14  Resolved: 25/Jun/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 25/Jun/14 ]
commit 58188438cd4c21a73194e73f6342fbc410d0b941




[NCBC-500] IsArrayOrCollection does not support IEnumerable Created: 02/Jun/14  Updated: 30/Jun/14  Resolved: 30/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.5
Fix Version/s: 1.3.7

Type: Story 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


 Description   
https://github.com/couchbase/couchbase-net-client/pull/15




[NCBC-421] Refactor and Improve IO layer Created: 24/Mar/14  Updated: 08/Jul/14  Resolved: 08/Jul/14

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

Type: Story Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed 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-524 Refactor OperationBase and other clas... Technical task Resolved Jeff Morris  
NCBC-525 Misc performance improvements and ref... Technical task Resolved Jeff Morris  

 Description   
The current impl needs to be optimized - SocketAsynEventArgs are not being reused causing excessive GC.

 Comments   
Comment by Jeff Morris [ 08/Jul/14 ]
commit 6a9633f6f107d49f5db7d0a624cf673b6a743656

Probably not the last refactor here, but made a number improvements to design and structure of IO layer, most notable decoupled conversion of data to/from server from IO connection to IO operation classes.




[NCBC-504] Use ForwardVBucketMap when available Created: 06/Jun/14  Updated: 24/Jul/14  Resolved: 24/Jul/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 24/Jul/14 ]
commit 8b030587562a1d21770505f2edc60a69f353faab




Add durability requirements (the feature formally known as "Observe") (NCBC-475)

[NCBC-490] support configuring the poll interval with .net client for observe persistto and replicateto performance Created: 27/May/14  Updated: 08/Aug/14  Resolved: 08/Aug/14

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

Type: Technical task Priority: Critical
Reporter: Cihan Biyikoglu Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: .net libraries 1.3.5


 Description   
Most enterprises that use us as a platform for general purpose operation, do persistto and replicateto testing. Without the tunables, the results tend to be high latency.
It would be great to get the same configurability options as the JAVA client in the .net client. http://docs.couchbase.com/couchbase-sdk-java-1.2/#setting-runtime-parameters-for-the-couchbaseconnectionfactorybuilder


email exchange with Jeff:

From: Jeffry Morris <jeffry.morris@couchbase.com>
Date: Thursday, May 22, 2014 at 9:47 PM
To: Cihan Biyikoglu <cihan@couchbase.com>
Subject: RE: poll interval for observe

Cihan –
 
It doesn’t look like it – I see 500ms hardcoded in the source.
 
https://github.com/couchbase/couchbase-net-client/blob/master/src/Couchbase/ObserveHandler.cs#L171
 
I am pretty sure that is the poll interval.
 
I’ll take a deeper look tomorrow.
 
-Jeff
 
 
 
From: Cihan Biyikoglu
Sent: Thursday, May 22, 2014 9:27 PM
To: Jeffry Morris
Subject: poll interval for observe
 
Jeff, is there a way to set the poll interval in the .net client?
I am doing some testing with persist to and replicate to and need to play with the tuning.
Thanks

 Comments   
Comment by Jeff Morris [ 02/Jun/14 ]
Set fix version to be 1.3.7 which is set for July 1, 2014 release. Note that release is tentative pending .NET SDK 2.0 Beta Release on that date. It might be better to make this a 2.0 feature? At least it should have another ticket for inclusion there.
Comment by Cihan Biyikoglu [ 02/Jun/14 ]
2.0 works as well Jeff. thanks
Comment by Jeff Morris [ 08/Aug/14 ]
http://review.couchbase.org/#/c/40351/




[NCBC-564] Respect JsonSerializer settings for deserialization Created: 26/Jul/14  Updated: 11/Aug/14  Resolved: 11/Aug/14

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

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


 Description   
Pull request here:
https://github.com/couchbase/couchbase-net-client/pull/17


 Comments   
Comment by Jeff Morris [ 28/Jul/14 ]
Thanks for submitting bchavez!
Comment by bchavez [ 28/Jul/14 ]
Thanks, I also am also (slightly off topic) having problems with this section of code:

            if (!IsArrayOrCollection(typeof(T)))
            {
                value = DocHelper.InsertId(value, key);
            }

I am managing all the document IDs myself in my application. But DocHelper keeps interfering with my ID during deserialization. Is there a way we can possibly set a flag that wont interfere with my JSON ?

One example: All my domain objects have a strongly typed Guid as their ID.

The KEY to an Account object is "acct:aaaa-bb-cc-dd".

POCO in C#:
public class Account{
    public Guid Id{get;set;}
}

I format the key to this object inside my App; however, during deserialization DocHelper interferes with the JSON by injecting the KEY: "acct:aaaa-bb-cc-dd" into the ID property in the JSON before deseralization.

So when Newtonsoft deserializes the JSON with the injected DocHelper Id:Key:"acct:aaaa-bb-cc-dd" cannot be converted to a Guid because of the prefix "acct:" is an invalid Guid format. I'd prefer the SDK not interfere with any of my ser/deser JSON.

Perhaps we can add some flag that can short circuit the DocHelper injection?

Thanks,
Brian
Comment by Jeff Morris [ 28/Jul/14 ]
Yes, the proper way to do this would be to create another ticket as a feature request.

A couple of criterion to consider:
a) The default should be the current behavior - don't break existing users
b) It's configurable through the app.config
c) Includes set of unit tests showing default and "set" behavior

As always, if you would like to take a stab at it and submit a PR, go for it :)

-Jeff
Comment by bchavez [ 28/Jul/14 ]
This is awesome. Thank you. Yea, I'll likely take a stab at it later today.
Comment by Jeff Morris [ 28/Jul/14 ]
>> I'd prefer the SDK not interfere with any of my ser/deser JSON.

Agreed, not sure why it enforces it TBH.

>>This is awesome. Thank you. Yea, I'll likely take a stab at it later today.

Cool, have fun!
Comment by Jeff Morris [ 11/Aug/14 ]
86fd1c588df15611b557bfa7e401581e005c188e




[NCBC-475] Add durability requirements (the feature formally known as "Observe") Created: 09/May/14  Updated: 11/Aug/14  Resolved: 11/Aug/14

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

Type: Story Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Fixed 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-490 support configuring the poll interval... Technical task Resolved Jeff Morris  
NCBC-541 Implement Observe command Technical task Resolved Jeff Morris  
NCBC-542 Provide Observe method on IBucket Technical task Resolved Jeff Morris  
NCBC-543 Provide durability constraints for mu... Technical task Resolved Jeff Morris  

 Comments   
Comment by Matt Ingenthron [ 02/Jul/14 ]
The official term is "durability requirements"
Comment by Jeff Morris [ 11/Aug/14 ]
http://review.couchbase.org/#/c/40351/




[NCBC-440] Cluster object needs to cluster level Authentication Created: 28/Apr/14  Updated: 24/Sep/14  Resolved: 24/Sep/14

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

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


 Description   
While buckets are authenticated, cluster level authentication also needs to be done.

 Comments   
Comment by Jeff Morris [ 24/Sep/14 ]
Resolved within the ClusterManager and BucketManager.




[NCBC-659]  Make KetamaKeyMapper and VBucketKeyMapper Dispose HashAlgorithm after every use Created: 28/Sep/14  Updated: 30/Sep/14  Resolved: 30/Sep/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: 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


 Description   
This class maintains a reference to HashAlgorithm which has a Dipose method which is not called.

 Comments   
Comment by Jeff Morris [ 30/Sep/14 ]
Refactored both KeyMapper's so that they create and Dispose HashAlgorithm instance after every use. If they are not disposed, they will end up in the finalization queue and cause pressure there. Also, it appears if you reuse the instance, it may become corrupted in multi-threaded environments; this resolves that potential issue.




[NCBC-660] Exception: SafeHandle has been closed in MemcachedBucket.MultiGet method. Created: 28/Sep/14  Updated: 30/Sep/14  Resolved: 30/Sep/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: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
   at System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean& success)
   at System.StubHelpers.StubHelpers.SafeHandleAddRef(SafeHandle pHandle, Boolean& success)
   at System.Security.Cryptography.Utils.HashData(SafeHashHandle hHash, Byte[] data, Int32 cbData, Int32 ibStart, Int32 cbSize)
   at System.Security.Cryptography.MD5CryptoServiceProvider.HashCore(Byte[] rgb, Int32 ibStart, Int32 cbSize)
   at System.Security.Cryptography.HashAlgorithm.ComputeHash(Byte[] buffer)
   at Couchbase.Core.Buckets.KetamaKeyMapper.GetHash(String key) in c:\Users\jmorris\repos\CouchbaseNetClient-Build-2.0\couchbase-net-client\Src\Couchbase\Core\Buckets\KetamaKeyMapper.cs:line 80
   at Couchbase.Core.Buckets.KetamaKeyMapper.MapKey(String key) in c:\Users\jmorris\repos\CouchbaseNetClient-Build-2.0\couchbase-net-client\Src\Couchbase\Core\Buckets\KetamaKeyMapper.cs:line 38
   at Couchbase.Core.Buckets.MemcachedBucket.GetServer(String key) in c:\Users\jmorris\repos\CouchbaseNetClient-Build-2.0\couchbase-net-client\Src\Couchbase\Core\Buckets\MemcachedBucket.cs:line 100
   at Couchbase.Core.Buckets.MemcachedBucket.SendWithRetry[T](IOperation`1 operation) in c:\Users\jmorris\repos\CouchbaseNetClient-Build-2.0\couchbase-net-client\Src\Couchbase\Core\Buckets\MemcachedBucket.cs:line 110
   at Couchbase.Core.Buckets.MemcachedBucket.Get[T](String key) in c:\Users\jmorris\repos\CouchbaseNetClient-Build-2.0\couchbase-net-client\Src\Couchbase\Core\Buckets\MemcachedBucket.cs:line 595
   at Couchbase.Core.Buckets.MemcachedBucket.<>c__DisplayClass23`1.<Get>b__22(Tuple`2 range, ParallelLoopState loopstate) in c:\Users\jmorris\repos\CouchbaseNetClient-Build-2.0\couchbase-net-client\Src\Couchbase\Core\Buckets\MemcachedBucket.cs:line 614
   at System.Threading.Tasks.Parallel.<>c__DisplayClass32`2.<PartitionerForEachWorker>b__30()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass11.<ExecuteSelfReplicating>b__10(Object param0)

 Comments   
Comment by Jeff Morris [ 30/Sep/14 ]
Fixed by: http://www.couchbase.com/issues/browse/NCBC-659




[NCBC-479] Add Retry logic for NMV's Created: 14/May/14  Updated: 02/Oct/14  Resolved: 29/Jul/14

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

Type: Task 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
relates to NCBC-551 After a hard Failover in flight opera... Resolved

 Comments   
Comment by Jeff Morris [ 29/Jul/14 ]
CR: http://review.couchbase.org/#/c/39989/




[NCBC-671] During rebalance client blocks while updating configuration causing high latency Created: 05/Oct/14  Updated: 12/Oct/14  Resolved: 12/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: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by NCBC-644 ops/sec is not restored to the expect... Closed
Relates to
relates to NCBC-665 significant regression in memcached o... Closed

 Comments   
Comment by Jeff Morris [ 05/Oct/14 ]
2) for some tests latency is still high, for example http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.0-1209/Rb2OutEpt-HYBRID/10-03-14/065541/b4930d641ec45014b14eed2bf61d9422-MC.html
3) still a lot of MEMD_ENOENT errors for some tests, for example http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.0-1209/ReAdd2-HYBRID/10-03-14/066417/f24ae77ed735a764be0cfca39992fd31-MC.html
where rebalance( readd) completed but there are persistent errors with MEMD_ENOENT
4) queries ops drop to ~0 during rebalance http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.0-1209/ReAdd2-HYBRID/10-03-14/066417/f24ae77ed735a764be0cfca39992fd31-CB.html
Comment by Jeff Morris [ 05/Oct/14 ]
I can verify through the logs that during a rebalance for periods of time the client is spending 100% updating configuration and 0% processing operations.
Comment by Jeff Morris [ 07/Oct/14 ]
My previous comment is invalid. The client doesn't block, but request times from the server increase from ~100ms-~5...30s. This behavior is reproducible in LBC as well.

-Time to reconfigure client ~10ms
-Time between application initiating operation and total operation time is ~0-1ms
Comment by Jeff Morris [ 12/Oct/14 ]
NCBC-644




[NCBC-461] Add "meta document" support Created: 07/May/14  Updated: 01/Jul/14  Resolved: 01/Jul/14

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

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


 Description   
Per SDK 2.0 spec (note need to understand this a bit more)
id,
cas,
expiration
...

 Comments   
Comment by Jeff Morris [ 01/Jul/14 ]
https://www.couchbase.com/issues/browse/NCBC-538




[NCBC-474] Add CAS support Created: 09/May/14  Updated: 01/Jul/14  Resolved: 01/Jul/14

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

Type: Task 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


 Comments   
Comment by Jeff Morris [ 01/Jul/14 ]
commit e601cf6c2f7c92efa69531e19662c404e1c10c26




[NCBC-498] Common Flags Created: 02/Jun/14  Updated: 29/Aug/14  Resolved: 29/Aug/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 DP1
Fix Version/s: backlog-2.0

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


 Description   
Support for "common flags" - consistent datatypes across all SDK's for stored values.

 Comments   
Comment by Jeff Morris [ 29/Aug/14 ]
http://www.couchbase.com/issues/browse/NCBC-608




[NCBC-496] 2.0 Sample Application Created: 02/Jun/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

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

Type: Task 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





CRAM MD5 SASL Support (NCBC-459)

[NCBC-487] Create Sasl Mechanism Factory Created: 24/May/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

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

Type: Technical task 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


 Description   
Factory for creating Sasl mechanisms based off of CB servers supported mechanisms from ListMechanism.

 Comments   
Comment by Jeff Morris [ 26/May/14 ]
commit bd6601186c0007b771b84a7cbdc88a8c5f20aebc




Set, add, and replace should be separate methods (NCBC-123)

[NCBC-462] Add support for Update operation Created: 07/May/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

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

Type: Technical task 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





[NCBC-481] Sandcastle Documentation for Beta Created: 14/May/14  Updated: 15/Sep/14  Resolved: 15/Sep/14

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

Type: Task 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

Attachments: Zip Archive developer-preview-1-help.zip    

 Comments   
Comment by Jeff Morris [ 15/May/14 ]
Sans looking and complete documentation, attached is the sandcastle generated HTML for the .NET 2 DP1. Closing this ticket, but will open more to handle formatting and additional commenting. Please contents of attached zip - extract and open index.html in a browser.
Comment by Matt Ingenthron [ 15/May/14 ]
Nice!




[NCBC-661] When the only operation are view requests, updated configs are not sent to client Created: 28/Sep/14  Updated: 13/Oct/14  Resolved: 13/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: 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


 Description   
When the client has boot straps using "Optimized configuration management" and the only operation being performed, the client never updates it's server configuration, because it doesn't have any means of knowing that it has changed.

 Comments   
Comment by Jeff Morris [ 29/Sep/14 ]
Two Scenarios:
1. Node is added while load is view specific
2. Node is removed while load is view specific

Note that when a node is removed, the server first returns the following message:

Error: noproc. Reason: {gen_server,call,[request_throttler,{note_request,<0.8540.71>,capi},infinity]}.

For several requests, followed by:

{"error":"not_found","reason":"missing"}

For scenario #1, there is no way for the client to be aware of the added node unless it polls or receives a config update asynchronously. For #2, we could use the response message, but the "noproc" message is only returned for a short time and the "not_found" message is the same message returned when the bucket doesn't exist - if the view or design doc doesn't, it's noted in the error message. For example:

{"error":"not_found","reason":"Error opening view `brewery_beers2`, from set `beer-sample`, design document `_design/beer`: {not_found,\n missing_named_view}"}


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

This should be resolved by the config heartbeat monitor. Please confirm by running a view only workload with the EnableConfigHeartBeat set to true.

Thanks,

jeff




[NCBC-675] Fixed servers with FQDN (ex: ubuntu.mybox) not properly resolving Created: 07/Oct/14  Updated: 16/Oct/14  Resolved: 16/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: 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


 Description   
If a bucket configuration returned from a Couchbase cluster contains a fully qualified domain name instead of an IP address, CouchbaseConfigContext will not properly resolve the endpoint, resulting in a null KeyMapper. Upon any operation that requires the KeyMapper, the Couchbase .Net client will throw a NullReferenceException.

 Comments   
Comment by Jeff Morris [ 09/Oct/14 ]
https://github.com/couchbase/couchbase-net-client/pull/20
Comment by Jeff Morris [ 16/Oct/14 ]
http://review.couchbase.org/41984




[NCBC-522] Make ILog instance within OperationResult(T) class static. Created: 20/Jun/14  Updated: 20/Jun/14  Resolved: 20/Jun/14

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

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   
A new ILog instance was being created for every operation which led to excessive GC's.

 Comments   
Comment by Jeff Morris [ 20/Jun/14 ]
commit 65af0f30971c185ec7a4c227895e865a0ce81666




[NCBC-523] Refactor operations to use Converter Created: 20/Jun/14  Updated: 20/Jun/14  Resolved: 20/Jun/14

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

Type: Improvement 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 [ 20/Jun/14 ]
commit a39674d03536c07b276857e21a2b121658a66339




[NCBC-521] Ensure one copy of ITypeSerializer is used per client instance Created: 19/Jun/14  Updated: 19/Jun/14  Resolved: 19/Jun/14

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

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 will minimize GC's by reusing the serializer across all operations. ITypeSerializer instances should be stateless.

 Comments   
Comment by Jeff Morris [ 19/Jun/14 ]
commit 95a1dbbdaa201d6661a680706ce1a0f7885c7480




[NCBC-515] .NET Client accepts port 11211 as input Created: 16/Jun/14  Updated: 16/Jun/14  Resolved: 16/Jun/14

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

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   
The client will accept the proxy port 11211 which is intended for use with clients that use Moxi. This causes the client to fail without an obvious reason. This will add an explicit exception class to make it easier to diagnose the issue, letting the caller know immediately, that the port isn't supported and that they should use port 11210 or 11207 (for ssl).

 Comments   
Comment by Jeff Morris [ 16/Jun/14 ]
commit 9cd7c766e9994caa03dc050224b40afd88b50c2c




[NCBC-514] When password is set at bucket level and OpenBucket(bucketName) is called, empty password is used. Created: 16/Jun/14  Updated: 16/Jun/14  Resolved: 16/Jun/14

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

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 will cause an empty string to be sent instead of the configured password resulting in a AuthenticationException to be logged.

 Comments   
Comment by Jeff Morris [ 16/Jun/14 ]
commit bab727843ac0cc83ded8d3bb1c710ca8cf690191




Provide hostname resolution to IP address (NCBC-482)

[NCBC-510] Only use DNS lookup when IP is not available Created: 13/Jun/14  Updated: 13/Jun/14  Resolved: 13/Jun/14

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

Type: Technical 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   
Fixes an issue where DNS lookup fails because hostname is already an IPAddress.

 Comments   
Comment by Jeff Morris [ 13/Jun/14 ]
commit 7a556c364144409d35e5cb82ce12c484b89e6dbc




[NCBC-512] Switch from custom BinaryConverter to IByteConverter Created: 14/Jun/14  Updated: 17/Jun/14  Resolved: 17/Jun/14

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

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   
http://msdn.microsoft.com/en-us/library/system.bitconverter%28v=vs.110%29.aspx

 Comments   
Comment by Jeff Morris [ 17/Jun/14 ]
This ticket was originally intended to swap the BinaryConverter for System.BitConverter, however after testing the performance, the bit shifting approach is around ~20-30% faster. With BitConverter you have to partition the buffer and convert back and forth from big-endian to little-endian which slightly impacts performance. With bit shifting you can swap the buffer in place...so, we ended up with an extension point: IByteConverter. If you don't like the default implementation, ManualByteConverter, you can roll your own.
Comment by Jeff Morris [ 17/Jun/14 ]
commit 448bba208e6874d9e5d83e75886bdc604af126c4




[NCBC-511] Provide overrideable offset for body Created: 14/Jun/14  Updated: 14/Jun/14  Resolved: 14/Jun/14

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

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 [ 14/Jun/14 ]
commit 7786d196d16538fa0fefb473b3be88d22397b4ef

This may change later...




Add support for Incr/Decr (NCBC-477)

[NCBC-509] Add Decrement operation support Created: 13/Jun/14  Updated: 14/Jun/14  Resolved: 14/Jun/14

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

Type: Technical 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 [ 14/Jun/14 ]
commit e37b7f07b25fcd3de8357e2bf1846203ca7eea25




Add support for Incr/Decr (NCBC-477)

[NCBC-508] Add Increment operation support Created: 13/Jun/14  Updated: 13/Jun/14  Resolved: 13/Jun/14

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

Type: Technical 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 [ 13/Jun/14 ]
commit bff6a3ec34761166afc92cecc2e55758284571c7




[NCBC-438] CouchbaseClient has no destructor so SocketPool and sockets are often not cleaned/closed Created: 25/Apr/14  Updated: 02/Jun/14  Resolved: 02/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.4
Fix Version/s: 1.3.5

Type: Bug Priority: Major
Reporter: Jim Walker Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: .NET 4 used in testing

Attachments: Text File CouchbaseClient.cs.patch     File Program2.cs    
Issue Links:
Dependency

 Description   
Investigating a client issue I spotted that the CB server node sometimes still had 11210 connections open even though a .NET test application had cleanly terminated.

Instrumentation of SocketPool.cs showed that there was unreliable clean-up of the sockets and this was tracked down to the lack of a destructor/dispose path from CouchbaseClient.

The instrumentation added "print" statements to the socket creation and socket deletion paths. Even with explicit GC.collect calls the deletion prints were very unreliable. I.e. 30 socket created, but variable amounts get closed, sometimes even none.

A simple patch is soon to be uploaded which made a significant difference to the deletion print statements and has been tested using a simple test program. With the patch I saw reliable socket closure. E.g. 30 created, 30 deleted/closed.

Attached to this are.

1) Test program (Program2.cs) which creates CouchbaseClient, allows objects to become out-of-scope and exits cleanly.
2) A patch against CouchbaseClient.cs which drives the destruction path to Dispose the Pool (to be committed).

Without my CouchbaseClient fix I would see the number of sockets created frequently be more than the count of items disposed.


(need to figure out how to push code to gerrit??)

 

 Comments   
Comment by Jeff Morris [ 30/Apr/14 ]
Change set is here: http://review.couchbase.org/#/c/36407/2
Comment by Jeff Morris [ 02/Jun/14 ]
Released in 1.3.5.




[NCBC-408] Retry Node Check during View Operations Created: 27/Feb/14  Updated: 03/Mar/14  Resolved: 03/Mar/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.3
Fix Version/s: 1.3.4

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   
During a View operation, the client will look for a node to use to execute the operation against. In certain cases (rebalance, etc) the list of nodes may be empty. This will add an additional check if a candidate node is not found before the client gives up and returns a "View {0} was mapped to a dead node, failing." error.

 Comments   
Comment by Jeff Morris [ 03/Mar/14 ]
http://review.couchbase.org/#/c/34123/




[NCBC-407] Retry View Operations When Specific Error Cases are Encountered Created: 27/Feb/14  Updated: 27/Feb/14  Resolved: 27/Feb/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.3
Fix Version/s: 1.3.4

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   
http://www.couchbase.com/issues/browse/MB-10261

 Comments   
Comment by Jeff Morris [ 27/Feb/14 ]
Patchset: http://review.couchbase.org/#/c/34007/t:




[NCBC-403] Update 2.X to use Apache Common Infrastructure Libraries for .NET Created: 24/Feb/14  Updated: 26/Feb/14  Resolved: 26/Feb/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: .future
Fix Version/s: backlog-2.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   
For this ticket: https://www.couchbase.com/issues/browse/NCBC-102 I did a custom API for logging, in retrospect it was a poor decision. This ticket is swap out the custom implementation with
http://netcommon.sourceforge.net/

This is a trivial task since the API are symmetric respect to interfaces.

 Comments   
Comment by Jeff Morris [ 26/Feb/14 ]
Completed.




[NCBC-399] Standardize to SPACES for indenting in source files Created: 17/Feb/14  Updated: 11/Mar/14  Resolved: 11/Mar/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.3
Fix Version/s: 1.3.5

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   
We currently have a mixture of tabs and spaces within the files. This fix is to standardize on SPACES as opposed to tabs.

 Comments   
Comment by Jeff Morris [ 03/Mar/14 ]
Pushing this to next release "just in case" it doesn't go as planned - this will give me more time to resolve any "just-in-case" issues, instead of doing it at the end of a dev cycle.
Comment by Jeff Morris [ 11/Mar/14 ]
http://review.couchbase.org/#/c/34397/




[NCBC-398] Support Json.NET >= 6.0.1 Created: 17/Feb/14  Updated: 26/Feb/14  Resolved: 26/Feb/14

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

Type: New Feature Priority: Major
Reporter: Chad Kreimendahl Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: All .NET


 Description   
The most recent changes to the nuget package require an old version of Json.NET (<= 5.0.8). For that reason, it makes it impossible for us to upgrade any versions of this tool going forward, since we have other tools that require the more current version (6.0.1).

It should be fairly easy to support >= 6, as the changes we've seen are almost entirely new features... other than some minor deprecation.

 Comments   
Comment by Jeff Morris [ 17/Feb/14 ]
Hi Chad,

We had to restrict the version the JSON.NET to <=5.08 due to a last minute bug report that Json.NET 6.0.1 "broke" the 1.3.3 build. Json.NET released 6.0.1 when we were in the final packaging stages of the release (post QA), so it didn't make it's way into 1.3.3. This was a temporary restriction until the next release of the client as stated in the release notes: http://docs.couchbase.com/couchbase-sdk-net-1.3/#appendix-release-notes

Here is the ticket for inclusion in 1.3.4 release: http://www.couchbase.com/issues/browse/NCBC-383

You have a couple of options:
a) Hold off until 1.3.4
b) Build off the github source once the issue is resolved - you can track progress using this Jira issue.
c) Resolve this issue yourself and submit a pull request from github :)

Thanks,

Jeff
Comment by Jeff Morris [ 26/Feb/14 ]
http://review.couchbase.org/#/c/33938/




Standardize, Document and Change Logging Levels for Client (NCBC-392)

[NCBC-396] Log the creation and destruction of client instances Created: 14/Feb/14  Updated: 17/Feb/14  Resolved: 17/Feb/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.3
Fix Version/s: 1.3.4

Type: Technical 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 easy to add to the creation of a client, but a bit more difficult to log the destruction of a client instance without adding Dispose and Finalizer methods.

 Comments   
Comment by Matt Ingenthron [ 14/Feb/14 ]
I'd recommend strongly logging at INFO level the startup of the client including any parameters. Since we take params from both config files and programmatically, it'd be useful to record what's actually being used at startup time and in the logs. Saves time when diagnosing.
Comment by Jeff Morris [ 14/Feb/14 ]
Agreed, I shall do so. Thanks for the input.
Comment by Jeff Morris [ 17/Feb/14 ]
http://review.couchbase.org/#/c/33693/




Standardize, Document and Change Logging Levels for Client (NCBC-392)

[NCBC-395] Assign Each Client Instance and Identifier Created: 14/Feb/14  Updated: 17/Feb/14  Resolved: 17/Feb/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.3
Fix Version/s: 1.3.4

Type: Technical 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   
Assign an identifier to each client instance so that specific client instances can be traced in log files.

 Comments   
Comment by Jeff Morris [ 17/Feb/14 ]
http://review.couchbase.org/#/c/33691/




Standardize, Document and Change Logging Levels for Client (NCBC-392)

[NCBC-394] Add 'Warn' Level Logging to 'core' configuration classes Created: 14/Feb/14  Updated: 17/Feb/14  Resolved: 17/Feb/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.3
Fix Version/s: 1.3.4

Type: Technical 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 [ 17/Feb/14 ]
http://review.couchbase.org/#/c/33694/




[NCBC-389] 1.3.3 getting started is still 1.3.1 Created: 11/Feb/14  Updated: 11/Feb/14  Resolved: 11/Feb/14

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

Type: Task Priority: Major
Reporter: Patrick Varley Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: gettingstarted
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: http://www.couchbase.com/communities/net/getting-started


 Description   
The following need to be updated to 1.3.3

bar/panel on the left
download link
text before the download link
release notes link

 Comments   
Comment by Jeff Morris [ 11/Feb/14 ]
There are two getting started pages:
1-http://www.couchbase.com/communities/net/getting-started
2-http://docs.couchbase.com/couchbase-sdk-net-1.3/#getting-started

I am not sure why, but the second is linked to the http://www.couchbase.com/communities/net/ landing page. I updated both :)




[NCBC-390] 1.3.3 release notes Created: 11/Feb/14  Updated: 11/Feb/14  Resolved: 11/Feb/14

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

Type: Task Priority: Major
Reporter: Patrick Varley Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: releasenote
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: http://docs.couchbase.com/couchbase-sdk-net-1.3/#appendix-release-notes


 Description   
Missing the release notes for 1.3.3.

 Comments   
Comment by Jeff Morris [ 11/Feb/14 ]