[NCBC-309] Move .NET API documentation from docs repo to auto-doc Created: 07/Oct/13  Updated: 13/Jan/14

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

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

Issue Links:
Duplicate
duplicates NCBC-248 Touch should return a boolean Resolved
duplicates NCBC-179 Add expiries and CAS to StoreJson ext... Resolved
Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-321 Add XML Comments to Source Technical task Resolved Jeff Morris  
NCBC-322 Setup Sandcastle and generate documen... Technical task Open Jeff Morris  

 Description   
Look into visual studio support for ///




[NCBC-516] .NET SDK 2.0 Documentation Created: 17/Jun/14  Updated: 11/Aug/14

Status: In Progress
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: Unresolved Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-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-496] 2.0 Sample Application Created: 02/Jun/14  Updated: 02/Jun/14

Status: Open
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: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[NCBC-253] flush_all method still available through API, does nothing against 2.0 cluster Created: 22/Apr/13  Updated: 13/Jan/14

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

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


 Description   
Is flush_all deprecated for 2.x clusters? No error is returned when run against a 2.0 bucket

Need SDK documentation on the deprecation and how to use flush properly (it's currently only in the release notes)

 Comments   
Comment by John Zablocki (Inactive) [ 13/May/13 ]
FlushAll is a method on the Enyim MemchacedClient, so it's inherited.

I've posted a change to Gerrit that checks to see if any of the working nodes is of type CouchbaseNode (2.0+). If so, an NotImplementedException is raised. Otherwise, if it's a Memcached bucket or 1.8.x, the MemcachedClient.FlushAll is performed.
Comment by John Zablocki (Inactive) [ 14/May/13 ]
Would this approach address your concern?
Comment by Perry Krug [ 14/May/13 ]
Sounds very reasonable to me, thank you.
Comment by Matt Ingenthron [ 14/May/13 ]
Should it perform a RESTful flush if the server is a 2.0 server && couchbase bucket? This is what we did in the Java client if I recall correctly. The logic being this way code moves over and just works.
Comment by John Zablocki (Inactive) [ 14/May/13 ]
Is that the right API? To me it feels like it isn't, since flush is no longer a "client" API action. It's easy enough to implement, but seems best to steer people to the right API, imo...




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

[NCBC-397] Document changes to logging levels including BP Created: 14/Feb/14  Updated: 02/Jun/14

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

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


 Comments   
Comment by Jeff Morris [ 10/Mar/14 ]
Moving this to next release (1.3.5) since we had some last minute changes to: https://docs.google.com/document/d/1GhRxvPb7xakLL4g00FUi6fhZjiDaP33DTJZW7wfSxrI/edit




[NCBC-393] Deprecate or Rewrite MulitGet Operations Created: 14/Feb/14  Updated: 10/Mar/14

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

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





[NCBC-387] Use Sandcastle (or equivalent) to Generate Auto Docs for 1.X Client Created: 07/Feb/14  Updated: 07/Feb/14

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

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





[NCBC-384] Improve overall quality of 1.X documentation Created: 04/Feb/14  Updated: 04/Feb/14

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

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

Epic Name: Improve .NET SDK 1.X Documentation
Epic Status: To Do




[NCBC-379] Create best practices about using .net SDK Created: 31/Jan/14  Updated: 07/Feb/14

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

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


 Description   
Hi, Jeff

Based on our discussion, create a jira for you to create best practices.

Thanks
Larry




[NCBC-423] Add couchbase cluster compatibility to documentation Created: 25/Mar/14  Updated: 25/Mar/14

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

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

Issue Links:
Gantt: finish-start
has to be done after JCBC-438 Add table for 1.8, 2.x and 3.x compat... Open

 Description   
We should probably specify for this given major.minor of the SDK, one of three things for Couchbase Cluster releases:
- unsupported
- supported
- supports all features

These might be an 'x', '—' and "✓" in a table, or whatever Amy comes up with.

This is, in part, planning for 3.0 including beta.

This should be based on the work done in JCBC-438, so it's blocked by that issue.




[NCBC-277] Issue on documentation for the "collated view" sample code Created: 03/Jul/13  Updated: 04/Feb/14

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

Type: Task Priority: Major
Reporter: Tug Grall (Inactive) Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Issue with the sample code we show in the documentation:
http://www.couchbase.com/docs/couchbase-sdk-net-1.2/collatedviews.html
and the beer sample application code
https://github.com/couchbaselabs/beer-sample-net

This has been raised by the community:
https://twitter.com/jakescott/status/352637928272437248




[NCBC-273] Better document the DevelpomentModeNameTransformer Created: 04/Jun/13  Updated: 13/Jan/14

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

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


 Description   
In discussion with a user, there was some confusion about development mode views. The SDK docs should mention the DevelpomentModeNameTransformer and refer to the server manual section on development and production views.

 Comments   
Comment by John Zablocki (Inactive) [ 17/Jun/13 ]
See http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-configuration.html. The transformers are listed here (with config sample).




[NCBC-272] Add documentation on error handling with views/queries Created: 04/Jun/13  Updated: 04/Jun/13

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

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Would be helpful to have some insight on how to deal with timeouts (and any other error) when querying a view.




[NCBC-270] Detailed logging information Created: 30/May/13  Updated: 30/May/13

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

Type: Improvement Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Σ Remaining Estimate: 24h Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: 24h Original Estimate: Not Specified

Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-12 logging level documentation needed Technical task Reopened Matt Ingenthron  
NCBC-183 Docs should use Execute* methods with... Technical task Open Jeff Morris  
NCBC-225 Docs: Recommendations for which loggi... Technical task In Progress Jeff Morris  

 Description   
Could we extend this page (http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-logging.html) to include sample log messages and help the customer understand which log level to configure for looking at/investigating what parts of the code?




[NCBC-269] Link broken to nlog configuration file Created: 30/May/13  Updated: 10/Mar/14

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

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The link at the bottom of this page: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-logging.html

Points to: http://nlog-project.org/wiki/Configuration_file, which returns a 404

 Comments   
Comment by Jeff Morris [ 10/Mar/14 ]

This line needs to be updated: "See for more NLog configuration details" using this link: https://github.com/nlog/nlog/wiki

http://docs.couchbase.com/couchbase-sdk-net-1.3/#configuring-logging




[NCBC-260] Improve discussion around using store versus executestore Created: 08/May/13  Updated: 07/Feb/14

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

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


 Description   
From a user:

Another thing I have seen is using set and exeuteset method usage. When in samples we are using set, it is not very clear that it might fail due to memory limitation and instead of using set we should use executeset and lookout for result and if it is fail due to memory issue than we should try again in few millisecond so couchbase do memory clean-up in mean time for new data.
 

 Comments   
Comment by Jeff Morris [ 30/Jan/14 ]
I think these appendix notes satisfy this request? http://docs.couchbase.com/couchbase-sdk-net-1.3/#appendix-working-with-operation-results
Comment by Perry Krug [ 31/Jan/14 ]
That appendix is good, but I would say that our own examples in the documentation should show the "best practices" and they currently do not use the execute* operations. Can we get a review of the examples and help guide users who are doing copy-paste in the right direction?
Comment by Jeff Morris [ 31/Jan/14 ]
Ok, I am going to push this to 1.3.3 then and include subtasks for a review of current examples and "best practices" then.




[NCBC-258] Improvement needed around documentation of using singleton client Created: 07/May/13  Updated: 07/Feb/14

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

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


 Description   
This has been coming up more and more lately. Apparently customers are not seeing or understanding the need for using a singleton client, even in their very basic testing.

Additionally, all of the tutorial and API examples in the documentation show the creation of a client for every operation and so tend to reinforce the bad habits.

Can we make an effort around identifying and improving the visibility of this very painful issue?

 Comments   
Comment by John Zablocki (Inactive) [ 07/May/13 ]
See "Instantiating the Client" - http://www.couchbase.com/develop/net/current

See http://www.couchbase.com/docs/couchbase-sdk-net-1.2/stage3.html in the Tutorial.

I think that's pretty clear, no?
Comment by Perry Krug [ 07/May/13 ]
Yes, I've seen both of those...but users are still missing it with wild frequency which is causing support cases to be logged and disruption to the sales process (not to mention the unknown impact to users who don't tell us they're having problems) so I'm asking for creative ways to make it a bigger deal. Even making the text on http://www.couchbase.com/develop/net/current into an explicit "note" would help call attention to it.

What about a ".NET best practices" page? Or "troubleshooting common performance issues with .NET"?
Comment by Perry Krug [ 08/May/13 ]
John, the customer pointed me to this page which does seem to show a client being created more often that we would normally recommend: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/jsonextensions.html. I presume there are other places though I haven't looked through.
Comment by John Zablocki (Inactive) [ 08/May/13 ]
This example is meant to be a standalone, run once console app. So it doesn't actually create the client more than we would recommend. This example is a highly contrived "Hello, World" type of app. So I don't think it would make sense to include another singleton layer, when the client is only created once during the life of the app's execution. I could see how if that's the only code one read, it would not fully detail the proper usage. The right answer might be to implement a layer of abstraction over the client creation, via a factory or something similar...
Comment by Perry Krug [ 08/May/13 ]
That's fair enough John. Maybe it's enough to make a bold note on that page to say "you should create a singleton"
Comment by John Zablocki (Inactive) [ 24/May/13 ]
Deferring this for 1.2.8, to figure out what the best way to address client creation docs for trivial samples.




[NCBC-252] Docs/Library: Unlock after getl Created: 17/Apr/13  Updated: 13/Jan/14

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

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


 Description   
Does the .NET client support an unlock? If not, will we have it? If it does, can we document it?

 Comments   
Comment by John Zablocki (Inactive) [ 08/May/13 ]
Seems to be a problem with the docs - http://www.couchbase.com/docs/couchbase-sdk-net-1.2/api-reference-retrieve.html. I'll investigate.




Detailed logging information (NCBC-270)

[NCBC-225] Docs: Recommendations for which logging level to be set during testing/staging/production and examples of messages at each level Created: 07/Feb/13  Updated: 02/Jun/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.2.1
Fix Version/s: backlog-1.0

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


 Description   
Customer read http://www.couchbase.com/docs/couchbase-sdk-net-1.1/couchbase-sdk-net-logging.html, but still not clear on what level we recommend to get meaningful output from, and examples of what log messages that would see under certain situations.




[NCBC-221] Docs: working with multiple buckets in the .NET client Created: 05/Feb/13  Updated: 13/Jan/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.2.0
Fix Version/s: backlog-1.0

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


 Description   
Apologies if it's already in there, it wasn't particularly obvious to find.

Can we have a section of documentation on working with multiple buckets from within the .NET client when configured in the app.config?

 Comments   
Comment by John Zablocki (Inactive) [ 23/May/13 ]
Adding to config section.




[NCBC-220] Error handling documentation Created: 05/Feb/13  Updated: 29/May/13

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

Type: Improvement Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Please create some documentation specifying possible error/failures to operations, what they "look" like in the logs/exceptions/stack traces and what our recommendation is on how to handle them.

i.e. tmp_oom, timeouts (connection/operation/java-internal/etc), "get miss" (it's technically a failure, let's make it overly obvious what it means), CAS failure, add() failure, replace() failure,

Some of this should be covered in the API reference, but this bug is specifically for a single page where this information is aggregated that a customer/user could read about how to handle errors.




[NCBC-219] Write the .NET/Windows Getting Started Section for the Essentials Guides Created: 04/Feb/13  Updated: 13/Jan/14

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

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


 Description   
Write the .NET/Windows Getting Started section of the Essentials Guide

Needs to cover:

Basic Setup of the .NET environment
Adding the .NET Client library to a project
Writing your first (small) app using Couchbase and .NET

Submissions should be to MC, either through the couchbase/docs repo, or direct to MC in whatever format suits. Must include both the text and images.




[NCBC-214] Docs don't mention InnerResult Created: 30/Jan/13  Updated: 13/Jan/14

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

Type: Improvement Priority: Major
Reporter: Tim Smith (Inactive) Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-operation-results.html


 Description   
The docs page on Working with Operation Results does not describe the InnerResult member at all. No mention of when it will be set, what it should contain, or how to display it.

My understanding is that this member may be important for understanding why something has failed. I'm not sure how to describe it or use it best, though, so I think this needs some clarification from SDK team.

 Comments   
Comment by John Zablocki (Inactive) [ 30/Jan/13 ]
Recent updates have made this property obsolete. I need to work on a plan for removal/obsolescence.




[NCBC-204] JSON extension methods not listed in API references Created: 15/Jan/13  Updated: 13/Jan/14

Status: Reopened
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.2.0
Fix Version/s: backlog-1.0

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


 Description   
Couldn't find docs around the JSON extension methods listed here:
https://www.couchbase.com/docs/couchbase-sdk-net-1.2/jsonextensions.html

 Comments   
Comment by John Zablocki (Inactive) [ 15/Jan/13 ]
Are you asking for these methods to be included in the API methods along with ExecuteStore, ExecuteGet, etc? Extension methods technically aren't API methods and aren't part of the ICouchbaseClient interface.
Comment by Perry Krug [ 15/Jan/13 ]
Yes, that was what I was asking for. I'm not sure I understand why there are so many different methods for store/get, but since we are recommending customers to store their data as JSON I would assume that these are "first class citizens" and should be documented along with the other methods we support...no?
Comment by John Zablocki (Inactive) [ 15/Jan/13 ]
The JSON extension methods are "opinionated" in that they force you to use JSON.NET for serialization and the default serializer settings that I've included. I don't know that we should recommend these extensions as the "best" option, but rather "an" option. If a user is content to rely on these basic methods, then they would be sufficient. However, there are many users who will prefer other JSON serializers or other class-to-document mapping rules. So rather than attempt to address all JSON concerns with the API, these are convenience methods, which is why they're extension methods. Extension methods in .NET allow a user to treat method like a class method, even though it's not defined in an object's interface.
Comment by Perry Krug [ 15/Jan/13 ]
Thanks for the clarification John.

Can we provide guidance or examples on how to use JSON more generically?
Comment by John Zablocki (Inactive) [ 15/Jan/13 ]
I think that's reasonable. When I update the jsonextensions.html page, I'll try to add "Here's what to do if you don't want to use JSON extensions..."
Comment by Perry Krug [ 15/Jan/13 ]
Thanks John, and will that then link to a piece of our "formal" documentation and API reference?
Comment by John Zablocki (Inactive) [ 17/May/13 ]
http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-json.html
Comment by Perry Krug [ 18/May/13 ]
Just as a quick re-open...could we link this from the home page of /develop/net/current as well?




Detailed logging information (NCBC-270)

[NCBC-183] Docs should use Execute* methods with best practice error handling and logging in all examples Created: 14/Dec/12  Updated: 02/Jun/14

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

Type: Technical task Priority: Major
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: 24h
Time Spent: Not Specified
Original Estimate: 24h
Environment: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/crud.html


 Description   
While proper error handling may be application-specific (some apps may be fine treating any error as "not found", while others need to handle those as very distinct cases, for example), I think the documentation the docs provide, and especially the tutorials and examples that people are likely to copy from, should perform explicit and thorough error handling and logging. Docs should make it easy for people to do it the right way.

The current .NET docs have an OK example in the ASP.NET tutorial, where at least the return value is checked and exceptions are rethrown. So that's a good start, although there's no evidence of testing result.Success (which could be false, even if result.Exception is null). There's no mention, too, of what happens higher up when the result code is returned, and no logging of errors that folks can cut and paste.

http://www.couchbase.com/docs/couchbase-sdk-net-1.2/brewerycrud.html

One method uses this:
    return result.StatusCode.HasValue ? result.StatusCode.Value : 0;

While the others just return result.StatusCode.Value with no test. Why is that? Where is that documented?


Then this example uses the non-Execute versions which don't allow for proper error handling. That may be OK in a very basic tutorial, but there should be a very clear and explicit pointer anywhere these are used that goes to a "Error handling with the .NET client" page that details why you shouldn't use those in most production code, and that you'll have a very hard time writing correct code unless you use the Execute* methods, and that also provides succinct and complete example for cut-and-pastability of correct error handling.

Even so, I'd prefer that the basic "hello world" tutorial use Execute* methods in the first place, so people who only skim the docs only see the correct way to do things.

http://www.couchbase.com/docs/couchbase-sdk-net-1.2/crud.html


 Comments   
Comment by Matt Ingenthron [ 17/May/13 ]
This is probably not something we want to do as written. We want the simple approach to be, well, simple. Future API will hopefully make this better.




[NCBC-77] Need details on "StoreMode" values Created: 26/Jun/12  Updated: 10/Mar/14

Status: Reopened
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.1.6
Fix Version/s: backlog-1.0

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
In this page: http://www.couchbase.com/docs/couchbase-sdk-net-1.1/couchbase-sdk-net-retrieve-set.html

There is no detail on what the available store modes are (set/add/replace)

 Comments   
Comment by John Zablocki (Inactive) [ 10/Jan/13 ]
Pull request pending in docs.
Comment by John Zablocki (Inactive) [ 05/Feb/13 ]
Released
Comment by Perry Krug [ 06/Feb/13 ]
http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-store-set.html

Hey John, I think this page could still use a little cleaning up.

Many of the API calls are listed as: "object.Store(storemode, key, value, expiresat)". and the descriptions are all the same as well. Some of the API calls do not match the method they are describing (see the very last one for example)

Can we include some description of what the user should expect to see when each of them fails?




[NCBC-518] 2.0 Sample Application Created: 17/Jun/14  Updated: 14/Aug/14

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

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

Epic Link: Beta 1 Documentation and Sample App

 Description   
Probably do something different than another beer app? dunno...

 Comments   
Comment by Matt Ingenthron [ 17/Jun/14 ]
Whatever we do there, we should implement commonly and across the board.
Comment by Jeff Morris [ 17/Jun/14 ]
Todo list? Blog? Something that uses a wide range of operations and features...also, an application that realistically has potential for scale.
Comment by Matt Ingenthron [ 17/Jun/14 ]
The earlier thought was that we'd move to a music sharing oriented app. There is a dataset for this. Let me follow up with the dataset owner to see what the latest is.




[NCBC-517] General Developer Documentation (use TOC as template) Created: 17/Jun/14  Updated: 14/Aug/14

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

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

Attachments: Microsoft Word SDK TOCs.docx    
Epic Link: Beta 1 Documentation and Sample App

 Description   
Use Amy's TOC as a template + feedback

 Comments   
Comment by Jeff Morris [ 14/Aug/14 ]
WIP docs (content only):
https://docs.google.com/document/d/1VCYTRVwUHrJzX4ovL4EtYdvJa5qCGtuAirlKfL8KKXM/edit#




[NCBC-235] Provide more detail on "Unable to locate node" errors Created: 04/Mar/13  Updated: 20/Aug/14

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

Type: Improvement Priority: Major
Reporter: John Zablocki (Inactive) Assignee: Jeff Morris
Resolution: Unresolved Votes: 5
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates to

 Comments   
Comment by Tim Smith (Inactive) [ 12/Mar/13 ]
For clarity, the desired change is in the library itself, to provide info in the error message about what host lost the connection, whether there was a corrupt cluster map or just couldn't connect to any of the hosts, etc. Currently the error provides no insight into where the problem may lie. The developer can assume there may be some networking problem, but no pointer about which node is to blame, etc.
Comment by Jeff Morris [ 20/Aug/14 ]
Hi Morrie -

The "unable to locate node" message happens when something outside of the client (usually network) temporarily drops the clients connection. Another cause is when an application running on the client blocks the streaming http connection - Fiddler (http://www.telerik.com/fiddler) is a common culprit on windows.

Another common cause is when the hostname in the configuration is wrong or the bucket doesn't exist (if I remember correctly).

-Jeff




[NCBC-431] Doc: Sockpool Formatting wrong. Created: 07/Apr/14  Updated: 02/Jun/14

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

Type: Bug Priority: Minor
Reporter: Patrick Varley Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: documentation
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: http://docs.couchbase.com/couchbase-sdk-net-1.3/#configuring-the-net-client-library


 Description   
I think *sockpool* with *minpoolsize* and *maxpoolsize* is meant to be a bullet point with sub bullet points.


Ethier way the minpoolsize line is not formatted correctly.




[NCBC-432] Doc: Expand the maxPoolSize and minPoolSize description Created: 07/Apr/14  Updated: 07/Apr/14

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

Type: Bug Priority: Minor
Reporter: Patrick Varley Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: documentation
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: http://docs.couchbase.com/couchbase-sdk-net-1.3/#configuring-the-net-client-library


 Description   
It would be good to expand the maxPoolSize and minPoolSize lines to expand that it is per a node in the cluster.




[NCBC-288] .NET documentation missing CheckExists method for view object Created: 07/Aug/13  Updated: 09/Aug/13

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

Type: Task Priority: Minor
Reporter: Patrick Varley Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: The link below should explain the CheckExists method:
http://www.couchbase.com/docs/couchbase-sdk-net-1.2/api-reference-view.html


 Comments   
Comment by Patrick Varley [ 09/Aug/13 ]
OnError should be explained too:
view.OnError(OnErrorMode.stop)
View.OnError(onErrorMode.continue)




[NCBC-244] Explicit docs for what .NET Framework versions are supported Created: 02/Apr/13  Updated: 29/May/13

Status: In Progress
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.2.3
Fix Version/s: None

Type: Task Priority: Minor
Reporter: Tim Smith (Inactive) Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/ch01s03s01.html


 Description   
Need to be explicit about what versions of Visual Studio are supported, and what .NET Framework is supported. 3.5? 4.0?

The docs mention that you need the full .NET Framework, not just a Client profile. But don't mention if 4.0 is needed. It seems that 3.5 is not supported, but I'm not positive.



 Comments   
Comment by Tim Smith (Inactive) [ 02/Apr/13 ]
I just got this update:

The 1.2 versions use 4.0 features for some things. 3.5 will still work with the 1.1 series (1.2 series is recommended, has important stability fixes).
Comment by Tim Smith (Inactive) [ 02/Apr/13 ]
Probably need to confirm this info, and decide if we want to just state plainly that 4.0 features are used in the .NET SDK. Probably need input from SDK dev team on this.

Tim
Comment by John Zablocki (Inactive) [ 02/Apr/13 ]
The release note for 1.2 GA does announce the 4.0 requirement - http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-rn_1-2-0g.html. But agree, it could be added to the getting started. 3.5 support will be targeted for the May release.




Detailed logging information (NCBC-270)

[NCBC-12] logging level documentation needed Created: 05/Dec/11  Updated: 02/Jun/14

Status: Reopened
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: None
Fix Version/s: backlog-1.0

Type: Technical task Priority: Minor
Reporter: Matt Ingenthron Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Currently, there's insufficient information on how to change the logging level to see what's happening when diagnosing an issue.

 Comments   
Comment by Matt Ingenthron [ 05/Dec/11 ]
From Bin:

Attila added more logging for operation Delete/Get/Set at https://github.com/enyim/EnyimMemcached/commit/768fb5956f2f69b6c57a484a3aee367dc0d42ba0#Enyim.Caching/Memcached/Protocol/Binary/GetOperation.cs.
 
The customer needs to get the latest Enyim library and build with symbol ‘EVEN_MORE_LOGGING’. See attached picture for illustration.
At the same time, they need to set the log level to DEBUG in their configuration file.
Comment by John Zablocki (Inactive) [ 02/Mar/12 ]
I added a section "Configuring Logging" to the "Getting Started" document - http://www.couchbase.com/develop/net/current. This doesn't cover the build with EVEN_MORE_LOGGING though...
Comment by John Zablocki (Inactive) [ 05/Feb/13 ]
Released
Comment by Perry Krug [ 07/Feb/13 ]
John, does this doc need to be updated to cover EVEN_MORE_LOGGING?

This is related to NCBC-225 as well.
Comment by Jeff Morris [ 10/Mar/14 ]
I am going to be consolidating these into a single ticket, since there several regarding the lack of documentation for logging.




[NCBC-544] ExecuteAppend and ExecutePrepend methods on .Net documentation has error in sample code Created: 07/Jul/14  Updated: 08/Jul/14

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

Type: Bug Priority: Minor
Reporter: Cihan Biyikoglu Assignee: Amy Kurtzman
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The code samples below has an error:
http://docs.couchbase.com/couchbase-sdk-net-1.3/index.html

client.ExecuteStore(StoreMode.Set, "beers", "Abbey Ale");
Func<string, byte[]> stringToBytes = (s) => Encoding.Default.GetBytes(s);
var result = client.ExecuteAppend("beers", new ArraySegment<byte>(stringToBytes(",Three Philosophers")));

if (! result.Sucecss)
{
    Console.WriteLine("Append failed with message {0} and status code {1}", result.Message, result.StatusCode);

    if (result.Exception == null)
    {
        throw result.Exception;
    }
}



client.ExecuteStore(StoreMode.Set, "beers", "Abbey Ale");
Func<string, byte[]> stringToBytes = (s) => Encoding.Default.GetBytes(s);
var result = client.ExecutePrepend("beers", new ArraySegment<byte>(stringToBytes(",Three Philosophers")));

if (! result.Sucecss)
{
    Console.WriteLine("Prepend failed with message {0} and status code {1}", result.Message, result.StatusCode);

    if (result.Exception == null)
    {
        throw result.Exception;
    }
}

the last IF should be:
 if (result.Exception != null)


 Comments   
Comment by Amy Kurtzman [ 07/Jul/14 ]
@Cihan, please add a link to the heading that contains this example. I can't find it.

@Jeff, after Cihan supplies a closer link, please verify this change is correct and also let me know if the method name Sucecss in this line is spelled correctly (it's spelled that way in many examples in this document):

if (! result.Sucecss)
Comment by Cihan Biyikoglu [ 07/Jul/14 ]
if you search for "result.Exception == null" on this page you will find all the instances to correct. http://docs.couchbase.com/couchbase-sdk-net-1.3/index.html - there are 2.

they all should show this instead: result.Exception != null
Comment by Jeff Morris [ 07/Jul/14 ]
Indeed there is two issues here:
a) it should be "not equals" null
b) "Sucecss" should be "Success"

For example:

            client.ExecuteStore(StoreMode.Set, "beers", "Abbey Ale");
            Func<string, byte[]> stringToBytes = (s) => Encoding.Default.GetBytes(s);
            var result = client.ExecuteAppend("beers", new ArraySegment<byte>(stringToBytes(",Three Philosophers")));

            if (!result.Success)
            {
                Console.WriteLine("Append failed with message {0} and status code {1}", result.Message, result.StatusCode);

                if (result.Exception != null)
                {
                    throw result.Exception;
                }
            }




[NCBC-551] After a hard Failover in flight operations continue to use failed over node Created: 13/Jul/14  Updated: 26/Aug/14

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

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


 Description   
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?




[NCBC-561] During a Hard Failover -1 is returned in VBucketMap for Primary and all Replicas Created: 24/Jul/14  Updated: 28/Jul/14

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

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


 Description   
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




[NCBC-340] System.InvalidOperationException an asynchronous module or handler completed while an asynchronous operation was still pending Created: 04/Dec/13  Updated: 02/Jun/14

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

Type: Task Priority: Blocker
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: ASP.NET Session Provider

Attachments: Zip Archive NCBC340_reproduced.zip    

 Description   
I get the following error randomly on my production Couchbase server:

"System.InvalidOperationException
an asynchronous module or handler completed while an asynchronous operation was still pending"

I am using the latest Couchbase server and the latest version of the .Net SDK. When I run locally I do not see this error at all.

On production I have a two node Couchbase client. The config section is the following:

<couchbase>
  <servers bucket="Staging" bucketPassword="">
    <add uri="http://COUCH01.mobitorhost00.local:8091/pools" />
  </servers>
</couchbase>
<enyim.com>
  <memcached protocol="Binary">
    <servers>
      <add address="COUCH01.mobitorhost00.local" port="11211" />
    </servers>
    <socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:01:00" deadTimeout="00:01:00"/>
  </memcached>
</enyim.com>

When I switch to the Memcache provider instead the error does not appear.

Thanks for your help. This is really a show-stopper for us.

Here is a stack trace:

Storex.Site.dll!Storex.Site.MvcApplication.Application_Error() Line 53 C#
  [Native to Managed Transition]
  System.Web.dll!System.Web.Util.ArglessEventHandlerProxy.Callback(object sender, System.EventArgs e) Unknown
  System.Web.dll!System.Web.HttpApplication.RaiseOnError() Unknown
  System.Web.dll!System.Web.HttpApplication.PipelineStepManager.ResumeSteps(System.Exception error) Unknown
  System.Web.dll!System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext context, System.AsyncCallback cb) Unknown
  System.Web.dll!System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest wr, System.Web.HttpContext context) Unknown
  System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) Unknown
  System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) Unknown
  [Native to Managed Transition]
  [Managed to Native Transition]
  System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) Unknown
  System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) Unknown
  [AppDomain Transition]

