[CCBC-216] Change 'lcb_wait' semantics Created: 22/May/13  Updated: 22/May/13

Status: Open
Project: Couchbase C client library libcouchbase
Component/s: library
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Task Priority: Major
Reporter: Mark Nunberg Assignee: Sergey Avseyev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency
blocks CCBC-212 IO Enhancements Open

 Description   
Currently we have 'wait' and 'breakout' which is optimized and termed for a synchronous model.

We should rename these functions (though we can still maintain aliases) to something like:

lcb_operations_flush:

Which indicates that the user has finished sending requests, and that packets should be sent

And:
lcb_operations_done_callback

Which will be called when the operations have been completed.

Effectively this is the same as lcb_wait and the stop_event_loop callback, but the usage and purpose of those two existing functions aren't clear.




[CCBC-215] Test whether server gets reconnected when user idle for longer than timeout interval Created: 22/May/13  Updated: 22/May/13

Status: Open
Project: Couchbase C client library libcouchbase
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Task Priority: Major
Reporter: Mark Nunberg Assignee: Sergey Avseyev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
see inline discussion here: http://review.couchbase.org/#/c/26462/2/src/timeout.c

Basically, the semantics of the timeouts aren't clear - the timeout will unconditionally purge the server and disconnect if the timeout hits, even if there is nothing waiting.

In practice this might not be a bug, but it means needless connection code to the server (and SASL auth) is being executed each time.




[CCBC-214] Re-design internal operations in a queue/linked list structure Created: 21/May/13  Updated: 21/May/13

Status: Open
Project: Couchbase C client library libcouchbase
Component/s: library
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Major
Reporter: Mark Nunberg Assignee: Sergey Avseyev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency
blocks CCBC-212 IO Enhancements Open




[CCBC-213] Unify internal connect() routines Created: 21/May/13  Updated: 21/May/13

Status: In Progress
Project: Couchbase C client library libcouchbase
Component/s: library
Affects Version/s: None
Fix Version/s: None
Security Level: Public

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

Issue Links:
Dependency
blocks CCBC-212 IO Enhancements Open

 Description   
This will unify the connection routines in terms of error handling and callback invocations.




[CCBC-212] IO Enhancements Created: 21/May/13  Updated: 22/May/13

Status: Open
Project: Couchbase C client library libcouchbase
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Epic Priority: Major
Reporter: Mark Nunberg Assignee: Sergey Avseyev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency
depends on CCBC-216 Change 'lcb_wait' semantics Open
depends on CCBC-214 Re-design internal operations in a qu... Open
depends on CCBC-213 Unify internal connect() routines In Progress
Epic Name: IO Enhancements

 Description   
This super bug is an umbrella task for refactoring our IO system to be more streamlined, readable, and compatible with other I/O models.




[CCBC-211] libcouchbase may touch a failed node after failover Created: 21/May/13  Updated: 21/May/13

Status: Open
Project: Couchbase C client library libcouchbase
Component/s: library
Affects Version/s: 2.0.6
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Ivan Chernetsky Assignee: Sergey Avseyev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Observed on CentOS (details in the description)


 Description   
Library version: v2.0.6 (compiled from the source code, on x64)
Server version: v2.0.1
Number of nodes in my test setup: 3 (2 x CentOS 6.2 x64, and 1 x CentOS 5.8 x86, if it's of any relevance)

Steps to reproduce:

1. Create a new cluster
2. Print the returned value by lcb_get_server_list function (there shoud be 3 servers printed)
3. Bring down network on one of servers
4. Try to put several values, until one of them is routed to the failed node. The library should return an error, which is expected.
5. Repeat 2
6. Manually fail over the failed node.
7. Print the returned value by lcb_get_server_list function (there should be 2 servers printed)
8. Try to put several values, until one of them is routed to the failed node. This behaviour is not expected.
9. Start rebalance.
10. While rebalancing takes place, a request might be routed to the failed node. It is not expected as well.
11. Once rebalance is completed, no requests are routed to the failed node. It is as expected.

Thanks in advance for your support.




Generated at Thu May 23 14:05:46 CDT 2013 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.