- See more at: http://www.couchbase.com/communities/comment/reply/1892?destination=node/1892#comment-form

 Comments   
Comment by Jeff Morris [ 04/Dec/13 ]
Possible duplicate: https://www.couchbase.com/issues/browse/NCBC-302
Comment by Tomasz Poradowski [ 13/Dec/13 ]
This can be worked around by using RestSharpHttpClient, see more at http://www.couchbase.com/communities/q-and-a/answer/answer-2095
Comment by Tomasz Poradowski [ 13/Dec/13 ]
@Jeff - you're right with NCBC-302 - it is caused by the same issue as here (asynchronous call in DefaultHttpClient's constructor that fails at some point, though for me first call to get something from Couchbase usually succeeded, only subsequent calls from a given ASP.NET MVC action failed like this)
Comment by Jeff Morris [ 13/Dec/13 ]
Tomasz -

Thanks for providing this info for the community. Are you using any DI frameworks (autofac, ninject, etc) to create and inject the Couchbase client? If so, which one?

In my testing I have only been able to replicate this when using a DI framework (autofac) - my workaround has been to create the client statically in the Global.asax and then reference it like so: MvcApplication1.CouchbaseClient.<methods>.

Thanks again,

Jeff
Comment by Tomasz Poradowski [ 16/Dec/13 ]
Small ASP.NET MVC 4 application using CouchbaseClient 1.3.0 that results in "InvalidOperationException: View by_post was mapped to a dead node, failing.", unless a different HTTP client than default is used.
Comment by Tomasz Poradowski [ 16/Dec/13 ]
@Jeff - I've just attached a sample MVC application (VS2013 Express for Web solution) that:
- uses CouchbaseClient 1.3.0 and CouchbaseModelViews.Framework
- follows general guidelines from Couchbase documentation (uses Repository pattern that creates a static client in RepositoryBase<T> class)
- uses "default" bucket and in order to test it - you need to create a document there as follows: { "type": "post", "title": "test post" }.
When main page is shown - list of posts is rendered and this is fine, however when you click on the link to see details - it fails with:

[InvalidOperationException: View by_post was mapped to a dead node, failing.]
   Couchbase.CouchbaseViewHandler.GetResponse(IDictionary`2 viewParams) in e:\dev\workspace\LawFirmCouch\couchbase-net-client-1.3.0\src\Couchbase\CouchbaseViewHandler.cs:184
   Couchbase.<TransformResults>d__0`1.MoveNext() in e:\dev\workspace\LawFirmCouch\couchbase-net-client-1.3.0\src\Couchbase\CouchbaseViewHandler.cs:42
   ASP._Page_Views_Post_Show_cshtml.Execute() in e:\dev\workspace\LawFirmCouch\NCBC340\Views\Post\Show.cshtml:27
   System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
   System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +119
   System.Web.WebPages.StartPage.RunPage() +17
...

This isn't exactly the same problem, but the workaround is the same - to use RestSharpHttpClient, which you can test by uncommenting it in web.config (under /configuration/couchbase). Therefore I assume it may have the same origin.
Shall you need any more details please contact me.

Regards,
Tomasz
Comment by Tomasz Poradowski [ 16/Dec/13 ]
NCBC340_reproduced.zip now with full source code of Enyim.Caching (I deleted some source files accidentally in the first attachment)
Comment by Jeff Morris [ 17/Dec/13 ]
Thanks Tomasz -

This "[InvalidOperationException: View by_post was mapped to a dead node, failing.]" is actually a separate bug. The ticket to follow is here: http://www.couchbase.com/issues/browse/NCBC-337

-Jeff
Comment by Tomasz Poradowski [ 18/Dec/13 ]
I could not reproduce exactly the same problem in this test scenario as after finding the workaround I didn't spend any more time on it. I've just tested your fix to NCBC-337 (http://review.couchbase.org/#/c/31007/ applied by hand to current master branch of couchbase-net-client) and was hoping to finally be able to reproduce exception reported originally in this ticket - but unfortunately the same error persists ("view mapped to a dead node").
Comment by Tomasz Poradowski [ 18/Dec/13 ]
Ok, now I finally know how to reproduce this very issue - in my sample project attached to this ticket please modify NCBC340/Controllers/PostController.cs as follows:

    public class PostController : Controller
    {
        //
        // GET: /Post/
private PostRepository repository = new PostRepository();
private CommentRepository comments = new CommentRepository();

        public ActionResult Show(string id)
        {
var post = repository.Get(id);
post.Comments = comments.GetAllByPost(id);

            return View(post);
        }
    }

and like that it fails for the very first time when you go to details of a test "post" shown on main page. Therefore it seems that this asynchronous call in DefaultHttpClient's constructor does not finish on time. Subsequent calls to view details succeeded, so it's likely per design document or per view.
Comment by Tomasz Poradowski [ 27/Dec/13 ]
Though I'm not sure what impact this may have on performance - another workaround for this issue is to add following to web.config:

<couchbase>
...
    <httpClient initializeConnection="false" />
</couchbase>

This setting causes the problematic asynchronous call in DefaultHttpClient's constructor to be skipped.
Comment by Jeff Morris [ 27/Dec/13 ]
Tomasz -

This is great, we can test the performance between setting false/true.

>>I've just tested your fix to NCBC-337 (http://review.couchbase.org/#/c/31007/ applied by hand to current master branch of couchbase-net-client) and was hoping to finally be able to reproduce exception reported originally in this ticket - but unfortunately the same error persists ("view mapped to a dead node").

This should be resolved with that commit, so if your still seeing it then it's likely a bigger problem. Could you describe your environment (cluster size, etc)?

Thanks,

-Jeff
Comment by Tomasz Poradowski [ 27/Dec/13 ]
@Jeff - I assume your fix to NCBC-337 was fine, but that issue was also hit (though indirectly) by the same root cause as NCBC-340. My test environment is currently a single node running Couchbase Enterprise 2.2.0 on Win7 Pro, using 2GB RAM.




[NCBC-338] When a connection is dropped by the server, the client does not handle it gracefully. Created: 04/Dec/13  Updated: 13/Jan/14

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

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


 Description   
In 1.3.0 we added timeout and a callback which will generate an exception, but there must be a better way to do this.




[NCBC-292] update packages with new signing key Created: 27/Aug/13  Updated: 27/Aug/13

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

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





[NCBC-435] Create suite of Mocks/Fakes for running unit tests in isolation Created: 12/Apr/14  Updated: 13/Apr/14

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

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


 Description   
As a tester/developer
I want a library of Mocks/Fakes
So that I can run the entire test suite *without requiring a CB instance

*There are some feasibility constraints to do this 100%. Likely, we will have two or more classifications of tests and they will have different environment requirements - i.e. integration tests will be run against a cluster and "pure" unit tests against the mocks/fakes. Note that we can use attributes (annotations) to define these classifiers.

 Comments   
Comment by Matt Ingenthron [ 13/Apr/14 ]
Definitely talk with Brett about CAVES on this one.




[NCBC-419] A Linq implementation for N1QL Created: 24/Mar/14  Updated: 24/Mar/14

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

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

Epic Name: Linq Provider
Epic Status: To Do




[NCBC-336] Improve thoroughput during rebalance scenarios Created: 04/Dec/13  Updated: 03/Feb/14

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

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


 Description   
Throughput drops by 75%+ (on average) during rebalance. Some time quanta show zero operations in the remove-2-reblance scenario. This appears to be a regression over earlier testing.




[NCBC-326] Under load, OORE thrown when accessing view Created: 06/Nov/13  Updated: 30/Jan/14

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

Type: Task Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: team-8091
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
From the following thread: https://groups.google.com/forum/#!topic/couchbase-8091/coADcepVnV4

>>>>>


Re: Backup is running to 200.7% after crash (was: Re: [Team 8091] Couchbase server crashed during minimal load test)
Ok everyone, blast from the past. We are about to launch 2.2 of the same app that was experiencing index out of range errors accessing a view. We have continued to see this error show up during minimal as well as heavy load testing. We have multiple views and for some reason this one view causes us problems. It's use is almost identical to another that hasn't error and is access immediately before this failing view.

The content they return is different though. The error, for simplicity sake is pasted below:

System.ArgumentOutOfRangeExceptionIndex was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at Couchbase.CouchbaseClient.Couchbase.IHttpClientLocator.Locate(String designDocument)
   at Couchbase.CouchbaseViewHandler.GetResponse(IDictionary`2 viewParams)
   at Couchbase.CouchbaseViewHandler.<TransformResults>d__0`1.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at ###.Framework.Tracking.PageVisitLogger.GetResourceAccesses(String userId)
   at ###.Framework.GlobalApplication.Application_AuthenticateRequest(Object sender, EventArgs e)
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)



For the 2.1 release that started this thread, we identified issues with the .NET 1.2.6 and had to go back to 1.2.0. For this 2.2 release I tried 1.2.7 and 1.2.8 and still experienced the issue so was not able to upgrade still. The issue we have run into is documented in this thread so I'm not going to rehash it here. I even provided diagnostics to Couchbase for troubleshooting purposes.

Two things:

    Is there an ETA on when this issue will be resolved?
    What might cause this exception for just one view?

Thanks!

-K




[NCBC-196] Config updates seem to be occuring when vbucket configuration hasn't changed Created: 08/Jan/13  Updated: 30/Jan/14

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

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


 Description   
The client appears to be updating its config when receiving config updates that shouldn't trigger a change in internal config (i.e., reodered nodes, fast forward maps).

 Comments   
Comment by Jeff Morris [ 07/Oct/13 ]
vBucketServerMap (all elements), the number of nodes (cluster membership, status) and couchApiBase determine equivalence.




[NCBC-29] programmatically set all the Couchbase configurations Created: 07/Mar/12  Updated: 13/Jan/14

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

Type: New Feature Priority: Critical
Reporter: James Mauss Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
We can programmatically set some the Couchbase configurations, however we cannot set the SocketPool settings Programmatically.

These settings can be set in the config file, but it would be nice to be able to set these through the program.




[NCBC-480] Implement CouchbaseCluster.Info Created: 14/May/14  Updated: 25/Jun/14

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

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


 Description   
Provide implementation for IClusterInfo interface.




[NCBC-606] Couchbase.ServerUnavailableException at Couchbase.Configuration.ConfigContextBase.GetServer() when some nodes failed over Created: 27/Aug/14  Updated: 28/Aug/14

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

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

Attachments: Zip Archive NCBC-606.zip     File test.logs    
Issue Links:
Duplicate
is duplicated by NCBC-598 ServerUnavailableException after reba... Open

 Description   
call packages\sdkdclient\bin\brun.bat -A S3Creds_tmp -I cluster_conf
ig.ini -I sdkd.args --variants HYBRID -d all:trace
[0.30 INFO] (BRun run:436) Initializing S3
[1.12 INFO] (BRun run:441) Initializing history database
[1.75 TRACE] (CouchbaseAdmin getResponseJson:167) GET http://10.3.121.134:8091/pools

============================================================
Running ReAdd2-HYBRID: 2014-08-26 22:31:28
    workload=HybridWorkloadGroup
    failover/next_action=FO_READD_REBALANCE
    failover/count=2
    failover/next_delay=45
    testcase=FailoverScenario
    Logging to c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkdclient-ng\log\SDK-SDK\CB-3.0.0-1174\ReAdd2-HYBRID\08-26-14\0198
88\0dcd5a5bc61e625f06a757ab9dfa7db5

    To re-run the test, copy/paste the following into the shell.
    You may also copy/paste (except the first line) into an argfile
    8<----------------------------------------
    ./stester \
 \ --workload HybridWorkloadGroup --failover-next_action
 \ FO_READD_REBALANCE --failover-count 2 --failover-next_delay 45
 \ --testcase FailoverScenario -C share\rexec --rexec_path
 \ C:\temp\sdkd-out-debug\SdkdConsole.exe --rexec_port 8675
 \ --cluster_node=10.3.121.134 --cluster_node=10.3.121.135
 \ --cluster_node=10.3.121.136 --cluster_node=10.3.3.206
        --cluster_ssh-username=root --cluster_ssh-password=couchbase

.....


[123.71 INFO] (Scenario run:86) Starting CHANGE phase
[123.71 INFO] (CBCluster failoverNodes:588) Failing over <URI:10.3.121.135:8091,ns_1@10.3.121.135>
[123.72 TRACE] (CouchbaseAdmin getResponseJson:167) POST http://10.3.121.134:8091/controller/failOver
[124.10 INFO] (SDKD log:137) [Sdkd.Result|Warn] Unrecognized return code 409
[124.13 INFO] (CBCluster failoverNodes:588) Failing over <URI:10.3.121.136:8091,ns_1@10.3.121.136>
[124.14 TRACE] (CouchbaseAdmin getResponseJson:167) POST http://10.3.121.134:8091/controller/failOver
[124.40 INFO] (FailoverAction change:104) Nodes failed over. Requested sleep for 45 seconds
[125.61 INFO] (SDKD log:137)
[125.63 INFO] (SDKD log:137) Unhandled Exception: Couchbase.ServerUnavailableException: Exception of type 'Couchbase.ServerUnavail
ableException' was thrown.
[169.41 INFO] (FailoverAction doNextAction:68) Readding nodes after failover
[169.41 TRACE] (CouchbaseAdmin getResponseJson:167) POST http://10.3.121.134:8091/controller/reAddNode
[169.41 TRACE] (CouchbaseAdmin getResponseJson:167) POST http://10.3.121.134:8091/controller/reAddNode
[169.42 INFO] (FailoverAction doNextAction:85) Rebalancing nodes after failover
[169.42 TRACE] (CouchbaseAdmin getResponseJson:167) GET http://10.3.121.134:8091/pools/nodes
[169.43 TRACE] (CouchbaseAdmin getResponseJson:167) POST http://10.3.121.134:8091/controller/rebalance
[169.45 TRACE] (CouchbaseAdmin getResponseJson:167) GET http://10.3.121.134:8091/pools/default/rebalanceProgress
[169.45 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 0%
[170.46 TRACE] (CouchbaseAdmin getResponseJson:167) GET
....
[196.67 TRACE] (CouchbaseAdmin getResponseJson:167) GET http://10.3.121.134:8091/pools/default/rebalanceProgress
[196.68 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 37%
[197.59 INFO] (SDKD log:137) [Sdkd.ViewQuery|Error] ... System.NullReferenceException Object reference not set to an instance of a
n object. at Sdkd.Views.ViewCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Views\ViewComman
d.cs:line 268
[197.61 INFO] (SDKD log:137) +++ Flushing remaining exception trace buffer
[197.61 INFO] (SDKD log:137) at Couchbase.Configuration.ConfigContextBase.GetServer() in c:\jenkins\workspace\.net-sdkdclient-n
g2-andrei\couchbase-net-client\Src\Couchbase\Configuration\ConfigContextBase.cs:line 210
   at Couchbase.Core.Buckets.CouchbaseBucket.HandleIOError[T](IOperation`1 operation, IServer server) in c:\jenkins\workspace\.net
-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 194
   at Couchbase.Core.Buckets.CouchbaseBucket.CanRetryOperation[T](IOperationResult`1 operationResult, IOperation`1 operation, ISer
ver server) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:
line 179
   at Couchbase.Core.Buckets.CouchbaseBucket.SendWithRetry[T](IOperation`1 operation) in c:\jenkins\workspace\.net-sdkdclient-ng2-
andrei\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 104
   at Couchbase.Core.Buckets.CouchbaseBucket.Get[T](String key) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\couchbase-net-c
lient\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 888
   at Sdkd.Commands.GetCommand.ExecuteSingle(String key, String value) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net
\src\Sdkd\Commands\GetCommand.cs:line 18
   at Sdkd.Commands.KVCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Commands\KVCommand.cs:lin
e 25
   at SdkdConsole.Daemon.Handle.DispatchCommand(Request req, CouchbaseBucket cli) in c:\jenkins\workspace\.net-sdkdclient-ng2-andr
ei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 295
   at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs
:line 175
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boo
lean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean pre
serveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
[197.64 ERROR] (BRun maybePropagate:243) Suppressing driver-related error
com.couchbase.sdkdclient.context.HarnessException: Driver crashed
        at com.couchbase.sdkdclient.context.RunContext$5.call(RunContext.java:192) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.context.RunContext$5.call(RunContext.java:183) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) ~[na:1.6.0_27]
        at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.6.0_27]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:1.6.0_27]
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) ~[na:1.6.0_27]
        at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.6.0_27]
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) ~[na:1.6.0_27]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:1.6.0_27]
        at java.lang.Thread.run(Unknown Source) ~[na:1.6.0_27]
[197.66 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@103.73
[197.66 TRACE] (Handle sendMessageAsync:185) > {"Command":"CLOSEHANDLE","Handle":103,"ReqID":73,"CommandData":{}}
[197.66 WARN] (STester close:170) While stopping driver
java.net.SocketException: Connection reset by peer: socket write error
        at java.net.SocketOutputStream.socketWrite0(Native Method) ~[na:1.6.0_27]
        at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[na:1.6.0_27]
        at java.net.SocketOutputStream.write(Unknown Source) ~[na:1.6.0_27]
        at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) ~[na:1.6.0_27]
        at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source) ~[na:1.6.0_27]
        at sun.nio.cs.StreamEncoder.implFlush(Unknown Source) ~[na:1.6.0_27]
        at sun.nio.cs.StreamEncoder.flush(Unknown Source) ~[na:1.6.0_27]
        at java.io.OutputStreamWriter.flush(Unknown Source) ~[na:1.6.0_27]
        at java.io.BufferedWriter.flush(Unknown Source) ~[na:1.6.0_27]
        at com.couchbase.sdkdclient.handle.Handle.sendMessageAsync(Handle.java:188) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.handle.Handle.close(Handle.java:254) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.driver.HandleManager.stopAll(HandleManager.java:26) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.driver.HostPortDriver.stop(HostPortDriver.java:118) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.driver.ExecutingDriver.stop(ExecutingDriver.java:117) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.stester.STester.close(STester.java:167) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.batch.BRun.runHarness(BRun.java:287) [sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.batch.BRun.runSingleTest(BRun.java:394) [sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.batch.BRun.run(BRun.java:478) [sdkdclient-1.0-SNAPSHOT.jar:na]
        at com.couchbase.sdkdclient.batch.BRun.main(BRun.java:510) [sdkdclient-1.0-SNAPSHOT.jar:na]
[197.68 TRACE] (CouchbaseAdmin getResponseJson:167) GET http://10.3.121.134:8091/pools/default/rebalanceProgress
[197.83 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 39%
[198.80 INFO] (BRun uploadFile:141) Uploaded RAW => http://sdk-testresults.couchbase.com.s3.amazonaws.com/SDK-SDK/CB-3.0.0-1174/Re
Add2-HYBRID/08-26-14/019888/0dcd5a5bc61e625f06a757ab9dfa7db5.zip
[198.83 TRACE] (CouchbaseAdmin getResponseJson:167) GET http://10.3.121.134:8091/pools/default/rebalanceProgress


 Comments   
Comment by Jeff Morris [ 27/Aug/14 ]
These are same issue. Still trying to come up with a plan of attack for this one. A likely one will put the client back into bootstrap mode or possibly to force another config update.




[NCBC-493] Implement Replica Read Capability Created: 29/May/14  Updated: 02/Jun/14

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

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

Issue Links:
Duplicate
is duplicated by NCBC-84 Replica read command Resolved
Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-568 Update IVBucket to support more than ... Technical task Resolved Jeff Morris  




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

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

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

Issue Links:
Relates to

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




[NCBC-519] Code Comments & Sandcastle Documentation Created: 17/Jun/14  Updated: 17/Jun/14

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

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

Epic Link: Beta 1 Documentation and Sample App




[NCBC-506] Creating two or more client instances on adjacent lines creates deadlock Created: 11/Jun/14  Updated: 11/Jun/14

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

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


 Description   
Creating two or more client instances on adjacent lines may introduce a deadlock where one instance blocks, waiting for the bootstrapping to complete and the others wait, but the first never completes (not sure why). A work around is to put the main thread to sleep for a few ms before creating the next instance, which gives the first time to finish bootstrapping




[NCBC-402] Data not persisted using observe when a node is removed Created: 21/Feb/14  Updated: 22/Feb/14

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

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


 Description   
The second problem is that even with the above bug fixed(I fixed and recompiled the client), I'm still losing newly written data in an event of node restart, no matter what the PersistTo ReplicateTo values are set to.

see: https://www.couchbase.com/issues/browse/NCBC-401

 Comments   
Comment by Matt Ingenthron [ 21/Feb/14 ]
Note that the only way Durability Requirements can behave is give you a notification that the item has changed. It depends on what is meant with "node restart" here though.

It's a bit dated and needs to be updated, but see: http://www.couchbase.com/wiki/display/couchbase/Observe
Comment by Haik Nazlian [ 22/Feb/14 ]
"Node restart" means that I'm shutting down the VM, while data is being written. Always losing data even if PersistTo is set to 2.

To my understanding the cause for this is the lack of retry functionality on the Set operation.

The Set operation should implement a logic where it waits for a successful Observe operation and in case of a failure, the Set operation should write the data again and mark the old data as deleted.
Comment by Jeff Morris [ 22/Feb/14 ]
Sounds like a bug in the implementation. Thanks for the in-depth description of the issue.




[NCBC-392] Standardize, Document and Change Logging Levels for Client Created: 14/Feb/14  Updated: 02/Jun/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: docs, library
Affects Version/s: 1.3.3
Fix Version/s: backlog-1.0

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

Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-394 Add 'Warn' Level Logging to 'core' co... Technical task Resolved Jeff Morris  
NCBC-395 Assign Each Client Instance and Ident... Technical task Resolved Jeff Morris  
NCBC-396 Log the creation and destruction of c... Technical task Resolved Jeff Morris  
NCBC-397 Document changes to logging levels in... Technical task In Progress Jeff Morris  

 Description   
Most of the logging on the client is set to the Debug level, which traces all operations and their paths, config handling, heartbeat monitoring, cluster reconfiguration, etc. This task is to a) standardize and document the log levels and b) apply the changes to the client. These should be broken into sub-tasks.




[NCBC-391] Handle case where config thread cluster state is updated after bootstrapping Created: 13/Feb/14  Updated: 02/Jun/14

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

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


 Description   
The config thread uses the information from the client configuration to bootstrap, however after bootstrapping this information (cluster topology) may change if nodes are added and/or removed. This ticket is to handle the case when the node that the config thread is listening to, goes offline.




[NCBC-378] Randomize Nodes when Responding to NotMyVBucket Requests Created: 30/Jan/14  Updated: 02/Jun/14

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

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





[NCBC-376] Refactor Unit Test Project-Part 2 Created: 30/Jan/14  Updated: 02/Jun/14

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

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


 Description   
Unit test project has multiple threading and other issues which make regression testing difficult. This is a task to refactor it so that we have 100% green after every test run and so that it runs in < 1 minute.

Note this is a follow up to: https://www.couchbase.com/issues/browse/NCBC-361

 Comments   
Comment by Jeff Morris [ 03/Mar/14 ]
Saakshi -

Same as the other ticket, let's either close this or move it to the next release if it's still in-progress or revolving, ok?

Thanks,

Jeff
Comment by Saakshi Manocha [ 04/Mar/14 ]
No pending check-ins as of now, moving it to 1.3.5




[NCBC-377] Only recreate connections when config change requires it Created: 30/Jan/14  Updated: 30/Jan/14

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

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


 Description   
http://www.couchbase.org/issues/browse/NCBC-358

http://review.couchbase.org/#/c/31834/1//COMMIT_MSG

"Out of curiosity, why don't you only recreate connections which have been changed? In that case, you would have the same result, but be much more performant in many cases."




[NCBC-434] add feature test ensuring that E2BIG is returned on append above 20MB Created: 07/Apr/14  Updated: 02/Jun/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.4
Fix Version/s: 1.3.7

Type: Improvement Priority: Major
Reporter: Matt Ingenthron Assignee: Saakshi Manocha
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency
depends on MB-10778 Append do not return the correct erro... Closed

 Description   
When continuing to append beyond the maximum value of 20MByte, we should verify that applications receive the correct error response.

 Comments   
Comment by Jeff Morris [ 01/May/14 ]
Hi Saaskhi -

Should I move this to the next sprint for 1.3.6?

-Jeff
Comment by Jeff Morris [ 02/Jun/14 ]
Saakshi -

Moved this to 1.3.7 - if this isn't right, feel free to update the ticket.

Thanks,

Jeff




[NCBC-335] Admin credentials required to create a design document Created: 23/Nov/13  Updated: 13/Jan/14

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

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


 Description   
http://www.couchbase.com/communities/q-and-a/credentials-deploy-view-using-couchbasecluster
 
I spent some time with the SDK trying to figure this out and it looks like a bug in the client SDK:
 
var config = new CouchbaseClientConfiguration();
config.Urls.Add(new Uri(ConfigurationManager.AppSettings["CouchbaseServerUrl"] + "/pools"));
config.Password = "Administrator";
config.Username = "password";
config.Bucket = "authenticated";
config.BucketPassword = "secret";
 
var cluster = new CouchbaseCluster(config);
 
using (var stream = new FileStream("Data\\CityViews.json", FileMode.Open))
{
       var result = cluster.CreateDesignDocument("authenticated", "somename", stream);
       Assert.IsTrue(result);
}
 
Even this doesn’t work and returns a 401 Unauthorized…if you remove the cluster level authentication, then 401 unauthorized is still returned. Note that this will create the design document under the default bucket:
 
var config = new CouchbaseClientConfiguration();
config.Urls.Add(new Uri(ConfigurationManager.AppSettings["CouchbaseServerUrl"] + "/pools"));
config.Bucket = "authenticated";
config.BucketPassword = "secret";
 
var cluster = new CouchbaseCluster(config);
 
using (var stream = new FileStream("Data\\CityViews.json", FileMode.Open))
{
       var result = cluster.CreateDesignDocument("default", "somename", stream);
       Assert.IsTrue(result);
}





[NCBC-304] log4net logging broken Created: 27/Sep/13  Updated: 27/Sep/13

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

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


 Description   
When logging is configured to log4net like in .net client manual it throws exception:
"Could not load file or assembly 'Enyim.Caching, Version=2.12.0.0, Culture=neutral, PublicKeyToken=05e9c6b5a9ec94c2'"

In release notes http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-rn_1-2-7a.html said that this is "fixed" and it should work if I update all components through nuget. But I don't use nuget, I just downloaded zip archive from http://packages.couchbase.com/clients/net/1.2/Couchbase-Net-Client-1.2.7.zip and included all nessesary references.

 Comments   
Comment by SkeLLLa [ 27/Sep/13 ]
I think that packaged version of log4net adapter in zip file is broken.




[NCBC-281] Lost error message and exception Created: 22/Jul/13  Updated: 22/Jul/13

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

Type: Bug Priority: Major
Reporter: Raphaël Bartement Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
When a Couchbase operation fails, we may not get the error message and exception (at least for the kind of error I have).
Those error details are produced properly, but then overwriten and erased by the MemcachedNode.ExecuteOperation implementation.

When Acquire fails, "readResult.Combine(result);" overwrites this result with the values of "readResult", which in this block is always blank.

Dropping it just gave me back the error I was looking for.

 Comments   
Comment by Raphaël Bartement [ 22/Jul/13 ]
You may consider using this pull request to fix this bug: https://github.com/couchbase/couchbase-net-client/pull/5




[NCBC-294] Enhance intelligence of client to know about all nodes of a cluster for making REST connection Created: 27/Aug/13  Updated: 27/Aug/13

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

Type: Improvement Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
If configured with a single host (a load balancer), the client may pause for everytime it loses this connection. The same thing happens when configured with a list of hosts and the client reaches the end of the list...it pauses before going back to the top.

I don't think it's appropriate to ask for the client to constantly spin on trying to make a connection if in fact none can be made.

Another solution to this would be to have the client be aware of ALL the servers in a cluster (which it gets via the vbucket map info) and be able to try all of them, and/or know which ones are alive so that it doesn't have to wait




[NCBC-295] allow for setting bootstrap nodes via a configuration file, including dynamic updates Created: 27/Aug/13  Updated: 27/Aug/13

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

Type: Improvement Priority: Major
Reporter: Matt Ingenthron Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Currently, bootstrap parameters may be supplied only via arguments to the constructor. A feature should be added to allow for URLs to be used for bootstrap to be configured via a properties file or something along those lines. This should be able to be edited, and then picked up, during a given client object's lifetime.




[NCBC-268] Implement timeouts on actual operations Created: 30/May/13  Updated: 30/May/13

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

Type: Improvement Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
At the moment it seems that the timeout values are only used on the initial connection to a Couchbase node, not on the servicing of operations.

Comment from a customer:
We had the problems in the WaitAny/WaitMultiple part of the BulkGet method. We saw that there is no timeout passed to the Wait methods. There is a time defined on the connections itself but it would be better if the WaitAny/WaitMultiple methods would have a timeout too.




[NCBC-215] BinaryOperation failues should include message Created: 31/Jan/13  Updated: 30/Jan/14

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

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


 Description   
When the client is unable to process the response from the server, there should be some notification, probably via BinaryOperationResult.Message

 Comments   
Comment by Jeff Morris [ 03/Oct/13 ]
This may be fixed by http://review.couchbase.org/29175 (NCBC-301). Need to confirm.




[NCBC-175] Authenticated view tests should use app.config Created: 07/Dec/12  Updated: 13/Jan/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2 Beta-3, 1.2.0
Fix Version/s: backlog-1.0

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





[NCBC-162] Handle "no active vbucket" view failure Created: 23/Nov/12  Updated: 07/Feb/14

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

Type: Bug Priority: Major
Reporter: Mark Nunberg Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Enyim master (rev: 6590b2643c62059e6f2418ccc5bea8c58326dfbc <- master at time of writing)
Couchbase master (rev: e3de5459bfc0b5efd1eb906a99e903990a3fc2ce <- master at time of writing)
Server 1941


 Description   
Presumably the client should try the view on another node..

In general we should have a unified exception class for view errors the client can understand.. InvalidOperationException is not very helpful or descriptive (nor is it very catchable.. though it was probably initially placed as a stub)..

[INFO 76.59 cbsdk.scenario failover.py:149] Ramp for 5 seconds..
[INFO 81.60 cbsdk.scenario failover.py:157] No service specified..
[ACTION 81.60 cbsdk.scenario failover.py:160] Failing over nodes [ip:10.3.121.207 ssh_username:root]
[ACTION 81.60 cbsdk.cluster.cluster cluster.py:695] Failing over node ip:10.3.121.207 ssh_username:root
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Requested suppression of exception dialog box..
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Unhandled Exception System.InvalidOperationException Server returned Found: Moved Temporarily, {"error":"no_active_vbuckets","reason":"Cannot execute view query since the node has no active vbuckets"} at Couchbase.HammockHttpClient.HammockResponseWrapper.ExecuteWith(RestClient client) in \\vboxsrv\src\couchbase-net-client\src\Couchbase\HammockHttpClient.cs:line 143
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at Couchbase.HammockHttpClient.HammockRequestWrapper.Couchbase.IHttpRequest.GetResponse() in \\vboxsrv\src\couchbase-net-client\src\Couchbase\HammockHttpClient.cs:line 112
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.GetResponse(IDictionary`2 viewParams) in \\vboxsrv\src\couchbase-net-client\src\Couchbase\CouchbaseViewHandler.cs:line 144
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.<TransformResults>d__0`1.MoveNext() in \\vboxsrv\src\couchbase-net-client\src\Couchbase\CouchbaseViewHandler.cs:line 38
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at Sdkd.Views.ViewCommand.Run() in \\vboxsrv\src\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in \\vboxsrv\src\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.Run() in \\vboxsrv\src\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart()
[SDKD(INFO) 81.78 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Requested suppression of exception dialog box..
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Requested suppression of exception dialog box..
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Requested suppression of exception dialog box..
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Unhandled Exception System.InvalidOperationException Server returned Found: Moved Temporarily, {"error":"no_active_vbuckets","reason":"Cannot execute view query since the node has no active vbuckets"} at Couchbase.HammockHttpClient.HammockResponseWrapper.ExecuteWith(RestClient client) in \\vboxsrv\src\couchbase-net-client\src\Couchbase\HammockHttpClient.cs:line 143
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.HammockHttpClient.HammockRequestWrapper.Couchbase.IHttpRequest.GetResponse() in \\vboxsrv\src\couchbase-net-client\src\Couchbase\HammockHttpClient.cs:line 112
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.GetResponse(IDictionary`2 viewParams) in \\vboxsrv\src\couchbase-net-client\src\Couchbase\CouchbaseViewHandler.cs:line 144
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.<TransformResults>d__0`1.MoveNext() in \\vboxsrv\src\couchbase-net-client\src\Couchbase\CouchbaseViewHandler.cs:line 38
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Sdkd.Views.ViewCommand.Run() in \\vboxsrv\src\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in \\vboxsrv\src\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.Run() in \\vboxsrv\src\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Will now exit..
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Unhandled Exception System.InvalidOperationException Server returned Found: Moved Temporarily, {"error":"no_active_vbuckets","reason":"Cannot execute view query since the node has no active vbuckets"} at Couchbase.HammockHttpClient.HammockResponseWrapper.ExecuteWith(RestClient client)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.HammockHttpClient.HammockRequestWrapper.Couchbase.IHttpRequest.GetResponse()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.GetResponse(IDictionary`2 viewParams)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.<TransformResults>d__0`1.MoveNext()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Sdkd.Views.ViewCommand.Run()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.dispatchCommand(Request req)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.Run()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Will now exit..
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Unhandled Exception System.InvalidOperationException Server returned Found: Moved Temporarily, {"error":"no_active_vbuckets","reason":"Cannot execute view query since the node has no active vbuckets"} at Couchbase.HammockHttpClient.HammockResponseWrapper.ExecuteWith(RestClient client)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.HammockHttpClient.HammockRequestWrapper.Couchbase.IHttpRequest.GetResponse()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.GetResponse(IDictionary`2 viewParams)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Couchbase.CouchbaseViewHandler.<TransformResults>d__0`1.MoveNext()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at Sdkd.Views.ViewCommand.Run()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.dispatchCommand(Request req)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at SdkdConsole.Daemon.Handle.Run()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] at System.Threading.ThreadHelper.ThreadStart()
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Will now exit..
[SDKD(INFO) 81.79 cbsdk.sdkd.remote remote.py:263] [Sdkd.Main|Fatal] Will now exit..





[NCBC-153] InvalidOperationException in views during server restart Created: 12/Nov/12  Updated: 13/Jan/14

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

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


 Description   
'service couchbase-server restart' on the (only) node.

While it's easy to understand the reason for these errors, they should be wrapped a bit nicer. This is with doing GetItem() on each view request (and running them all inside a tight loop).

[Couchbase.MessageStreamListener|Warn] Current node 'http://10.0.0.99:8091/pools/default/bucketsStreaming/default?bucket
_uuid=e0a080ddc9d74fa3adbcbb9385f2ceae' has failed.
[Couchbase.MessageStreamListener|Warn] Could not found a working node.
[Couchbase.MessageStreamListener|Warn] All nodes are dead, sleeping for a while.
[Enyim.Caching.Memcached.MemcachedNode|Error] System.IO.IOException: Failed to read from the socket '10.0.0.99:11210'. E
rror: ConnectionReset
   at Enyim.Caching.Memcached.PooledSocket.BasicNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) in F:\couch
base-net-client\lib\EnyimMemcached\Enyim.Caching\Memcached\BasicNetworkStream.cs:line 92
   at System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count)
   at Enyim.Caching.Memcached.PooledSocket.Read(Byte[] buffer, Int32 offset, Int32 count) in F:\couchbase-net-client\lib
\EnyimMemcached\Enyim.Caching\Memcached\PooledSocket.cs:line 222
   at Enyim.Caching.Memcached.Protocol.Binary.BinaryResponse.Read(PooledSocket socket) in F:\couchbase-net-client\lib\En
yimMemcached\Enyim.Caching\Memcached\Protocol\Binary\BinaryResponse.cs:line 57
   at Enyim.Caching.Memcached.Protocol.Binary.BinarySingleItemOperation.ReadResponse(PooledSocket socket) in F:\couchbas
e-net-client\lib\EnyimMemcached\Enyim.Caching\Memcached\Protocol\Binary\BinarySingleItemOperation.cs:line 24
   at Enyim.Caching.Memcached.Protocol.Operation.Enyim.Caching.Memcached.IOperation.ReadResponse(PooledSocket socket) in
 F:\couchbase-net-client\lib\EnyimMemcached\Enyim.Caching\Memcached\Protocol\Operation.cs:line 27
   at Enyim.Caching.Memcached.MemcachedNode.ExecuteOperation(IOperation op) in F:\couchbase-net-client\lib\EnyimMemcache
d\Enyim.Caching\Memcached\MemcachedNode.cs:line 550
[Enyim.Caching.Memcached.MemcachedNode|Error] System.IO.IOException: Failed to read from the socket '10.0.0.99:11210'. E
rror: ConnectionReset
   at Enyim.Caching.Memcached.PooledSocket.BasicNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) in F:\couch
base-net-client\lib\EnyimMemcached\Enyim.Caching\Memcached\BasicNetworkStream.cs:line 92
   at System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count)
   at Enyim.Caching.Memcached.PooledSocket.Read(Byte[] buffer, Int32 offset, Int32 count) in F:\couchbase-net-client\lib
\EnyimMemcached\Enyim.Caching\Memcached\PooledSocket.cs:line 222
   at Enyim.Caching.Memcached.Protocol.Binary.BinaryResponse.Read(PooledSocket socket) in F:\couchbase-net-client\lib\En
yimMemcached\Enyim.Caching\Memcached\Protocol\Binary\BinaryResponse.cs:line 57
   at Enyim.Caching.Memcached.Protocol.Binary.BinarySingleItemOperation.ReadResponse(PooledSocket socket) in F:\couchbas
e-net-client\lib\EnyimMemcached\Enyim.Caching\Memcached\Protocol\Binary\BinarySingleItemOperation.cs:line 24
   at Enyim.Caching.Memcached.Protocol.Operation.Enyim.Caching.Memcached.IOperation.ReadResponse(PooledSocket socket) in
 F:\couchbase-net-client\lib\EnyimMemcached\Enyim.Caching\Memcached\Protocol\Operation.cs:line 27
   at Enyim.Caching.Memcached.MemcachedNode.ExecuteOperation(IOperation op) in F:\couchbase-net-client\lib\EnyimMemcache
d\Enyim.Caching\Memcached\MemcachedNode.cs:line 550
[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.
[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.
[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.


Unhandled Exception:Unhandled Exception: [Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dea
d node, failing.

[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.
Unhandled Exception:[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.


[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.
System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
Unhandled Exception:Unhandled Exception:[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead
 node, failing.


System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart() System.InvalidOperationException: Operation is not valid due to the cu
rrent state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart() [Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped
 to a dead node, failing.

Unhandled Exception:

[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.
Unhandled Exception:
[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.

 Unhandled Exception:System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()System.InvalidOperationException: Operation is not valid due to the cur
rent state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped
to a dead node, failing.


Unhandled Exception:
Unhandled Exception:[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.

 System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart() [Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped
 to a dead node, failing.

Unhandled Exception:System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.
Unhandled Exception:
 System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.

 Unhandled Exception:System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped
to a dead node, failing.

Unhandled Exception:

[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped to a dead node, failing.

Unhandled Exception: System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()[Couchbase.CouchbaseView|Warn] View Couchbase.CouchbaseView was mapped
to a dead node, failing.

 Unhandled Exception:
System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()Unhandled Exception:[Couchbase.CouchbaseView|Warn] View Couchbase.Couch
baseView was mapped to a dead node, failing.


System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
Unhandled Exception:System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
Unhandled Exception:System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
 Unhandled Exception:
System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart() System.InvalidOperationException: Operation is not valid due to the cu
rrent state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()System.InvalidOperationException: Operation is not valid due to the cur
rent state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Couchbase.CouchbaseViewBase`1.GetResponse() in F:\couchbase-net-client\src\Couchbase\CouchbaseViewBase.cs:line 209

   at Couchbase.CouchbaseViewBase`1.<TransformResults>d__0`1.MoveNext() in F:\couchbase-net-client\src\Couchbase\Couchba
seViewBase.cs:line 95
   at Sdkd.Views.ViewCommand.Run() in F:\sdkd-net\src\Sdkd\Views\ViewCommand.cs:line 219
   at SdkdConsole.Daemon.Handle.dispatchCommand(Request req) in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 177
   at SdkdConsole.Daemon.Handle.Run() in F:\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 110
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, B
oolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()


 Comments   
Comment by Mark Nunberg [ 12/Nov/12 ]
Of course the code blatantly throws this exception. I would think perhaps a bit something less severe would do? Maybe a WebException with a code of 400 (standard code for client-side errors); and maybe with some kind of simple retry?




[NCBC-113] CouchbaseCluster RESTful wrappers should not expose WebExceptions Created: 05/Sep/12  Updated: 13/Jan/14

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

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





[NCBC-101] Provide Consistent Timeouts Created: 24/Aug/12  Updated: 13/Jan/14

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

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


 Description   
Provides the consistent level of time outs with other SDKs. Provide ability to set timeouts at: 1) connection, 2) authentication, and 3) ops level.




[NCBC-97] Stats call doesn't handle I/O error Created: 20/Aug/12  Updated: 02/Jun/14

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

Type: Bug Priority: Major
Reporter: Tim Smith (Inactive) Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Couchbase Client 1.1.6, server 1.8.0 build 55

Issue Links:
Dependency

 Description   
Repeat as follows:

- Call to MemcachedClient.Stats(type)
- This builds a StatsOperation for each node and asynchronously performs MemcachedNode.Execute(cmd)
- An I/O error occurs, so StatsOperation leaves its member "results" as null and Execute returns false to indicate an error
- MemcachedClient ignores the returned Boolean value from EndInvoke and puts a null dictionary into its own set of results
- ServerStats.GetRaw(key) dies trying to select into the missing dictionary

Plausible fix: check the status from EndInvoke and don't stick anything in the dictionary if there was an error.

 Comments   
Comment by Tim Smith (Inactive) [ 20/Aug/12 ]
Example of how it's called: mc.Stats().GetRaw("uptime"); result is NullReferenceException....
Comment by Jeff Morris [ 19/Mar/14 ]
Hi Abhishek -

We have a release coming up and try to work this into it. Same for the other ticket they opened 2 years(?) or so ago.

-Jeff




[NCBC-44] Optimize multiple set (multi-set or mset bulk update) with setq Created: 21/May/12  Updated: 13/Jan/14

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

Type: New Feature Priority: Major
Reporter: Tim Smith (Inactive) Assignee: Jeff Morris
Resolution: Unresolved Votes: 1
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The Java client, and others, implement a more efficient bulk loading feature when multiple updates are sent to the cluster at one time. They use setq to send multiple requests without needing to round-trip the result after each one.

The .NET client does not implement this; it only implements a multi-get operation. The multi-set is important for efficiently loading data.

This probaby doesn't have to be Couchbase-specific, but would apply to vanilla memcached servers, too.

 Comments   
Comment by Tim Smith (Inactive) [ 21/May/12 ]
To be clear, I'm talking about the kind of optimization described here:

http://dustin.github.com/2009/09/23/spymemcached-optimizations.html

Thanks,

Tim




[NCBC-39] Minimize key size by storing as binary array Created: 30/Apr/12  Updated: 02/Jun/14

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

Type: Improvement Priority: Major
Reporter: Tim Smith (Inactive) Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: .NET client, Couchbase Server 1.8


 Description   
To reduce overall memory consumption, and make most efficient use of resources, the client should be able to store data as a binary array instead of in a string representation. For example, a GUID which might take 36 bytes as a string can be stored as a 20-byte binary array.

However, the .NET client API doesn't provide any means to store non-string representations of keys, so we're not able to maximize efficiency in this way.






[NCBC-36] Enhance intelligence of client to know about all nodes of a cluster for making REST connection Created: 06/Apr/12  Updated: 02/Jun/14

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

Type: Improvement Priority: Major
Reporter: Perry Krug Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
If configured with a single host (a load balancer), the client will pause for 1s everytime it loses this connection. The same thing happens when configured with a list of hosts and the client reaches the end of the list...it pauses for 1s before going back to the top.

I don't think it's appropriate to ask for the client to constantly spin on trying to make a connection if in fact none can be made.

Another solution to this would be to have the client be aware of ALL the servers in a cluster (which it gets via the vbucket map info) and be able to try all of them, and/or know which ones are alive so that it doesn't have to wait

 Comments   
Comment by Perry Krug [ 15/Aug/13 ]
This is also needed when trying to upgrade the entire cluster as IP addresses are changing (mostly in AWS)
Comment by Perry Krug [ 13/Jan/14 ]
Has this already been handled with unibrow/CCCP?
Comment by Matt Ingenthron [ 13/Jan/14 ]
Node IPs only change on reboot in EC2. Well, or if you associate an EIP, but that's administrator controlled, not random.

.NET has not implemented unibrow yet and may actually get to CCCP first. The phase one for unibrow was Java and libcouchbase, and those two have been done for some time.
Comment by Perry Krug [ 13/Jan/14 ]
I think it's just important to realize the major use case of this would be when replacing all of the nodes in a client's bootstrap list. This might be when swapping all nodes for some reason or another or just happening to rebalance out the nodes that the client has in its list...I don't think that's a corner-case only related to AWS.




[NCBC-120] Statistics through Stats() Enyim.Caching.MemcachedClient. Created: 17/Sep/12  Updated: 13/Jan/14

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

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


 Description   


User is collecting statistics and would like to collect some of the histogram type data that is available for specific stats through cbstats timings.

Particularly: "disk_insert" and "item_alloc_sizes" with the Stats command to get data as described in 2.5 Timing Stats for link: https://github.com/membase/ep-engine/blob/master/docs/stats.org.

They would like to be able to do this through Enyim.Caching.dll as it is already used by their "Core" code so they support statistics gathering with what that interface offers and like its simplicity.

Currently the dll support memcached specific stats but not ep-engine.

Enhancment request is to expand the functionality of the stats call in Enyim.Caching





[NCBC-99] Provide Error Handling Consistent with Other SDKs Created: 24/Aug/12  Updated: 02/Jun/14

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

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


 Description   
Provide Error Handling Consistent with Other SDKs and underlying protocol.

 Comments   
Comment by Matt Ingenthron [ 24/Aug/12 ]
Karen: there are a number of specific bugs filed and work underway on this, planned for 1.1.7. Given the context, I don't know if they'll ever be perfectly consistent, but that's okay.

Was there something specific you were concerned with here?




[NCBC-4] default logging on Enyim should include INFO level logging on connections being dropped Created: 03/Aug/11  Updated: 10/Mar/14

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

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


 Description   
Per an email discussion, at least when using the COM wrapper, if not when using .NET calls directly, there may not be logging by default about connection drops/reconnects.




[NCBC-532] Provide TAP Methods for K/V operations Created: 26/Jun/14  Updated: 26/Jun/14

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

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

Epic Link: Provide Async TAP methods for all operations - view, kv, and n1ql




[NCBC-531] Provide Async TAP methods for all operations - view, kv, and n1ql Created: 25/Jun/14  Updated: 26/Jun/14

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

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

Epic Name: Provide Async TAP methods for all operations - view, kv, and n1ql
Epic Status: To Do




[NCBC-534] Provide TAP Methods for N1QL Created: 26/Jun/14  Updated: 26/Jun/14

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

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

Epic Link: Provide Async TAP methods for all operations - view, kv, and n1ql




[NCBC-533] Provide TAP Methods for Views Created: 26/Jun/14  Updated: 26/Jun/14

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

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

Epic Link: Provide Async TAP methods for all operations - view, kv, and n1ql




[NCBC-560] Measure performance impact of using Mutex's and possibly use RWSL instead. Created: 23/Jul/14  Updated: 23/Jul/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 2.0 DP2, 2.0 DP3
Fix Version/s: backlog-2.0

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


 Description   
See this commit: http://review.couchbase.org/#/c/39761/ and http://www.couchbase.com/issues/browse/NCBC-558




[NCBC-284] after some time with lots of connections, client gets stuck requiring a full IIS reset Created: 30/Jul/13  Updated: 23/Aug/13

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

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Saakshi Manocha
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Couchbase Server 2.1


 Description   
Bug reporter can reproduce this issue in production, but has not been able to reproduce it in test environment. From the bug reporter:

"once we get lots of connections to the live server with a single instance it eventually totally gets stuck, and it is not clear where or why. A full IIS reset is needed.

"I am going to try to load test our site on our staging server to see if we can get it to fail outside of the production server. I suspect the issue can be replicated if you add a large load to a web app that is making extensive use of couchbase for caching. In our case we have to Couchbase clients that we use; one is to the memcached buckets we use purely for caching, and the second is to a couchbase bucket that currently only stores session data. Not sure that makes any difference, but we do use two clients per request. And since we use it for session data that one gets a good load on it but the cache one is hit many times per request.

And after some further investigation:

"However the good news is that it behaved differently to how it has in the past. Usually as soon as we turn it on and recycle the application pool, the site falls over and becomes non-responsive immediately, and the CPU gets pegged at 100% in the IIS process. In this case however we actually got a page load to come up pretty quickly after we turned it on, which for a second made me think it was working. But alas more page loads after that started to load up and the site ground to a halt. Oddly the CPU was not pegged at 100% like it normally does, but it was definitely way higher than normal, in the 80-95% range I think (normal CPU sits around 10-15% max once the site has come up and settled in).

 Comments   
Comment by Matt Ingenthron [ 30/Jul/13 ]
Saakshi: I know you're trying to reproduce this. Can you drop your current status in here, including any references to tools we've built or modified? Let's track status on this investigation on this NCBC.
Comment by Saakshi Manocha [ 05/Aug/13 ]
Hi Kendall,

1. Please note that constructing the client should not be done per operation, but rather per app domain. Could you please try to use one Couchbase client per request and try if that helps.

2. Since the problems are seen with increase in number of threads, could you try once by gradually increasing the time out in the sessionState config section as below:

<sessionState customProvider="Couchbase" mode="Custom" timeout="500">
    <providers>
        <add name="Couchbase" type="Couchbase.AspNet.SessionState.CouchbaseSessionStateProvider, Couchbase.AspNet" section="couchbaseSessionState" />
    </providers>
</sessionState>
Comment by Kendall Bennett [ 05/Aug/13 ]
1. The demo code shows creating a single, static instance of the Couchbase client, so that all threads share the same instance and internally Couchbase uses the Enyim library that caches HTTP connections in a pool and reuses them. That is basically one client per app domain, and that is what does NOT work. Our site hangs up if we try to do that.

To work around the issue we create one client per HTTP application instance, not per request. So we are reusing instances over and over for subsequent requests, but there is only one per HTTP instance that IIS starts. We average about 40 or so instances under load. This means no thread safety is needed because IIS only handles one request per instance at a time, and is the reason we made this change. Which indicates that the current library has some kind of threading issue that causes our site to lock up and get stuck if we try to use the single instance mode where all threads (40 at a time) are coming into the library at once.

2. I am not sure why the session state config will make any difference? I don't believe it is a timeout problem in the sessions or we should see a session timeout error getting logged?
Comment by Saakshi Manocha [ 05/Aug/13 ]
Is it possible for you to share your sample code or code snippet so that I can have a look?
Comment by Kendall Bennett [ 06/Aug/13 ]
Sure, I can do that. I am busy the rest of this week, but I can try next week. What specifically are you looking for? Something that shows how we set up per-application instance? Or how we are using it in single instance mode? We have it set up so we can change from per-app instance (which works best for us) and single instance mode with a configuration file change.
Comment by Saakshi Manocha [ 23/Aug/13 ]
Could you please share some code snippet or a simple test case that demonstrates the error you are getting. I won't be able to debug your entire program as it might be dependent on any of the customer-specific binaries, but lets target a small code which replicates the behaviour at your end and i will try to debug and analyse the error.




[NCBC-565] Remove "verbose" logging and tracing Created: 27/Jul/14  Updated: 27/Jul/14

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

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


 Description   
This ticket is to ensure that the large number of trace/debug statements are removed before GA is released. While the verbosity make debugging easier, it may be a bit too much for a release candidate, thus this ticket is intended to ensure that extraneous trace/debug/log messages are removed or at least reviewed.




[NCBC-579] Make unsupported memcached methods throw NotSupportedException Created: 11/Aug/14  Updated: 14/Aug/14

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

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


 Description   
Both Memcache and Couchbase buckets implement IBucket interface, but Memcached buckets only support a subset of the methods defined on that interface. For features that are not supported on memcached buckets, they currently throw NotImplementedExceptions, this should be change to NotSupportedExceptions.




[NCBC-586] AddRef and Release on IBucket must not be public Created: 15/Aug/14  Updated: 15/Aug/14

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

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


 Description   
AddRef and Release belong to a public interface, IBucket, thus are public methods. They are intended to be internal methods, so this needs to be refactored a bit to make them non-public.




[NCBC-598] ServerUnavailableException after rebalance (in CouchbaseBucket.Get) Created: 21/Aug/14  Updated: 27/Aug/14

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

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

Attachments: Zip Archive log.txt.zip    
Issue Links:
Duplicate
duplicates NCBC-606 Couchbase.ServerUnavailableException ... Open

 Description   
git log
commit 86219ee99ccafdd00c98d577c9bc2b97efef35bb
Author: jeffrymorris <jeffrymorris@gmail.com>
Date: Wed Aug 20 17:44:45 2014 -0700

    NCBC-592: AuthenticationException in CouchbaseBucket.SendWithRetry


Running Rb2Out-KV: 2014-08-20 23:33:57
.....


[25.05 DEBUG] (Handle receiveMessage:158) < NEWHANDLE@121.33
[25.05 DEBUG] (Handle sendMessageAsync:183) > MC_DS_GET@121.43 => {DSType=DSTYPE_SEEDED, DS={KSeed=SimpleKey, VSeed=SimpleValue, Count=10, Continuous=true, VSize=128, Repeat=REP, KSize=32}, Options={DelayMax=10, DelayMin=1, IterWait=1, TimeRes=1}}
[25.05 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Got command MC_DS_GET 
[25.06 INFO] (Scenario run:83) RAMP phase started. Waiting for 30 seconds
[25.06 INFO] (SDKD log:137) [Sdkd.Handle|Warn] Command data: {
[25.06 INFO] (SDKD log:137)  "DSType": "DSTYPE_SEEDED",
[25.06 INFO] (SDKD log:137)  "DS": {
[25.07 INFO] (SDKD log:137)  "KSeed": "SimpleKey",
[25.07 INFO] (SDKD log:137)  "VSeed": "SimpleValue",
[25.07 INFO] (SDKD log:137)  "Count": 10,
[25.07 INFO] (SDKD log:137)  "Continuous": true,
[25.07 INFO] (SDKD log:137)  "VSize": 128,
[25.07 INFO] (SDKD log:137)  "Repeat": "REP",
[25.07 INFO] (SDKD log:137)  "KSize": 32
[25.07 INFO] (SDKD log:137)  },
[25.07 INFO] (SDKD log:137)  "Options": {
[25.07 INFO] (SDKD log:137)  "DelayMax": 10,
[25.07 INFO] (SDKD log:137)  "DelayMin": 1,
[25.07 INFO] (SDKD log:137)  "IterWait": 1,
[25.07 INFO] (SDKD log:137)  "TimeRes": 1
[25.09 INFO] (SDKD log:137)  }
[25.09 INFO] (SDKD log:137) } 
[55.06 INFO] (Scenario run:86) Starting CHANGE phase
[55.08 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 0%
[56.10 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 0%
[57.12 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 2%
[58.13 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 4%
[59.14 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 7%
.................................
[99.67 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 94%
[100.69 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 96%
[101.70 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 98%
[102.70 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[103.71 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[104.72 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[105.72 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[106.74 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[107.74 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[108.75 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[109.76 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[110.76 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[111.77 DEBUG] (RebalanceWaiter sweepOnce:38) Rebalance Progress: 100%
[112.75 INFO] (SDKD log:137) [Sdkd.Result|Warn] Unrecognized return code 409 
[112.78 INFO] (RebalanceWaiter sweepOnce:33) Rebalance complete
[112.79 INFO] (Scenario run:97) CHANGE phase done
[112.79 INFO] (Scenario run:103) Starting REBOUND for 90 seconds
[113.23 INFO] (SDKD log:137) 
[113.26 INFO] (SDKD log:137) Unhandled Exception: Couchbase.ServerUnavailableException: Exception of type 'Couchbase.ServerUnavailableException' was thrown.
[125.87 INFO] (SDKD log:137) +++ Flushing remaining exception trace buffer
[125.88 INFO] (SDKD log:137)  at Couchbase.Configuration.ConfigContextBase.GetServer() in c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Configuration\ConfigContextBase.cs:line 212
   at Couchbase.Core.Buckets.CouchbaseBucket.HandleIOError[T](IOperation`1 operation, IServer server) in c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 194
   at Couchbase.Core.Buckets.CouchbaseBucket.CanRetryOperation[T](IOperationResult`1 operationResult, IOperation`1 operation, IServer server) in c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 179
   at Couchbase.Core.Buckets.CouchbaseBucket.SendWithRetry[T](IOperation`1 operation) in c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 104
   at Couchbase.Core.Buckets.CouchbaseBucket.Get[T](String key) in c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\Core\Buckets\CouchbaseBucket.cs:line 888
   at Sdkd.Commands.GetCommand.ExecuteSingle(String key, String value) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Commands\GetCommand.cs:line 18
   at Sdkd.Commands.KVCommand.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\Sdkd\Commands\KVCommand.cs:line 25
   at SdkdConsole.Daemon.Handle.DispatchCommand(Request req, CouchbaseBucket cli) in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 235
   at SdkdConsole.Daemon.Handle.Run() in c:\jenkins\workspace\.net-sdkdclient-ng2-andrei\sdkd-net\src\SdkdConsole\Daemon\Handle.cs:line 156
   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()
[125.89 ERROR] (BRun maybePropagate:243) Suppressing driver-related error
com.couchbase.sdkdclient.context.HarnessException: Driver crashed
at com.couchbase.sdkdclient.context.RunContext$5.call(RunContext.java:192) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.context.RunContext$5.call(RunContext.java:183) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) ~[na:1.6.0_27]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.6.0_27]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:1.6.0_27]
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) ~[na:1.6.0_27]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.6.0_27]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) ~[na:1.6.0_27]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:1.6.0_27]
at java.lang.Thread.run(Unknown Source) ~[na:1.6.0_27]
[125.89 DEBUG] (Handle sendMessageAsync:183) > CLOSEHANDLE@102.44
[125.90 WARN] (STester close:170) While stopping driver
java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method) ~[na:1.6.0_27]
at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[na:1.6.0_27]
at java.net.SocketOutputStream.write(Unknown Source) ~[na:1.6.0_27]
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) ~[na:1.6.0_27]
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source) ~[na:1.6.0_27]
at sun.nio.cs.StreamEncoder.implFlush(Unknown Source) ~[na:1.6.0_27]
at sun.nio.cs.StreamEncoder.flush(Unknown Source) ~[na:1.6.0_27]
at java.io.OutputStreamWriter.flush(Unknown Source) ~[na:1.6.0_27]
at java.io.BufferedWriter.flush(Unknown Source) ~[na:1.6.0_27]
at com.couchbase.sdkdclient.handle.Handle.sendMessageAsync(Handle.java:188) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.handle.Handle.close(Handle.java:254) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.driver.HandleManager.stopAll(HandleManager.java:26) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.driver.HostPortDriver.stop(HostPortDriver.java:118) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.driver.ExecutingDriver.stop(ExecutingDriver.java:117) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.stester.STester.close(STester.java:167) ~[sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.batch.BRun.runHarness(BRun.java:287) [sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.batch.BRun.runSingleTest(BRun.java:394) [sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.batch.BRun.run(BRun.java:478) [sdkdclient-1.0-SNAPSHOT.jar:na]
at com.couchbase.sdkdclient.batch.BRun.main(BRun.java:510) [sdkdclient-1.0-SNAPSHOT.jar:na]


 Comments   
Comment by Jeff Morris [ 22/Aug/14 ]
I think this needs to be caught and returned back to the application as a failed operation. The application can decide to retry the operation or continue on based upon the IOperationResult<T>.Status and Message properties.




[NCBC-612] Provide configurable timeouts for View and N1QL queries Created: 28/Aug/14  Updated: 28/Aug/14

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

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


 Description   
These should default to certain values at the ClientConfiguration level and be overridable at the BucketConfiguration and the query levels themselves.




[NCBC-539] ManualByteConvert.ToUInt64 returns invalid number Created: 01/Jul/14  Updated: 01/Jul/14

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

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


 Description   
Sample bytes (a CAS value):

[0x00000010] 0x00
[0x00000011] 0x00
[0x00000012] 0xa9
[0x00000013] 0x53
[0x00000014] 0x5f
[0x00000015] 0x3d
[0x00000016] 0xa7
[0x00000017] 0x0f

Expected: 186175545255695
Actual: 1597878111




[NCBC-535] Complete Awaitable Socket IO Engine Created: 26/Jun/14  Updated: 28/Jul/14

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

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

Epic Link: Provide Async TAP methods for all operations - view, kv, and n1ql

 Description   
This is required so that TAP methods are async all the way through. This allows the users of the client to await on an operation.




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

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

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


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




[NCBC-569] Client hangs on CLOSE_WAIT when node is removed from Cluster or when trying to bootstrap against node that isn't in a cluster. Created: 29/Jul/14  Updated: 29/Jul/14

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

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





[NCBC-573] Handle case where client is in state where no node is available to handle request. Created: 04/Aug/14  Updated: 04/Aug/14

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

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


 Description   
In certain scenarios, the client may be in a state where a node or server is not available to handle the operation request. This ticket is to determine and define the client behavior in this case.




[NCBC-572] When using TimeSpan objects doesn't expiry from couchbase Created: 31/Jul/14  Updated: 05/Aug/14

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

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


 Description   
In version 1.3.6 here was a bug introduced when using Store method:
http://www.couchbase.com/communities/q-and-a/store-memcached-bucket-expi...

I upgraded to version 1.3.7 and it looks like this issue is still happening.

When I pass TimeStamp to Store method they don't expire at all.

our implementation:
public void Store(StoreMode mode, string key, object value, TimeSpan validFor)
        {
tryExecuteStore(() => _client.ExecuteStore(mode, key, getObjectToStore(value), validFor));
        }

 private static void tryExecuteStore(Func<IOperationResult> executeStoreTask)
        {
            tryExecuteAndConvertExceptions(executeStoreTask, "Store");
        }

private static void tryExecuteAndConvertExceptions(Func<IOperationResult> executeStoreTask, string logName)
        {
            IOperationResult result = null;
            try
            {
                result = executeStoreTask();
            }
            catch (Exception exception)
            {
                logUnsuccessfulOperationAndThrow(logName, exception.Message, exception);
            }
      
            if (!result.Success)
                logUnsuccessfulOperationAndThrow(logName, result.Message, result.Exception, result.StatusCode);
        }


private static void logUnsuccessfulOperationAndThrow(
string operationType, string message, Exception exception, int? statusCode = null)
{
message = String.Format("Error during {0} operation: {1}", operationType, message);
if (statusCode.HasValue)
message = String.Format("{0} ({1} - {2})", message, statusCode.Value,
((CouchbaseStatusCode) statusCode.Value).ToString());

_logger.Error(message, exception);
throw new CouchbaseException(message, exception,
statusCode == null ? default(CouchbaseStatusCode?) : (CouchbaseStatusCode) statusCode);
}





[NCBC-590] Refactor logging so that ODE are not raised when it references a disposed object Created: 18/Aug/14  Updated: 18/Aug/14

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

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


 Description   
2014-08-16 08:53:24,635 [33] INFO Couchbase.IO.ConnectionBase - <log4net.Error>Exception rendering object type [Common.Logging.Factory.AbstractLogger+FormatMessageCallbackFormattedMessage]<stackTrace>System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'.
   at System.Net.Sockets.Socket.get_RemoteEndPoint()
   at Couchbase.IO.Strategies.EapConnection.<>c__DisplayClass3`1.<Send>b__0(FormatMessageHandler m) in c:\jenkins\workspace-net2\couchbase-net-client\Src\Couchbase\IO\Strategies\EapConnection.cs:line 38
   at Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage.ToString()
   at log4net.ObjectRenderer.DefaultRenderer.RenderObject(RendererMap rendererMap, Object obj, TextWriter writer)
   at log4net.ObjectRenderer.RendererMap.FindAndRender(Object obj, TextWriter writer)</stackTrace></log4net.Error>




Provide support for Management API (NCBC-594)

[NCBC-596] Create BucketManager class Created: 20/Aug/14  Updated: 20/Aug/14

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

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


 Description   
Methods required:
-------------------------------
insertDesignDocument
updateDesignDocument
getDesignDocument
removeDesignDocument
listDesignDocuments
flush


https://docs.google.com/document/d/1HgVEJetcIfeIqviKC9zdlv_7IEkWpstatzxeydkLF3A/edit#heading=h.5pz82devlh8d
createBucket
removeBucket


https://docs.google.com/document/d/1HgVEJetcIfeIqviKC9zdlv_7IEkWpstatzxeydkLF3A/edit#heading=h.t4f3x16dy0fh







Provide support for Management API (NCBC-594)

[NCBC-595] Create and Implement ClusterManager class Created: 20/Aug/14  Updated: 20/Aug/14

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

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


 Description   
Methods required:
addNode
removeNode
rebalance
listBuckets
createBucket
removeBucket


https://docs.google.com/document/d/1HgVEJetcIfeIqviKC9zdlv_7IEkWpstatzxeydkLF3A/edit#heading=h.t4f3x16dy0fh







[NCBC-594] Provide support for Management API Created: 20/Aug/14  Updated: 20/Aug/14

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

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

Sub-Tasks:
Key
Summary
Type
Status
Assignee
NCBC-595 Create and Implement ClusterManager c... Technical task Open Jeff Morris  
NCBC-596 Create BucketManager class Technical task Open Jeff Morris  

 Description   
As an admin
I want to administrate my cluster
So that I can automate tasks such as adding and removing buckets.





[NCBC-608] Implement Common Flags Created: 27/Aug/14  Updated: 29/Aug/14

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

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


 Description   
Implement the Common Flags formatting as defined by the specification.

 Comments   
Comment by Jeff Morris [ 27/Aug/14 ]
Brett, can you link to the specification?
Comment by Brett Lawson [ 27/Aug/14 ]
https://docs.google.com/document/d/1V653a6FF6DOqdT4d-fKIjGkHabDaNGZsvbtsUKJyeLc




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

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

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


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

Hi Everyone,

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

GetVBucket is implemented only for VBucketNodeLocator implementation of IMemcachedNodeLocator

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

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

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

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

For some reason the KeyExists method throws this error.

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

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

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

So my question(s) is:

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

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




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

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

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

Issue Links:
Dependency




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

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

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


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

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

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




[NCBC-339] CreateBucket when no buckets exist Created: 04/Dec/13  Updated: 13/Jan/14

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

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


 Description   
Using the .NET client to create a bucket programmatically (CouchbaseCluster.CreateBucket), works fine as long as at least one bucket already exists in the cluster. If the cluster has 0 buckets, the getBucketUri method in CouchbaseCluster.cs returns null. This then results in an ArgumentNullException in HttpHelper.doRequest.

The workaround is to create at least one bucket that you intend to use, during installation, or to create a dummy bucket with minimal footprint, and remove it after scaffolding buckets programmatically. In a dev environment, this keeps developers from tearing down and re-scaffolding their Couchbase buckets programmatically.
- See more at: http://www.couchbase.com/communities/comment/reply/2026?destination=node/2026#comment-form




[NCBC-232] Fix CBSE-426 - .Net Client fails silently if there is a wrong configuration Created: 25/Feb/13  Updated: 13/Jan/14

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

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

Issue Links:
Dependency

 Description   
Fix issue CBSE-426




[NCBC-223] Check for SetTcpKeepAlive at runtime for Mono support Created: 05/Feb/13  Updated: 07/Feb/14

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

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


 Description   
Mono doesn't support this method on the ServicePointManager.




[NCBC-207] Could not find the pool '...' at http://host:8091/pools : password-less buckets make the other buckets unavailable Created: 17/Jan/13  Updated: 13/Jan/14

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

Type: Bug Priority: Minor
Reporter: guillaume.pitel Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Mono 2.10.8.1 (Debian 2.10.8.1-1ubuntu2.2) Ubuntu 12.04 / Couchbase server 2.0


 Description   
Hi, we stumbled on a minor bug.

After importing the beer bucket for testing purpose, we had this kind of errors : (Couchbase .Net 1.2 / mono client)

2013-01-17 11:13:28 [DEBUG] 1 Couchbase.MessageStreamListener - Starting the listener. Queue=True
2013-01-17 11:13:28 [DEBUG] 11 Couchbase.MessageStreamListener - Started working.
2013-01-17 11:13:28 [DEBUG] 11 Couchbase.MessageStreamListener - Looking for the first working node.
2013-01-17 11:13:29 [WARN] 11 Couchbase.ConfigHelper - Could not find the pool 'static' at http://10.1.44.1:8091/pools
2013-01-17 11:13:29 [WARN] 11 Couchbase.MessageStreamListener - Could not resolve url http://10.1.44.1:8091/pools; trying the next in the list
2013-01-17 11:13:29 [WARN] 11 Couchbase.ConfigHelper - Could not find the pool 'static' at http://10.1.44.2:8091/pools
2013-01-17 11:13:29 [WARN] 11 Couchbase.MessageStreamListener - Could not resolve url http://10.1.44.2:8091/pools; trying the next in the list
2013-01-17 11:13:29 [WARN] 11 Couchbase.MessageStreamListener - Could not found a working node.
2013-01-17 11:13:29 [WARN] 11 Couchbase.MessageStreamListener - All nodes are dead, sleeping for a while.
2013-01-17 11:13:29 [INFO] 11 Couchbase.CouchbasePool - Received new configuration.
2013-01-17 11:13:29 [INFO] 11 Couchbase.CouchbasePool - Config is empty, all nodes are down.
2013-01-17 11:13:29 [DEBUG] 11 Couchbase.MessageStreamListener - Processing message:

It appears that if a bucket with authentication is passwordless (like the beer sample bucket at creation), the client cannot find the other pools.


 Comments   
Comment by John Zablocki (Inactive) [ 18/Jan/13 ]
Hi Guillaume,

How did this affect the client's behavior? Did operations fail? Could you describe a bit more what you were seeing?

Thanks.

-- John
Comment by guillaume.pitel [ 19/Jan/13 ]
It's the connection creation that fails, so every subsequent operation fails.
Comment by Jeff Morris [ 03/Oct/13 ]
Need to verify is still an issue.




[NCBC-202] add a keyStats feature Created: 12/Jan/13  Updated: 13/Jan/14

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

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


 Description   
At times it's useful to get information about a key through underlying "stats key <key> <vbucket>", but using just the stats command is complex because the vbucket hashing isn't exposed. One better though is a keyStats() operation that would return a map of the return for "stats key".




[NCBC-188] Provide file based caching of config for stateless .NET apps Created: 21/Dec/12  Updated: 02/Jun/14

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

Type: New Feature Priority: Minor
Reporter: John Zablocki (Inactive) Assignee: Jeff Morris
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
With stateless apps, such as WCF, it's not possible to create a static client variable that is used across the lifetime of the app. An alternate approach would be to write config to a file and update it periodically instead of bootstrapping with each object creation.

 Comments   
Comment by Jeff Morris [ 12/Dec/13 ]
This may be satisfied by File based config provider in 2.0 client: https://docs.google.com/document/d/1bSMt0Sj1uQtm0OYolQaJDJg4sASfoCEwU6_gjm1he8s/edit#




[NCBC-152] Couchbase Client hangs during instantion of the Client if the request to http://xxx.xxx.xxx.xxx:8091/pools/default/bucketsStreaming/default is blocked or never returns Created: 09/Nov/12  Updated: 30/Jan/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2 Beta
Fix Version/s: backlog-1.0

Type: Bug Priority: Minor
Reporter: Aaron Mell Assignee: Saakshi Manocha
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Windows 7
Windows Server 2008 VM
AVG 2012.0.2221
Coucbase C# Client Library 1.2

Attachments: Zip Archive NCBC-152.zip     Zip Archive SimpleCouchClientTest.zip    

 Description   
During instantiation of the client, a MessageStreamListener is created. Inside of the listener is a call is made to the config url

Line 376 of MessageStreamListener

this.request = this.requestFactory.GetWebRequest(configUrl, configUrl.GetHashCode().ToString());
this.response = this.request.GetResponse();

If this call never completes, for example because AVG silently blocks the request and prevents the data from being returned, then the client will wait indefinitely instead of timing out.

 Comments   
Comment by Aaron Mell [ 09/Nov/12 ]
http://www.couchbase.com/forums/thread/net-client-hangs-client-create#comment-1007661
Comment by Matt Ingenthron [ 17/May/13 ]
Not a priority, but let's try to come up with a way to test if this does in fact hang forever. If so, we should fix it.
Comment by Saakshi Manocha [ 24/May/13 ]
Yes it is easily reproducible. I have installed AVG on Windows7 machine and server is also installed on same machine. If AVG is enabled, client will never get instatiated, if I disable the AVG, it works perfectly.

In class Couchbase.BucketConfigListener.cs:

// subscribe to the config url
this.listener = this.GetPooledListener();

// this will be signaled by the config changed event handler
reset.WaitOne();

It keeps on waiting endlessly at this code statement - reset.WaitOne(). It wont even time out, the thread just keeps waiting forever.
While its waiting if we disable the AVG, then it will work absolutely fine.


The code snippet is attached herewith (i added a statement for Get() method, its not really required, but if included, code assumes we have a key '101' stored already).

another thing to notice is if in App.config, I change the server address from "http://localhost:8091/pools" to "http://10.3.121.134:8091/pools", it would work fine. (10.3.121.134 actually has server installed)
Comment by Saakshi Manocha [ 07/Jun/13 ]
@Matt: Please suggest how shall we proceed with this issue.
Comment by Bin Cui [ 27/Jan/14 ]
Try this command to verify if mecached runs correctly:

<installroot>/bin/cbworkloadgen -n localhost:8091 -i 1000
Comment by Vinay Pandey [ 27/Jan/14 ]
I can replicate this problem without AVG. If I keep creating the Client in the loop 10,000 times, then it gets stuck in the constructor, I am attaching my test application, here is the call-stack from WinDBG:

System.Threading.WaitHandle.InternalWaitOne(System.Runtime.InteropServices.SafeHandle, Int64, Boolean, Boolean)
Couchbase.BucketConfigListener.Start()
Couchbase.CouchbasePool.Enyim.Caching.Memcached.IServerPool.Start()
Couchbase.CouchbaseClient..ctor(Couchbase.ICouchbaseServerPool, Couchbase.Configuration.ICouchbaseClientConfiguration)
SimpleCouchClientTest.Program+<>c__DisplayClass2.<Main>b__1(Int32) [\Documents\Visual Studio 2012\Projects\SimpleCouchClientTest\SimpleCouchClientTest\Program.cs @ 37]




[NCBC-135] Client not properly handling cluster_run server Created: 03/Oct/12  Updated: 13/Jan/14

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

Type: Bug Priority: Minor
Reporter: Mark Nunberg Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Using cluster_run from branch-2.0 xml


 Description   
I can't do simple things like get/set stuff..


PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug> .\cbc-net.exe -c set -k foo -V bar -H 10.0.0.99
:8091; .\cbc-net.exe -c get -k foo -H 10.0.0.99:8091
URI: http://10.0.0.99:8091/pools
http://10.0.0.99:8091/pools
Created new client..
Arguments to ExecuteStore:
   0x00000003, 'foo', 'bar', 00:00:00, Zero, Zero
Operation Succeeded. Cas: 610018894666114
Duration was 3.07 Sec.
URI: http://10.0.0.99:8091/pools
http://10.0.0.99:8091/pools
Created new client..
Command OK
Value is bar
Cas is 610018894666114
Duration was 3.09 Sec.
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug> echo "hi" | C:\Users\Administrator\Documents\Gi
tHub\deps\bin\cbc.exe create -h 10.0.0.99 foo2
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug> # Now with the cluster_run cluster
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug> .\cbc-net.exe -c set -k foo -V bar -H 10.0.0.99
:9000; .\cbc-net.exe -c get -k foo -H 10.0.0.99:9000
URI: http://10.0.0.99:9000/pools
http://10.0.0.99:9000/pools
Created new client..
Arguments to ExecuteStore:
   0x00000003, 'foo', 'bar', 00:00:00, Zero, Zero
Initial command failed (Store operation failed, see InnerResult or StatusCode for details). Trying simple version..
.. Inner Message: Failed to execute operation
Command Failed
Code is 0
Message is Store operation failed, see InnerResult or StatusCode for details
Duration was 3.02 Sec.
URI: http://10.0.0.99:9000/pools
http://10.0.0.99:9000/pools
Created new client..
Command Failed
Code is
Message is Unable to locate node
Duration was 3.05 Sec.
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug>


## This works fine with libcouchbase:


PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug>
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug>
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug> echo "hi" | C:\Users\Administrator\Documents\Gi
tHub\deps\bin\cbc.exe create -h 10.0.0.99:9000 foo2
Stored "foo2" CAS:911342e1e62a0200
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug> C:\Users\Administrator\Documents\GitHub\deps\bi
n\cbc.exe cat -h 10.0.0.99:9000 foo2
"foo2" Size:3 Flags:0 CAS:911342e1e62a0200
hi
PS C:\Users\Administrator\Documents\GitHub\cbc-net\src\CbcNet\bin\Debug>


 Comments   
Comment by Mark Nunberg [ 03/Oct/12 ]
Currently this forces me to run tests against a remote cluster with .net. It would be nice to have the ability to run these tests locally via 'cluster_run'
Comment by Mark Nunberg [ 03/Oct/12 ]
fyi, it seems from running tcpdump that it's connecting to the rest server and also connecting to some memcached port.. but the op still fails..




[NCBC-466] Provide a way of creating a bucket, when requested, if it doesn't exist (?) Created: 07/May/14  Updated: 29/Aug/14

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

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


 Description   
This more to jot down a thought: mongo is easy to get up and running because (one reason) if a collection doesn't exist, the SDK creates one for you when it's requested. There are obvious flaws in this model, but it may be worthwhile to provide and overload to OpenBucket which takes a boolean specifying whether or not to create the bucket if it doesn't exist: OpenBucket(bucketName, createIfDoesNotExist);




[NCBC-578] Non Obtrusive JSON Document Deseralization Created: 11/Aug/14  Updated: 19/Aug/14

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

Type: Improvement Priority: Trivial
Reporter: bchavez Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: all


 Description   
Hi there,

There was some discussion about the 1.3x SDK not forcefully injecting the "ID" property with the object's key.

The previous discussion was briefly mentioned here:
https://www.couchbase.com/issues/browse/NCBC-564

For convenience:
------------------------------
I am 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?
------------------------------

Any suggestions on implementation?

As a static configuration variable on DocHelper or via App.config?

Of course, the default behavior would be to keep things as is for a non-breaking change.

Using something like a static property:

    public static class DocHelper
    {
        public static bool DisableIdInsert{get;set;}

        public static string InsertId(string json, string id)
        {
            if (!DisableIdInsert && !json.Contains("\"id\""))
            {
                return json.Insert(1, string.Concat("\"id\":", "\"", id, "\","));
            }
            return json;
        }
    }

Thanks,
Brian

 Comments   
Comment by Jeff Morris [ 19/Aug/14 ]
Hi Brian -

Sorry for not getting back to you sooner. What you have proposed looks reasonable, could you create a PR so we could push it through to review?

Thanks,

-Jeff




[NCBC-520] GetView returns IVIEW with IVIEWROWS which are NULL Created: 18/Jun/14  Updated: 18/Jun/14

Status: Open
Project: Couchbase .NET client library
Component/s: process
Affects Version/s: 1.3.4, 1.3.5
Fix Version/s: None

Type: Bug Priority: Major
Reporter: douwequerty Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Couchbase 2.2 server on unbuntu, dot net website running in ISS.


 Description   
We use couchbase views to retrieve some keys which worked fine in 1.2.9. However we upgraded to 1.3.6 in which we found view errors (See NCBC-507). Hence we reverted back to 1.3.5 and 1.3.4 which contained the following view error:

Code:
var itemtoremove = CouchbaseWrapper.Client.GetView("search", "customerid_productid").Key(new object[] { Obj.Customer_ID.ToString().ToLower(), row["ProductID"].ToString().ToLower() });

Returns an IView of IViewRows over which we enumerate. However some rows have the value null (not the properties of IViewRow but the reference to IViewRow itself is null). Which results in object reference not set exception when trying to handle the IViewRows. Which we ofcourse don't expect when processing the results of a view.
Currently I reverted back to 1.2.9 in which our code executes without any problems.

 Comments   
Comment by Jeff Morris [ 18/Jun/14 ]
Is this deterministic? Would you mind attaching a simple sample app illustrating the issue plus data and your view definitions in a separate file?




[NCBC-507] View {0} was mapped to a dead node, failing Created: 12/Jun/14  Updated: 18/Jun/14

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

Type: Bug Priority: Major
Reporter: douwequerty Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: windows
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Couchbase 2.2 server on unbuntu, dot net website running in ISS.


 Description   
View {0} was mapped to a dead node, failing .

Known issue with previous versions of the couchbase client, see http://www.couchbase.com/issues/browse/NCBC-337 for instance but there are more,
has some how returned.
I reverted back to the 1.3.5 client and the error magically disappeared.

 Comments   
Comment by Jeff Morris [ 18/Jun/14 ]
douwequerty -

Be aware that we have added additional logging and retry logging in the 1.3.X versions of the client. The retry logic is for handling scenarios when the cluster is transitioning between states, for instance during a rebalance or when a node is added or removed. It's a Warn, because in subsequent retries it's likely that an active node will be selected and the operation will succeed.

Is this the error that your getting from your OperationResult.Message property or what you are seeing in your logs? The most important result is the final outcome of the operation and what you would see at your at application level and not in your logs.

That being said, how often is this happening? What is the state of the cluster when this is happening? What about at the app server level - is IIS doing an app-pool refresh at this time?

If you can supply answers to those questions and logs, it would be helpful in diagnosing what is going on here.

-Jeff




[NCBC-13] generating shippable artifacts Created: 12/Jan/12  Updated: 07/Feb/14

Status: In Progress
Project: Couchbase .NET client library
Component/s: process
Affects Version/s: None
Fix Version/s: None

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


 Comments   
Comment by Jeff Morris [ 29/Oct/13 ]
Matt -

Can you provide more detailed expectations regarding what exactly should be delivered for this ticket?

Thanks,

Jeff
Comment by Matt Ingenthron [ 04/Dec/13 ]
(replied via email long ago, just copying the comment here)

This was meant to mean that we have CI generating shippable artifacts. I still think this should be done, but I'll leave it to your judgement.
 
I know it's less important with something like .Net versus say C code, but toolchain matters. Meaning, there can be subtle differences based on versions of the software that builds the artifacts we ship. We don't want to accidentally have your product change because a patch was applied, for instance.
 
We should have a documented, change-controlled toolchain and use it to generate shippable artifacts under CI.
 




[NCBC-440] Cluster object needs to cluster level Authentication Created: 28/Apr/14  Updated: 02/Jun/14

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

Type: New Feature Priority: Critical
Reporter: Jeff Morris Assignee: Jeff Morris
Resolution: Unresolved 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.




[NCBC-401] Client crashes during observe, in an event of a node failure. Created: 21/Feb/14  Updated: 22/Feb/14

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

Type: Bug Priority: Critical
Reporter: Haik Nazlian Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Win


 Description   
For the past week, I'm benchmarking 2.5.0 with .NET Client and the things are not looking good.
First, there is bug causing the client to crash. This happens during Observe operation, in an event of node failure simulation. This is caused by poor coding of the Couchbase.ObserveHandler.CheckNodesForKey() method, that does not implement Try/Catch and retry functionality.
Here is the full info:
http://www.couchbase.com/communities/q-and-a/client-crashes-during-observe-event-node-failure#comment-1556
---------------------
The second problem is that even with the above bug fixed(I fixed and recompiled the client), I'm still losing newly written data in an event of node restart, no matter what the PersistTo ReplicateTo values are set to.
-------------------
The third problem is that the .NET client is SUPER SLOW compared to the C client. I have tested both in the same environment and the C client is about 100 times faster.


 Comments   
Comment by Jeff Morris [ 21/Feb/14 ]
Hi Haik -

I am exactly which bug this ticket is for, but it looks like you have #1 resolved - this is an open source project so please submit a pull request if you have found and fixed a bug :)

For the second issue, this should probably be a separate ticket: https://www.couchbase.com/issues/browse/NCBC-402

The third issue is a little more difficult...it's hard to compare these things, but I don't doubt the libcouchbase is faster than the client. There are several reasons for this, noticeably that the uses .NET client synchronous I/O and the 1.X client has been around for several years and has "morphed" into it's current form. The good news is that we are working on a new version dubbed 2.X. You can read more about it here: http://blog.couchbase.com/introducing-couchbase-net-sdk-20-development-blog-series

Thanks,

Jeff



Comment by Haik Nazlian [ 22/Feb/14 ]
You have a typo in the ticket link, it should go to https://www.couchbase.com/issues/browse/NCBC-402
Thanks for opening it!

About the 2.X Client: After examining all the clients, I wonder if wouldn't it be more sensible to use the libcouchbase so that it will be the core of the .NET client?
In this way all the clients will share the same unified core and will only have to provide an API.




Comment by Jeff Morris [ 22/Feb/14 ]
No problem and thanks for mentioning the typo :)

 As for using libcouchbase as the core, it's something that certainly been discussed. Actually the Java and the .NET clients are the two SDK's that don't use libcouchbase as a core. There are a couple reasons for this: a) history - both were developed before libcouchbase, b) capable platforms - java and .net are platforms that provide rich libraries for IO, threading etc c) since we are community driven, we want to provide SDK's that support community involvement, contributions - providing an SDK written 100% in the communities native platform helps to achieve these goals. d) some of those performance gains you see with C client will be mitigated marshaling between the managed/unmanaged worlds.




[NCBC-497] Datatype support Created: 02/Jun/14  Updated: 02/Jun/14

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

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


 Description   
Datatype support - need to create subtasks for the following:
    Hello command
    Set a bit if compressed with snappy
    Set a bit if the client believes it’s JSON





[NCBC-458] check terse bucket info URI automatically before checking full bucket URI Created: 07/May/14  Updated: 23/Jun/14

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

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


 Description   
Starting in Couchbase Server there is a separate URI "/b/streaming" that is private (to couchbase) interface and much more efficient for the cluster. We should, as a feature, automatically check that URI first before checking the other URI.

 Comments   
Comment by Matt Ingenthron [ 07/May/14 ]
Jeff: I filed this against 1.3.6 but will work with you on the roadmap/planning. This would be very valuable if a simple update for 1.3.x.




[NCBC-426] Memory leak and application pool shutdown after Impersonation error Created: 28/Mar/14  Updated: 28/Mar/14

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

Type: Bug Priority: Critical
Reporter: Alain Quirion Assignee: Jeff Morris
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Windows 2008 Server R2

Attachments: Text File error-log Bug 14h 13min 31sec.txt    

 Description   
I'm using client version 1.3.4 and server version 2.1.1

After several investigation and some help from a community member, here is the conclusions I have.

My application pool running my web app inside the windows process (w3wp) has a memory leak of some kind only when I use couchbase. Without couchbase, the process is really stable (private memory around 400Mb, CPU rarely over 75, most of the times around 10). But when I do use couchbase, private memory doesn't stop growing up to 900Mb and the CPU is almost always over 75 (some from sigar and erl process, and some from w3wp).

I have 3 web server in a farm and I installed couchbase server on all of them so the 3 web servers can make calls to all 3 couchbase server which in my case are the same servers. Maybe this is the problem but I tried using only 1 server for couchbase and 2 web servers with the exact same result so I guess this was not the problem.

After a while, even with a really small load on the server (couple users), the application pool process throws an error.

An unhandled exception occurred and the process was terminated. Exception: System.TypeInitializationException Message: The type initializer for 'Enyim.Caching.MemcachedClient' threw an exception. StackTrace: at Enyim.Caching.MemcachedClient.Finalize() InnerException: System.Web.HttpException Message: An error occurred while attempting to impersonate. Execution of this request cannot continue.

I also receive a system warning in my event viewer saying this :

A process serving application pool 'my application pool name' suffered a fatal communication error with the Windows Process Activation Service. The process id was '6944'. The data field contains the error number.

The application pool process restarts at the same time.

This happens every 20-30 minutes with a small load. But with a big load, this happens every 2-3 minutes and cause my application pool to stop. I can disable the rapid fail protection to be sure my application pool never stops but this doesn't solve my problem.

My web app only does Get, Store, Remove calls. My CouchBaseClient is a static member of a singleton object and is used by the data access layer before and after calls to the database (if needed). When i go check the couchbase console, I see that the couchbase server does not have a lot of data. Around 2000 objects and only 3-4Mb under a big load. I also have around 500-900 Page faults (no minor no major).

I do not use impersonation anywhere. I even tested it to see which user is running my app before calling a couchbaseclient method and the user is "IIS APPPool\My Application Name" which is normal with IIS7.

Does Couchbase/memcached use impersonation somewhere and this user should have specific privileges ? The community member who helped me think that for some reason a problem could occur inside memcached during impersonation (why ? I dont know) and this would cause all TCP connection to close...which could lead to a severe exception because my application pool user doesn't have the rights to do this.

Which privileges should I give to my user or why there's an impersonation problem inside MemcachedClient.Finalize.

The community member also told me that the Finalize method should not be called if .Dipose() is called before. So I added the call to .Dipose() inside the Application_End method but that didn't change anything. Why and when would .Finalize be called in the first place ? With a better anwser to that, I could add .Dispose somewhere else.

Finally, I added Log4Net and was able to log the error.

Also, I did increase the number of ephemeral ports allowed on the server to 60 000. In fact, I answered Yes when ask during installation process and restart the server. I don't know where to check if it was done properly or not.

In the attached log file, the error happens at 14h 13mins 31secs




[NCBC-405] add discussion of timeout accuracy and implementation Created: 27/Feb/14  Updated: 27/Feb/14

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

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


 Description   
Since our timeouts are only as accurate as the underlying APIs/subsystems we use, we should document this for our users so they can plan accordingly. For instance, if processes aren't scheduled for a long period of time owing to CPU or memory contention... or in some cases IO doesn't happen for a long time and our timeout is IO event driven, we may not timeout to the application until later.


 Comments   
Comment by Jeff Morris [ 27/Feb/14 ]
We also may want to discuss specific timeouts...since there are several "timeouts" at the SDK level: socket recv timeout, operation timeout, queue timeout (waiting for a socket to become available), send timeout, etc. Not all are equal.




[NCBC-388] Improve Nunit tests Created: 11/Feb/14  Updated: 02/Jun/14

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

Type: Improvement Priority: Major
Reporter: Saakshi Manocha Assignee: Saakshi Manocha
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency

 Description   
Some Nunit tests require special set up and tear down phases and not all of them run in one go.
So we need to improve them and get better coverage and test reports through Jenkins.

 Comments   
Comment by Jeff Morris [ 03/Mar/14 ]
Hi Saakshi -

Do you have pending check-ins for this ticket? If not close it or if it's revolving, let's move it to 1.3.5 ok?

Thanks,

Jeff
Comment by Saakshi Manocha [ 04/Mar/14 ]
No pending check-ins as of now, moving it to 1.3.5
Comment by Saakshi Manocha [ 20/Mar/14 ]
Change set:
http://review.couchbase.org/#/c/34736/

In test case: When_Deleting_Bucket_Bucket_Is_No_Longer_Listed, the method DeleteBucket() should be called before checking whether the bucket is deleted and is no longer listed. This missing statement was causing the test case to fail.




[NCBC-385] Multi get and touch Created: 05/Feb/14  Updated: 05/Feb/14

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

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


 Description   
One can get several keys in one round trip. Also one can do get-and-touch in a single round trip. But currently is not possible to do several get-and-touch in one round trip. Something like:

IDictionary<string, object> CouchbaseClient.Get(IEnumerable<string> keys, IEnumerable<TimeSpan> newExpirations);

Please add such an operation in a future version

Thanks.

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




Move .NET API documentation from docs repo to auto-doc (NCBC-309)

[NCBC-322] Setup Sandcastle and generate documentation Created: 29/Oct/13  Updated: 13/Jan/14

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

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


 Description   
http://shfb.codeplex.com/




[NCBC-314] Runaway worker process when cluster node shutdown - SessionState provider Created: 18/Oct/13  Updated: 18/Oct/13

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

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


 Description   
http://www.couchbase.com/communities/q-and-a/runaway-worker-process-when-cluster-node-shutdown-sessionstate-provider

>>Hi All,

I am experiencing a problem that has multiple symptoms and all in all seems very strange.

I have a single Windows Server 2012, IIS8 EC2 instance hosting an ASP .Net WebForms site using .Net Fx 4.0. This is configured to use a Couchbase 2.1.1 community edition (build-764-rel) cluster of 2 nodes.

The Client components are: CouchBaseNetClient 1.2.9 and CouchBaseAspNet 1.2.1 both installed from NuGet.

The Problem:

If I shutdown one of the nodes (either one, same problem) to simulate failure; then the following are observed.

The connected browser clients get redirected to a 404 page when they try to postback.

If I re-enter the home page url in the browser and navigate there, the server does not repsond to the get request and the server's w3wp process jumps to 50% and just sits there. If I browse to the site from another client, the w3wp processor usage jumps to 100% - eventually these requests timeout on the browser but the processor use remains the same on the server.

Stopping and starting the app pool seems to have no effect, a full iisreset is required. When I then access the site again after an iisreset, any pages that use session state timeout.

The system cannot be restored to working condition until the dropped Couchbase node is returned to the cluster.

This problem happens when exclusiveAccess is set to true or false.

The web.confg entries are included below:

Web.config:

<sessionState customProvider="Couchbase" mode="Custom" timeout="10">
<providers>
<add name="Couchbase" type="Couchbase.AspNet.SessionState.CouchbaseSessionStateProvider, Couchbase.AspNet"
exclusiveAccess="false" />
</providers>
</sessionState>
</system.web>
<couchbase>
<servers bucket="default" bucketPassword="passwd">
<add uri="http://cache1.domain.com:8091/pools" />
<add uri="http://cache2.domain.com:8091/pools" />
</servers>
</couchbase>
<code>

- See more at: http://www.couchbase.com/communities/q-and-a/runaway-worker-process-when-cluster-node-shutdown-sessionstate-provider#sthash.6cTgPjM3.dpuf

 Comments   
Comment by Jeff Morris [ 18/Oct/13 ]
Saakshi -

Can you try to replicate this?

-Jeff




[NCBC-302] "Failed to initialize the pool" errors in MVC Application Created: 24/Sep/13  Updated: 13/Jan/14

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

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


 Description   
From the forums post: http://www.couchbase.com/communities/q-and-a/getting-intermittent-error-failed-initialize-pool

We're using version 1.2.6 of the .NET client and version 2.0.1 community version of the server.

We will occasionally get a flood of the following errors. We are seeing this error in an MVC application. I've done quite a bit of google'fu and haven't seen anything about this couchbase issue. Also note that this seems to happen randomly, although I'm still investigating.

message: Failed to initialize the pool.
level: Error
stacktrace: at System.Web.AspNetSynchronizationContext.OperationStarted() at System.Net.WebClient.DownloadStringAsync(Uri address, Object userToken) at Couchbase.DefaultHttpClient..ctor(Uri baseUri, String username, String password, TimeSpan timeout, Boolean shouldInitConnection) at Couchbase.DefaultHttpClientFactory.Create(Uri baseUri, String username, String password, TimeSpan timeout, Boolean shouldInitializeConnection) at Couchbase.Configuration.CouchbaseClientSection.Couchbase.Configuration.ICouchbaseClientConfiguration.CreateHttpClient(Uri baseUri) at Couchbase.CouchbaseNode..ctor(IPEndPoint endpoint, Uri couchApiBase, ICouchbaseClientConfiguration config, ISaslAuthenticationProvider authenticationProvider) at Couchbase.CouchbasePool.CreateNode(IPEndPoint endpoint, ISaslAuthenticationProvider auth, Dictionary`2 nodeInfo) at Couchbase.CouchbasePool.InitVBucket(ClusterConfig config, ISaslAuthenticationProvider auth) at Couchbase.CouchbasePool.ReconfigurePool(ClusterConfig config)

message: An asynchronous operation cannot be started at this time. Asynchronous operations may only be started within an asynchronous handler or module or during certain events in the Page lifecycle. If this exception occurred while executing a Page, ensure that the Page is marked <%@ Page Async="true" %>.
- See more at: http://www.couchbase.com/communities/q-and-a/getting-intermittent-error-failed-initialize-pool#sthash.5M7ARZk9.dpuf




[NCBC-286] Accessing key data when using strongly-typed views Created: 07/Aug/13  Updated: 02/Jun/14

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

Type: Improvement Priority: Major
Reporter: David Haikney Assignee: Jeff Morris
Resolution: Unresolved Votes: 1
Labels: customer, views
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Directly lifted from forum post here and copied and pasted below:
http://www.couchbase.com/forums/thread/net-client-accessing-key-data-when-using-strongly-typed-views


====Forum Post 1 (Simon, Requester) ====
I have a Couchbase 2.0 View that returns a projection of the underlying objects - e.g.
{
    Count: 100,
    SumPrices: 1231231.02
}
if I use a strongly typed view - e.g.
_client.GetView<MyDto>("my__dd", "my_view")
the projection is automatically deserialised to my DTO class, which is nice and easy. However, I'd also like to retrieve info from the key, which doesn't seem to be possible with this approach.
I can use the more general IView syntax, but now I have to deserialize the DTO myself which is not simple since the data is exposed as a dictionary, not a JSON string.
Perhaps I'm missing something, but it would be useful to be able to use both strong-typing and still have access to the key meta data.
The alternative would be to include the values from the key in the projection data, but this seems wrong in that the data will be repeated twice in the index?

====Forum Post 2 (John)====
As I understand your view returns.
 { Count: 100, SumPrices: 1231231.02 }
If this is correct you use reduce function that counts and summs multiple keys. And it returns 1 key-value pair where key is null and value is an object mentioned before.
So I don't understand which one key's metadata your want to see and where? If you want to see all keys metadata you can store it in reduce function into array or something:
{ Count: 100, SumPrices: 1231231.02, Keys: [key1, key2 ...] }.

====Forum Post 3 (John)====
If your DTO includes an "Id" property, it will be populated a bit magically by the generic view method. It's a little trickier than that, and I describe a solution here - http://www.couchbase.com/docs/couchbase-sdk-net-1.2/brewerycrud.html. I'm going to work on improving the JSON extensions to make this easier to use - https://www.couchbase.com/docs/couchbase-sdk-net-1.2/jsonextensions.html.

====Forum Post 4 (Simon, Requester)====
Hi yes, you are correct that this is a map-reduce scenario.
However I am using the group feature so each row returned should have a distinct key associated with it as per the IViewRow.ViewKey property (of type object[]) in the .NET Client API. I can make this work with the loosely typed version but the mapping code for the returned projection is a bit icky - e.g.
((IDictionary)(vr.Info["value"]))["Count"]
to get the Count value!

====Forum Post 5 (Simon, Requester)====
HI John - Thanks for the pointers. To clarify, this is a map-reduce view scenario. My client code is like this:
            return _client.GetView<WebsiteBrowseQuoteSummary>("browse", "ret_by_route_dow")
                .StartKey(new object[] { from, to, (int)departureDate.DayOfWeek, (int)returnDate.DayOfWeek })
                .EndKey(new object[] { from, to, (int)departureDate.DayOfWeek, (int)returnDate.DayOfWeek + 1 })
                .Group(true)
                .Reduce(true)
                .ToList();
I think the issue is that in the strongly typed approach (e.g. GetView<T>) the return type is IView<T> which is an IEnumerable<T> where T is the DTO. If there was an IViewRow<T> with a Value property of type T and a ViewKey property, I think that would do it as I could add the additional work to populate the missing params from the ViewKey.

====Forum Post 6 (John)====
Ah, didn't catch the reduce part... In the beer sample, I used the non-generic view for such queries:
https://github.com/couchbaselabs/beer-sample-net/blob/master/src/Couchba...
The limitation with the generic query is that it either a) expects to get the document JSON by its ID, where reduce won't obviously have the id, or b) it expects the value to be a JSON projection to deserialize into an instance of T.
I'd like to support generic reduce queries, so I'll give it some thought...
====End of Forum Posts====





[NCBC-287] workaround bad REST responses from bucket statistics Created: 07/Aug/13  Updated: 18/Sep/13

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

Type: Improvement Priority: Major
Reporter: Saakshi Manocha Assignee: Saran Kumar
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency

 Description   
Cluster version 1.8.1 may send back bytes in a decimal format (i.e. 1000.0 instead of 1000). We can work around this at the client by turning it into an integer.

 Comments   
Comment by Saakshi Manocha [ 23/Aug/13 ]
@Saran:
Please see the change done for this issue at : https://github.com/saakshimanocha/couchbase-net-client/commit/24930aab58f574009cb842bfd267b21d992fc4a2

I have committed the changes in my forked repository https://github.com/saakshimanocha/couchbase-net-client/
Please use the Couchbase-net-client code from here and use it in the customer application. If it works fine for you, I will commit the changes in main repository.

Change done:
Changed data types from long to double for Swap_total, MemoryFree and MemoryTotal. This will solve the problem for 1.8.1 and later builds.
Converting to Int will not help as it cannot parse the trailing decimal because value is too large for int.
Comment by Saakshi Manocha [ 18/Sep/13 ]
@Saran: Any update on this?




[NCBC-267] should retry count be allowed to be 0, or should it be forced higher Created: 29/May/13  Updated: 29/May/13

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

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





[NCBC-103] Provide Consistent Order of Parameters Created: 24/Aug/12  Updated: 02/Jun/14

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

Type: Improvement Priority: Major
Reporter: Anonymous Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Provide consistent, predictable order for method parameters as other SDKS.




[NCBC-491] Getting "Failed to initialize pool." on Windows Server R2 Created: 28/May/14  Updated: 04/Jul/14

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

Type: Bug Priority: Major
Reporter: samal Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: MS Windows Server R2

Issue Links:
Dependency

 Description   
Submitted bug as per request in Community discussion here: http://www.couchbase.com/communities/q-and-a/failed-initialize-pool

Recap:
Failing to establish connection between Nancy/ASP.NET webservice, using .net client 1.3.5 from nuget and Couchbase 2.2.0-837-rel. Tried with published build of service on the same machine as the Couchbase server, without firewall, anti-virus/malware, and debugger. Server Node Name on the server is 0.0.0.0.

No issue when trying against fresh Couchbase install on development machine running Windows 7.

Log from server:
2014-05-27 11:06:44.6021|WARN|Enyim.Caching.MemcachedClient|Creating new client. CID: f41d0d09-399e-4399-ba24-d4ed4902865e CouchbaseClient
2014-05-27 11:06:45.2091|WARN|Couchbase.CouchbasePool|Starting Couchbase.CouchbasePool
2014-05-27 11:06:45.3351|WARN|Couchbase.MessageStreamListener|Started working.
2014-05-27 11:06:45.3491|WARN|Couchbase.MessageStreamListener|Looking for the first working node.
2014-05-27 11:06:45.3731|WARN|Couchbase.MessageStreamListener|Starting the listener. Queue=True
2014-05-27 11:06:45.4031|WARN|Couchbase.MessageStreamListener|Resolved pool url http://127.0.0.1:8091/pools/ to http://127.0.0.1:8091/pools/default/bucketsStreaming/name_of_our_bucket?bucket_uuid=88ecde59b0e41d255e7a845583d3c2c8
2014-05-27 11:06:45.4031|WARN|Couchbase.MessageStreamListener|Start receiving messages.
2014-05-27 11:06:45.4581|ERROR|Couchbase.CouchbasePool|Failed to initialize the pool.
2014-05-27 11:06:45.4581|WARN|Couchbase.MessageStreamListener|Processing message: {"name":"name_of_our_bucket","bucketType":"membase","authType":"sasl","saslPassword":"xxxxxxxxxxx","proxyPort":0,"replicaIndex":false,"uri":"/pools/default/buckets/name_of_our_bucket?bucket_uuid=88ecde59b0e41d255e7a845583d3c2c8","streamingUri":"/pools/default/bucketsStreaming/name_of_our_bucket?bucket_uuid=88ecde59b0e41d255e7a845583d3c2c8","localRandomKeyUri":"/pools/default/buckets/name_of_our_bucket/localRandomKey","controllers":{"compactAll":"/pools/default/buckets/name_of_our_bucket/controller/compactBucket","compactDB":"/pools/default/buckets/default/controller/compactDatabases","purgeDeletes":"/pools/default/buckets/name_of_our_bucket/controller/unsafePurgeBucket","startRecovery":"/pools/default/buckets/name_of_our_bucket/controller/startRecovery"},"nodes":[{"couchApiBase":"http://0.0.0.0:8092/name_of_our_bucket","replication":0.0,"clusterMembership":"active","status":"healthy","otpNode":"ns_1@0.0.0.0","thisNode":true,"hostname":"0.0.0.0:8091","clusterCompatibility":131072,"version":"2.2.0-837-rel-community","os":"windows","ports":{"proxy":11211,"direct":11210}}],"stats":{"uri":"/pools/default/buckets/name_of_our_bucket/stats","directoryURI":"/pools/default/buckets/name_of_our_bucket/statsDirectory","nodeStatsListURI":"/pools/default/buckets/name_of_our_bucket/nodes"},"ddocs":{"uri":"/pools/default/buckets/name_of_our_bucket/ddocs"},"nodeLocator":"vbucket","fastWarmupSettings":false,"autoCompactionSettings":false,"uuid":"88ecde59b0e41d255e7a845583d3c2c8","vBucketServerMap":{"hashAlgorithm":"CRC","numReplicas":1,"serverList":["0.0.0.0:11210"],"vBucketMap":[[0,-1],

 Comments   
Comment by Jeff Morris [ 03/Jul/14 ]
Hi Samal -

Are you still running into the issue or have you resolved it?

- Jeff
Comment by samal [ 04/Jul/14 ]
Hi Jeff,

Yeah changing the server listen ip from 0.0.0.0 to 127.0.0.1 did the trick.




[NCBC-611] CouchbaseAspNet 1.2.1 Nuget package was released built in debug mode Created: 28/Aug/14  Updated: 29/Aug/14

Status: Open
Project: Couchbase .NET client library
Component/s: None