[PYCBC-119] Add bucket attribute to see currently connected-to bucket Created: 17/May/13  Updated: 17/May/13

Status: Open
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.11
Security Level: Public

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





[PYCBC-118] Provide nicer __str__/__repr__ for connection object Created: 17/May/13  Updated: 17/May/13

Status: Open
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.10.0
Fix Version/s: 0.11
Security Level: Public

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





[PYCBC-117] Conncache test failing on Windows Created: 17/May/13  Updated: 17/May/13

Status: In Progress
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.10.0
Fix Version/s: 0.11
Security Level: Public

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


 Comments   
Comment by Mark Nunberg [ 17/May/13 ]
sb.st_size is 0, this is because Python deletes the NamedTemporaryFile by default




[PYCBC-116] Review error messages to ensure they're concise, informative, actionable Created: 16/May/13  Updated: 16/May/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.11
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
There are some like "Couldn't connect", which should be more from a user perspective.




[PYCBC-115] Add touch command Created: 15/May/13  Updated: 16/May/13  Resolved: 16/May/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.10.0
Fix Version/s: 0.11
Security Level: Public

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





[PYCBC-114] Internal base management implementation Created: 15/May/13  Updated: 16/May/13  Resolved: 16/May/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.11
Fix Version/s: 0.11
Security Level: Public

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


 Description   
This is a 'basic' HTTP implementation. This will be the basis for views as well. As it stands now, this is an unstable API (i.e. the interface may (and probably *will*)) change. This task is just to get the code bits in order so that we're able to do less work when adjusting APIs




[PYCBC-113] TOC for Python 1.0 Created: 15/May/13  Updated: 15/May/13

Status: Open
Project: Couchbase Python Client Library
Component/s: docs
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Bug 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   
For the upcoming 1.0 Python client, we'll need to come up with a TOC. Likely something like MB-7714.

 Comments   
Comment by Karen Zeller [ 15/May/13 ]
Not sure who is the subject matter expert on Python but we need input on the topics. Here is the TOC for Java-next-gen:


1. Getting Started
1.1 Preparations
1.2 Hello Couchbase
1.3 Next Steps

2. Tutorial
2.1 Preparations
2.2 Quickstart
2.3 Connection Management
2.4 The Welcome Page
2.5 Managing Beers
2.6 Wrapping Up

3. Using the APIs
3.1 Connection Management
3.2 Retreiving Data
3.3 Mutating Data
3.4 Working with Views
3.5 Applying Persistence Constraints
3.6 Error Handling
3.7 JSON & Object Serialization
3.8 Design Document Management

4. Advanced Usage
4.1 Bulk Loading
4.2 Working with Documents
4.3 Advanced Topics
4.4 Logging & Debugging

5. API Reference
5.1 Method Summary
5.2 Connecting & Disconnecting
5.3 Retreiving Data
5.4 Mutating Data
5.5 Management Operations
5.6 Other Useful Operations

A. Release Notes
B. Contributing
B.1 General Information
B.2 Source Code Styleguide
Comment by Matt Ingenthron [ 15/May/13 ]
Mark ist he SME.

Mark: Using this as a base (unless you have feedback to the contrary), can you edit up a TOC for the Python 1.0 release in this ticket?
Comment by Mark Nunberg [ 15/May/13 ]
I'd probably want to nix (for now):

2.3 Connection Management (it's a simple object, there's no global pooling yet)
3.4 Views (we don't have a stable view API yet)
3.8 ""
3.5 ""
4.4 We don't have any significant logging infrastructure in the SDK

We might want to split 'Preparations' into 'Installing the SDK' and 'Installing the cluster'

Thus:
--------------------------------------------------------------------------------------------------------------------------
1. Getting Started
1.1 Setting up the cluster
1.2 Installing the SDK
1.3 Hello Couchbase
1.4 Next Steps

2. Tutorial
2.1 Preparations
2.2 Quickstart
2.3 Connection Management
2.4 The Welcome Page
2.5 Managing Beers
2.6 Wrapping Up

3. Using the APIs
3.1 Connecting
3.2 Retreiving Data
3.3 Mutating Data
3.4 Working with Views [ NYI (Not Yet implemented) ]
3.5 Applying Persistence Constraints [ NYI ]
3.6 Error Handling
3.7 JSON & Object Serialization
3.8 Design Document Management [ NYI ]

4. Advanced Usage
4.1 Bulk Loading
4.2 Notes for using with (and without) threads (maybe this belogns in advanced)?
4.3 Working with Documents
4.4 Advanced Topics
4.5 Logging & Debugging

5. API Reference
5.1 Method Summary
5.2 Initialization
5.3 Retreiving Data
5.4 Mutating Data
5.5 Management Operations
5.6 Other Useful Operations

A. Release Notes
B. Contributing
B.1 General Information
B.2 Source Code Styleguide
Comment by Mark Nunberg [ 15/May/13 ]
Assigning back to you for review




[PYCBC-112] Add test to ensure objects can be pretty-printed Created: 14/May/13  Updated: 16/May/13  Resolved: 16/May/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.10.0
Fix Version/s: 0.11
Security Level: Public

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


 Description   
Write tests to ensure Result objects can be repr'd and stringified without errors.




[PYCBC-111] Memory leak on bad arguments Created: 14/May/13  Updated: 16/May/13  Resolved: 16/May/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.10.0
Fix Version/s: 0.11
Security Level: Public

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


 Description   
There may be a memory leak in the MultiResult object if an error is thrown after the MultiResult object is allocated.

 Comments   
Comment by Mark Nunberg [ 14/May/13 ]
http://review.couchbase.org/26289




[PYCBC-110] Document C Internals Created: 13/May/13  Updated: 16/May/13  Resolved: 16/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: docs, library
Affects Version/s: None
Fix Version/s: 0.11
Security Level: Public

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


 Comments   
Comment by Mark Nunberg [ 13/May/13 ]
http://review.couchbase.org/26288




[PYCBC-109] Test for negative TTL Created: 13/May/13  Updated: 17/May/13

Status: In Progress
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.9.0
Fix Version/s: 0.11
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


 Comments   
Comment by Mark Nunberg [ 17/May/13 ]
http://review.couchbase.org/#/c/26375/




[PYCBC-108] Pass ascii=False to json.dumps Created: 12/May/13  Updated: 16/May/13  Resolved: 16/May/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.11
Security Level: Public

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


 Description   
This will decrease the data size for UTF-8 strings. However this will store JSON as non-ascii. Is this supported? (it should be, as JSON says it's utf-8 by definition).




[PYCBC-107] Support py3's 'dict_keys' for multi methods Created: 12/May/13  Updated: 15/May/13  Resolved: 15/May/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.11
Security Level: Public

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


 Description   
'dict_keys' should be supported, rather than forcing users to do list(d.keys()).

 Comments   
Comment by Mark Nunberg [ 13/May/13 ]
http://review.couchbase.org/#/c/26276/
Comment by Mark Nunberg [ 15/May/13 ]
https://github.com/couchbase/couchbase-python-client/commit/8ecbc8ec9f84d20f05046063e027083384906f42




[PYCBC-106] Expose server list Created: 10/May/13  Updated: 15/May/13  Resolved: 15/May/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.11
Security Level: Public

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


 Description   
This might be needed for more advanced handling of views, or integration of views into a more efficient, "native" HTTP client.

 Comments   
Comment by Mark Nunberg [ 13/May/13 ]
http://review.couchbase.org/26281
Comment by Mark Nunberg [ 15/May/13 ]
https://github.com/couchbase/couchbase-python-client/commit/369a03f6f78d7a0ba5e0e847fa5284c5df0ccc25




[PYCBC-105] Provide simple 'raw' view API Created: 10/May/13  Updated: 17/May/13  Resolved: 17/May/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.11
Security Level: Public

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


 Description   
This API will just provide a means by which a user can get a view results. Paths will be passed verbatim to LCB, and the view payload may be handled as a subclass of the Result object

 Comments   
Comment by Rami Chowdhury [ 11/May/13 ]
A simple implementation of this with the existing pylibcouchbase Cython code is in progress, based on: https://github.com/couchbase/couchbase-python-client/pull/21 -- we're starting to use this branch of the client at Esplorio and would be happy to work on it.
Comment by Mark Nunberg [ 12/May/13 ]
We're in the process of moving away from the Cython version and using something in the Python C API (for several reasons).
Comment by Rami Chowdhury [ 12/May/13 ]
Is there a publicly-visible branch where that work is going on? At the very least I'd like to see how work is going and how ready it is, and will probably want to contribute some work if possible.
Comment by Mark Nunberg [ 12/May/13 ]
https://github.com/mnunberg/couchbase-python-client/tree/pylibcouchbase

It'll be merged into our actual repository shortly. If you wish to partake in the review process, you may comment here:

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

Comment by Rami Chowdhury [ 12/May/13 ]
Great, thanks for the links. How soon is it expected to be merged, out of curiosity? It'll take me a little bit to get up to speed with the C code, anyway.
Comment by Mark Nunberg [ 12/May/13 ]
sometime next week it will be pushed, though makor changes from that link are not expected
Comment by Mark Nunberg [ 17/May/13 ]
https://github.com/couchbase/couchbase-python-client/commit/676a6806cec6b3df0c0653d05c15dba5d6a332bb




[PYCBC-104] Provide unlock command Created: 10/May/13  Updated: 13/May/13  Resolved: 13/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.11
Security Level: Public

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


 Description   
This is already in the library. It just needs tests and documentations.

 Comments   
Comment by Mark Nunberg [ 13/May/13 ]
PYCBC-61




[PYCBC-103] Rewrite in Python C API Created: 09/May/13  Updated: 15/May/13  Resolved: 15/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.9.0
Fix Version/s: 0.10.0
Security Level: Public

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


 Comments   
Comment by Mark Nunberg [ 09/May/13 ]
The decision to rewrite this in C is better ability to debug as well as more scalability and control for future development, particularly with things like custom event loops.




[PYCBC-102] New Python 1.0 Guide Created: 08/May/13  Updated: 08/May/13

Status: Open
Project: Couchbase Python Client Library
Component/s: docs
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Task Priority: Major
Reporter: Karen Zeller Assignee: Matt Ingenthron
Resolution: Unresolved Votes: 0
Labels: info-request
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
MarkN the component lead.

Matt: will have schedule next week.




[PYCBC-101] warnings at compilation time Created: 02/May/13  Updated: 10/May/13  Resolved: 10/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.9.0
Fix Version/s: 0.10.0
Security Level: Public

Type: Bug Priority: Minor
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: unknown linux


 Description   
$ pip install couchbase==0.9
Downloading/unpacking couchbase
  Downloading couchbase-0.9.tar.gz (105Kb): 105Kb downloaded
  Running setup.py egg_info for package couchbase
    importerror
    
Installing collected packages: couchbase
  Running setup.py install for couchbase
    importerror
    building 'couchbase/libcouchbase' extension
    gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fPIC -I/usr/include/python3.2mu -c couchbase/libcouchbase.c -o build/temp.linux-x86_64-3.2/couchbase/libcouchbase.o
    couchbase/libcouchbase.c:880:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
    couchbase/libcouchbase.c:5376:18: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
    gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-3.2/couchbase/libcouchbase.o -lcouchbase -o build/lib.linux-x86_64-3.2/couchbase/libcouchbase.cpython-32mu.so

 Comments   
Comment by Mark Nunberg [ 10/May/13 ]
Fixed in the new rewrite




[PYCBC-100] add apache 2.0 copyright headers to repo, appropriate files Created: 01/May/13  Updated: 16/May/13  Resolved: 16/May/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.11
Security Level: Public

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


 Description   
See summary.




[PYCBC-99] Post Python Sphinx Docs output Created: 01/May/13  Updated: 01/May/13  Resolved: 01/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.9.0
Fix Version/s: None
Security Level: Public

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

Attachments: Zip Archive python-docs-0.9.zip    

 Description   
Week of May 7

 Comments   
Comment by Matt Ingenthron [ 01/May/13 ]
Karen: Please post these docs and let me know the URL when done.
Comment by Karen Zeller [ 01/May/13 ]
Available here: http://www.couchbase.com/autodocs/
Comment by Karen Zeller [ 01/May/13 ]
Available here: http://www.couchbase.com/autodocs/




[PYCBC-98] Multi methods should not raise exceptions Created: 30/Apr/13  Updated: 17/May/13  Resolved: 10/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.9.0
Fix Version/s: 0.10.0
Security Level: Public

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


 Description   
Multi methods should not raise exceptions. Instead they should return a custom dict with a field indicating whether all operations succeeded or not.

 Comments   
Comment by Mark Nunberg [ 10/May/13 ]
Exceptions contain the affected results.
Comment by Mark Nunberg [ 17/May/13 ]
Multi methods will raise exceptions, but the exception object itself will contain information about other possibly successful operations.




[PYCBC-97] Allow for host list to be passed instead of single string Created: 30/Apr/13  Updated: 02/May/13  Resolved: 02/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.9.0
Fix Version/s: 0.10.0
Security Level: Public

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


 Comments   
Comment by Mark Nunberg [ 30/Apr/13 ]
http://review.couchbase.org/25996




[PYCBC-96] Allow better handling of lcb errors in error callbacks Created: 30/Apr/13  Updated: 02/May/13  Resolved: 02/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.9.0
Fix Version/s: 0.10.0
Security Level: Public

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


 Description   
Currently lcb errors are missed. We should add something which exposes them properly

 Comments   
Comment by Mark Nunberg [ 30/Apr/13 ]
http://review.couchbase.org/25995




[PYCBC-95] Don't require username and password parameters Created: 30/Apr/13  Updated: 02/May/13  Resolved: 02/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.9.0
Fix Version/s: 0.10.0
Security Level: Public

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


 Comments   
Comment by Mark Nunberg [ 30/Apr/13 ]
http://review.couchbase.org/25993




[PYCBC-94] allow for an option to configure the instance using the libcouchbase configuration cache Created: 30/Apr/13  Updated: 02/May/13  Resolved: 02/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.9.0
Fix Version/s: 0.10.0
Security Level: Public

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


 Description   
There may be some deployments where many instances will be created. For those, it would be desirable to be able to configure the use of the libcouchbase configuration cache to avoid needing to maintain many HTTP configuration streams.

 Comments   
Comment by Mark Nunberg [ 30/Apr/13 ]
http://review.couchbase.org/25991
Comment by Perry Krug [ 01/May/13 ]
Thanks Mark. Can we also make sure this gets documented in the python git page as well as our /develop documentation page?




[PYCBC-93] Don't encode bytearray keys Created: 29/Apr/13  Updated: 10/May/13  Resolved: 10/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

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


 Description   
If a key is a bytearray, the Python client shouldn't try to encode it as UTF-8, but just pass the byte on.




[PYCBC-92] Provide 'codec' options for keys and values Created: 26/Apr/13  Updated: 11/May/13

Status: In Progress
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.9.0
Fix Version/s: 0.11
Security Level: Public

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


 Description   
This will be a preliminary interface, and would allow users to circumvent (either for interoperability or for bugs in the client) "hard coded" encoding rules (pun intended)

The constructor for the Connection class should accept a 'codec' which is an object providing the
following functions:

To encode:
encode_key(self, key) => key_as_bytearray

To decode:
decode_key(self, bytearray) => whatever

To encode a value; should return the bytearray and flags to use
encode_value(self, value) => (bytearray, flags)

To decode a value, function should look at flags and return a bytearray
possibly examining flags.

decode_value(self, value, flags) => bytearray

 Comments   
Comment by Mark Nunberg [ 30/Apr/13 ]
http://review.couchbase.org/#/c/25948/




[PYCBC-91] ensure client can be used with UTF-16 formatted strings for keys Created: 26/Apr/13  Updated: 10/May/13  Resolved: 10/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

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


 Description   
We have a requirement that the client be able to work with UTF-16 encoded strings.

In the ideal case, I think, this would just be if the environment were UTF-16 we simply encode the bytes when sending the key as UTF-16, and no special setup is required. If that's not possible, then we need to ensure that passing a UTF-16 encoded string as a key flows through to the server and back unharmed.

Tests needed.

 Comments   
Comment by Mark Nunberg [ 10/May/13 ]
Standard python unicode objects are supported




[PYCBC-90] Allow FMT_PLAIN for 'normal' python strings. Created: 26/Apr/13  Updated: 17/May/13  Resolved: 17/May/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.9.0
Fix Version/s: 0.10.0
Security Level: Public

Type: Task Priority: Critical
Reporter: Mark Nunberg Assignee: Mark Nunberg
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Currently simple strings, i.e. "str" will not properly be set in "plain" mode. The library should apply some heuristics to determine if the string is a simple "byte" string, or whether it needs some special encoding.

 Comments   
Comment by Mark Nunberg [ 30/Apr/13 ]
http://review.couchbase.org/#/c/25948/
Comment by Mark Nunberg [ 11/May/13 ]
We're using FMT_BYTES and FMT_UTF8 to disambiguate between the two now
Comment by Mark Nunberg [ 17/May/13 ]
PYCBC-103 introduces a FMT_UTF8 flag. Heuristics should not be performed by default because of the ambiguity of Python's types. We don't want to accidentally stringify an object that's got a __str__ method implemented (and every object does).




[PYCBC-89] Implement add/replace Created: 26/Apr/13  Updated: 30/Apr/13  Resolved: 30/Apr/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.9.0
Fix Version/s: 0.9.0
Security Level: Public

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





[PYCBC-88] Add support for increment/decrement Created: 26/Apr/13  Updated: 30/Apr/13  Resolved: 30/Apr/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.9.0
Security Level: Public

Type: New Feature Priority: Major
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Add support for increment and decrement.




[PYCBC-87] Implement append/prepend Created: 26/Apr/13  Updated: 11/May/13  Resolved: 30/Apr/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.9.0
Security Level: Public

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


 Description   
Append is needed in version 0.9.




[PYCBC-86] Implement delete command Created: 25/Apr/13  Updated: 28/Apr/13  Resolved: 28/Apr/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

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


 Description   
Implement the delete command on top of the new pylibcouchbase.

 Comments   
Comment by Volker Mische [ 28/Apr/13 ]
Merged http://review.couchbase.org/25906




[PYCBC-85] Client Download Link doesn't work without referrer Created: 27/Mar/13  Updated: 04/May/13  Resolved: 04/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.8.0
Fix Version/s: 0.9.0
Security Level: Public

Type: Task Priority: Major
Reporter: Muthu Kumar Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: download, issue, link, referer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
There is a HTTP Referer issue with the download link

wget "http://packages.couchbase.com/clients/python/couchbase-0.8.2.tar.gz" doesn't work

wget --referer=http://www.couchbase.com/develop/python/next "http://packages.couchbase.com/clients/python/couchbase-0.8.2.tar.gz" - this works

Please fix.




[PYCBC-84] Implement multi-get Created: 09/Feb/13  Updated: 11/May/13  Resolved: 21/Feb/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.8.0
Fix Version/s: 0.8.1
Security Level: Public

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


 Description   
http://www.couchbase.com/forums/thread/how-retrive-multiple-documents-python

Please follow up with the user who posted this in the forums upon completion.

 Comments   
Comment by Mike Wiederhold [ 21/Feb/13 ]
Duplicate of PYCBC-49.




[PYCBC-83] Python client fails to encode view parameters Created: 09/Feb/13  Updated: 26/Apr/13

Status: Open
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.8.0
Fix Version/s: 0.8.1
Security Level: Public

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


 Description   
http://www.couchbase.com/forums/thread/reporting-issue-python-client-bucket-viewoptions-needs-encode-options

During querying a view, if the option is not encoded, it generates an error.
Example:
bucket.view("_design/beer/_view/by_name", limit=10, key="##")
The "##" characters generates:
"invalid UTF-8 JSON: {{error,insufficient_data},"[\"NONE"}"
The Couchbase Python client code should encode all the params in the client.py: view() method.

Please follow up with the user who posted the issue on the forums once this issue is resolved.




[PYCBC-82] Error handling documentation Created: 05/Feb/13  Updated: 26/Apr/13

Status: Open
Project: Couchbase Python Client Library
Component/s: docs
Affects Version/s: 0.8.0
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Major
Reporter: Perry Krug Assignee: Mark Nunberg
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.




[PYCBC-81] Write the Getting Started with Python on Mac OS X section of the essentials guide Created: 04/Feb/13  Updated: 04/Feb/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Task Priority: Major
Reporter: MC Brown Assignee: Robin Johnson
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Write the Getting started with Python on Mac OS X section of the Essentials Guide

Needs to cover:

Installation of the Python module and any pre-requisites
Writing your first (small) app using Couchbase and Python

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.




[PYCBC-80] Write the Getting Started with Python on Linux section of the essentials guide Created: 04/Feb/13  Updated: 04/Feb/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Task Priority: Major
Reporter: MC Brown Assignee: Robin Johnson
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Write the Getting started with Python Linux (Redhat and Debian) section of the Essentials Guide

Needs to cover:

Installation of the Python module and any pre-requisites
Writing your first (small) app using Couchbase and Python

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.




[PYCBC-79] Create bucket function does not allow user to set the bucket type Created: 26/Jan/13  Updated: 26/Jan/13

Status: Open
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.8.0
Fix Version/s: None
Security Level: Public

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


 Description   
Create bucket function does not allow user to set the bucket type

We should add the bucket type to the list of parameters

it is possible to work around this with the rest interface like:
couchbase = Couchbase("127.0.0.1:8091", "Administrator", "password")
#get the rest interface
rest = couchbase._rest()
rest.create_bucket(bucket='myBucket',
                   ramQuotaMB=160,
                   authType='sasl',
                   saslPassword='password',
                   replicaNumber=0,
                   bucketType='couchbase')




[PYCBC-78] Fix response.json incompatibility with requests module v1.0+ Created: 10/Jan/13  Updated: 16/May/13  Resolved: 16/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.11
Security Level: Public

Type: Bug Priority: Major
Reporter: John Zablocki Assignee: John Zablocki
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Prior to the 1.0.0 release of requests, response.json was a property. client.py tries to read config as json using a property, not callable




[PYCBC-77] Staged Installs fail because pythonlibdir is not taking care of the DESTDIR Variable Created: 04/Jan/13  Updated: 10/May/13  Resolved: 10/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

Type: Bug Priority: Major
Reporter: Thomas Stein Assignee: Mark Nunberg
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Gentoo Linux / glibc 2.16.0 / gcc 4.6.3


 Description   
Hello.

Staged install fails because in couchbase-examples/Makefile.am the following is set:

bindir=$(DESTDIR)$(localbindir)

pythonlibdir=$(libdir)/python

Is there a special reason $(DESTDIR) is missing for pythonlibdir?

best regards
Thomas

 Comments   
Comment by Mark Nunberg [ 10/May/13 ]
rewrite




[PYCBC-76] It doesn't work with the latest python requests package Created: 26/Dec/12  Updated: 02/May/13  Resolved: 02/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 1.0
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Critical
Reporter: by zhang Assignee: Mark Nunberg
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Ubuntu 12.04/12.10
Requests: 1.0.4 (the latest version from pip install)
Couchbase python client library: HEAD from github


 Description   
When I try to connect Couchbase as
self.client = Couchbase('127.0.0.1', 'user', 'pwd)
I get this error:
couchbase-python-client/couchbase/client.py", line 61, in __init__
    self.couch_api_base = config["nodes"][0].get("couchApiBase")
TypeError: 'instancemethod' object has no attribute '__getitem__'

If I revert requests to 0.14.2, then everything is good.

From http://pypi.python.org/pypi/requests:
(version 1.0.0) This is not a backwards compatible change.

 Comments   
Comment by rabbit [ 07/Jan/13 ]
This needs to be fixed ASAP. A quick fix is to add requests==0.14.2 in requirements.txt
Comment by Mark Nunberg [ 02/May/13 ]
Using libcouchbase for io




[PYCBC-75] Fixed "got not my vb error" problem that was causing a "30 second timeout" from memcached Created: 13/Dec/12  Updated: 04/May/13  Resolved: 04/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.8.0
Fix Version/s: 0.9.0
Security Level: Public

Type: Bug Priority: Major
Reporter: Philip Gatt Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 4h
Time Spent: Not Specified
Original Estimate: 4h


 Description   
Fixed "got not my vb error" problem that was causing a "30 second timeout" from the memcached client.

The code that was in there just had a little bug. I fixed a broken if statement and things started working. I tested this during a rebalance, saw the errors, and also saw my client continue to function fine.

Patch is here:
https://github.com/couchbase/couchbase-python-client/pull/14/files




[PYCBC-74] Get and Lock only sets time for default of 15 seconds Created: 06/Dec/12  Updated: 11/May/13  Resolved: 11/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.11
Security Level: Public

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


 Description   
bucket.getl(key,5) //unlocked after 15 seconds

bucket.getl(key,30) //unlocked after 15 seconds



 Comments   
Comment by Mark Nunberg [ 11/May/13 ]
We'll be using libcouchbase for this




[PYCBC-73] WARNING:client:unknown flags on get: 2000000 Created: 26/Nov/12  Updated: 04/May/13  Resolved: 04/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.8.0
Fix Version/s: 0.9.0
Security Level: Public

Type: Bug Priority: Major
Reporter: by zhang Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Mac. python27, Couchbase 2.0


 Description   
I was seeing these warnings suddenly from 2 days ago:
WARNING:client:unknown flags on get: 2000000
I modified the python client library to log the values, and they look good, (actually are int)
One thing might be related:
I did cbbackup and cbrestore before I saw these warnings.




[PYCBC-72] requests.get should always use auth= Created: 19/Nov/12  Updated: 02/May/13  Resolved: 02/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.8.0
Fix Version/s: 0.8.1
Security Level: Public

Type: Bug Priority: Critical
Reporter: Tommie McAfee Assignee: Mark Nunberg
Resolution: Incomplete Votes: 0
Labels: system-test
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Multi-bucket usecases fail when authentication to bucket is invalid.

Here auth is set correctly:
https://github.com/couchbase/couchbase-python-client/blob/master/couchbase/rest_client.py#L293

but missing here:
https://github.com/couchbase/couchbase-python-client/blob/master/couchbase/couchbaseclient.py#L349

https://github.com/couchbase/couchbase-python-client/blob/master/couchbase/rest_client.py#L177




 Comments   
Comment by Mark Nunberg [ 02/May/13 ]
Using libcouchbase for this now




[PYCBC-71] Supporting _all_docs in the SDK Created: 15/Nov/12  Updated: 26/Apr/13

Status: Open
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.8.0
Fix Version/s: None
Security Level: Public

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


 Description   
The Python SDK currently doesn't seem to support _all_docs at the moment.

I remember that it was possible in the past with something like `.view("_all_docs")`, but I think this is the wrong way to do it. _all_docs should really have its own method. The reasons are:

 - _all_docs and Views are a different thing, this should not be hidden to the user
 - _all_docs uses raw collation and not Unicode collation as Views do
 - I'm not sure about this one, but it could be the case, that _all_docs also contains not yet persisted items (as opposed to views).





[PYCBC-70] shutdown in client takes over 2 seconds Created: 08/Nov/12  Updated: 04/May/13  Resolved: 04/May/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.8.0
Fix Version/s: 0.9.0
Security Level: Public

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The shutdown function in the Couchbase object seems to take over 2 seconds.

From the discussion with the bug reporter:
@ingenthr it looks like the mc_client.done() is the culprit. the bucket is being deleted every request, calling mc_client.done() which is taking 2.3 sec to finish asa @ 2:00

oh? thanks for tracing that down! I'll get an issue filed ingenthr @ 2:00
perezd [~derek@23-24-210-193-static.hfc.comcastbusiness.net] entered the room. 2:00

client.Bucket asa @ 2:01
perezd left the room (quit: Client Quit). 2:01

that's interesting ingenthr @ 2:03
I wonder what it's doing there 2:03
 
is it bad to not properly shutdown? asa @ 2:08
looks like there is self._dispatcher_stopped_event.wait(2) 2:08
 
well, I think there's a configuration thread. it may leak something? I'm not certain to be honest ingenthr @ 2:08

comment it out and suddenly it iis very fast. asa @ 2:08
line 66 in couchbaseclient.py 2:09
 
heh ingenthr @ 2:09
well, this has been the area we need to fix I beleive 2:09
 
asa @ 2:10





[PYCBC-69] requests module update required to keep up with changing API Created: 28/Oct/12  Updated: 04/May/13  Resolved: 04/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.8.0
Fix Version/s: 0.9.0
Security Level: Public

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
In requests 0.14, the API changed slightly and thus we need to update our use of the API.

Workaround:
Change line line 282 in couchbase/rest_client.py
- def _http_request(self, api, method='GET', params='', headers=None,
+ def _http_request(self, api, method='GET', params=None, headers=None,

 Comments   
Comment by Matt Ingenthron [ 28/Oct/12 ]
http://review.couchbase.org/#/c/21631/




[PYCBC-68] cannot delete design doc Created: 18/Sep/12  Updated: 17/May/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.8.0
Fix Version/s: 0.11
Security Level: Public

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


 Description   
This may be related to the _rev changes with design docs recently. It could also be related to authentication changes.

http://www.couchbase.com/forums/thread/python-client-delete-design-doc

 Comments   
Comment by Matt Ingenthron [ 18/Sep/12 ]
From the bug reporter:

Server is 2.0.0. I've updated the python client to 0.8.0 and the problem remains although with a different error message;

File "/Volumes/DATA/dv/epic/server/venv/lib/python2.7/site-packages/couchbase/client.py", line 254, in delete
rest.delete_view(self.name, view)
AttributeError: 'RestConnection' object has no attribute 'delete_view'

I think the problem lies simply within the Python client; inspecting client.py:254 there's a call to a non existent function delete_view().. probably should be RestConnection.delete_design_doc().




[PYCBC-67] Unified client should not raise an exception when key is not found Created: 18/Sep/12  Updated: 10/May/13  Resolved: 10/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

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


 Comments   
Comment by Mark Nunberg [ 10/May/13 ]
'quiet' option available for get methods




[PYCBC-66] get method should support unicode keys Created: 18/Sep/12  Updated: 10/May/13  Resolved: 10/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

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


 Description   
The dictionary list returned by the view method contains unicode objects for id/key/value - not strings. To use the row["id"] value in a bucket.get, it's necessary to __str__() that value.

 Comments   
Comment by Mark Nunberg [ 10/May/13 ]
Unicode objects are now allowed




[PYCBC-65] Unified client needs to support password protected buckets on view queries Created: 18/Sep/12  Updated: 10/May/13  Resolved: 10/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

Type: Bug Priority: Major
Reporter: John Zablocki Assignee: John Zablocki
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Mark Nunberg [ 10/May/13 ]
This will be handled by libcouchbase




[PYCBC-64] Improve design document management error handling Created: 30/Aug/12  Updated: 17/May/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.8.0
Fix Version/s: 0.11
Security Level: Public

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


 Description   
The most likely error that needs better handling is invalid JavaScript.

 Comments   
Comment by Benjamin Young [ 31/Aug/12 ]
Docs for potential errors:
http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-designdoc-api-retrieving.html




[PYCBC-63] include docs over binary protocol Created: 30/Aug/12  Updated: 07/May/13  Resolved: 07/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.8.0
Fix Version/s: 0.10.0
Security Level: Public

Type: Improvement Priority: Major
Reporter: Benjamin Young Assignee: Mark Nunberg
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Currently, the include_docs=true parameter pulls in content over HTTP. It's less optimized and less performant than pulling the same content via a get_multi() request.

However, get_multi() is currently broken over the binary protocol.

This commit shows some progress on the API design:
http://review.couchbase.org/#/c/20349/

That would allow the developer to make a request like:
users = cb['default']['_design/game']['users_by_points'].results().docs()

and get back the content of each user's document, regardless of it being a JSON doc or not.

Currently, that code is broken and the implementation is knowingly bad due to having to work around the current lack of .get_multi() on CouchbaseClient and the brokenness of .get_multi() on the MemcachedClient. The current code in that commit returns only the last document requested in the list of results.




[PYCBC-62] get_multi() doesn't work over binary client Created: 30/Aug/12  Updated: 04/May/13  Resolved: 04/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.7.2
Fix Version/s: 0.9.0
Security Level: Public

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

Issue Links:
Dependency
blocks PYCBC-49 implement get_multi() in unified client Closed
Flagged:
Release Note, Impediment

 Description   
The MemcachedClient.get_multi() method works fine over 11211 (moxi), but fails against 11210. The implementation is using the suggested n-1 getq's + noop:
http://code.google.com/p/memcached/wiki/BinaryProtocolRevamped#Get,_Get_Quietly,_Get_Key,_Get_Key_Quietly

 Comments   
Comment by Benjamin Young [ 30/Aug/12 ]
The unified CouchbaseClient selects it's port via the HTTP node info API, and thus selects the binary port.




[PYCBC-61] Provide Get and Lock Created: 24/Aug/12  Updated: 15/May/13  Resolved: 15/May/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.11
Security Level: Public

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


 Description   
Provide get and lock as an API method.

 Comments   
Comment by Mark Nunberg [ 13/May/13 ]
http://review.couchbase.org/#/c/26277/
Comment by Mark Nunberg [ 15/May/13 ]
https://github.com/couchbase/couchbase-python-client/commit/9152cfabe257ccc4199f0ab13b298eb84cff840d




[PYCBC-60] Consistent Order of Method Parameters Created: 24/Aug/12  Updated: 11/May/13  Resolved: 11/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

Type: Improvement Priority: Major
Reporter: Karen Zeller Assignee: Mark Nunberg
Resolution: Fixed 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.

 Comments   
Comment by Mark Nunberg [ 11/May/13 ]
We'll be using keyword arguments rather than positional ones. In fact, I should probably prototype it as such




[PYCBC-59] Provide Standardized Logging Created: 24/Aug/12  Updated: 26/Apr/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

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


 Description   
Provides the consistent level of logging provided by other SDKs. Provide more information on configuring logging for developers.




[PYCBC-58] Provide Consistent Timeouts Created: 24/Aug/12  Updated: 10/May/13  Resolved: 10/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

Type: Improvement Priority: Major
Reporter: Karen Zeller Assignee: Mark Nunberg
Resolution: Fixed 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.




[PYCBC-57] Provide Error Handling Consistent with Other SDKs Created: 24/Aug/12  Updated: 26/Apr/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

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


 Description   
Need to provides consistent error messages and error handling. Needs to be more consistent with other SDKS, and underlying memcached protocol




[PYCBC-56] document thoughts on using async-core for IO oriented parallelism Created: 24/Aug/12  Updated: 04/May/13  Resolved: 04/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.9.0
Security Level: Public

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


 Description   
Related to PYCBC-28

 Comments   
Comment by Mark Nunberg [ 04/May/13 ]
This is an interesting thought.

In any event, I'd like to model the async as it's done in Perl, where it's essentially layered.




[PYCBC-55] Memcached bucket operations fail via the unified client Created: 08/Aug/12  Updated: 02/May/13  Resolved: 02/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

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

Flagged:
Release Note, Impediment

 Description   
http://www.couchbase.com/forums/thread/python-memcached-bucket-does-it-work

 Comments   
Comment by Matt Ingenthron [ 18/Apr/13 ]
This is now in progress for the 0.9 release. The 0.9 changes the API and architecture dramatically, but is much more correct and built atop libcouchbase.
Comment by Mark Nunberg [ 02/May/13 ]
This is now handled by libcouchbase




[PYCBC-54] Unable to connect to cluster if any of the nodes are down Created: 08/Aug/12  Updated: 02/May/13  Resolved: 02/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Critical
Reporter: Benjamin Young Assignee: Mark Nunberg
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Flagged:
Release Note, Impediment

 Description   
http://www.couchbase.com/forums/thread/python-client-broken-pipe-when-one-node-down

 Comments   
Comment by Mark Nunberg [ 02/May/13 ]
Now handled by libcouchbase




[PYCBC-53] improve bucket creation defaults Created: 07/Aug/12  Updated: 07/Aug/12  Resolved: 07/Aug/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.7.2
Security Level: Public

Type: Improvement Priority: Major
Reporter: Benjamin Young Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Benjamin Young [ 07/Aug/12 ]
http://review.couchbase.org/#change,19287

ramQuotaMB is now set to 100 by default
authType is set to sasl by default

Several asserts were added for better error
catching and reporting on invalid combinations
or values.

Additionally, server-side validation
is now being done to check for port duplicates,
name taken, and similar checks.




[PYCBC-52] Install dependencies via setup.py rather than including them in the source distribution Created: 07/Aug/12  Updated: 07/Aug/12  Resolved: 07/Aug/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.7.2
Security Level: Public

Type: Improvement Priority: Minor
Reporter: Benjamin Young Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Get all the dependencies from PyPi




[PYCBC-51] install fails owing to missing version Created: 07/Aug/12  Updated: 07/Aug/12  Resolved: 07/Aug/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.7.2
Security Level: Public

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Trying to install via PyPi with 0.7.1, ran into this issue:


(pyenv)ingenthr-mbp:~ ingenthr$ pip install couchbase
Downloading/unpacking couchbase
  Downloading couchbase-0.7.1.post1.tar.gz
  Running setup.py egg_info for package couchbase
    Traceback (most recent call last):
      File "<string>", line 14, in <module>
      File "/Users/ingenthr/opt/pyenv/build/couchbase/setup.py", line 25, in <module>
        from version import get_git_version
    ImportError: No module named version
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 14, in <module>

  File "/Users/ingenthr/opt/pyenv/build/couchbase/setup.py", line 25, in <module>

    from version import get_git_version

ImportError: No module named version

----------------------------------------
Command python setup.py egg_info failed with error code 1 in /Users/ingenthr/opt/pyenv/build/couchbase
Storing complete log in /Users/ingenthr/.pip/pip.log





[PYCBC-50] remove dependencies on pre-Python 2.6 "shims" (uuid, simplejson) Created: 03/Aug/12  Updated: 24/Aug/12  Resolved: 24/Aug/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.7.2
Security Level: Public

Type: Improvement Priority: Minor
Reporter: Benjamin Young Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Benjamin Young [ 24/Aug/12 ]
http://review.couchbase.org/#/c/19286/ - simplejson
http://review.couchbase.org/#/c/19285/ - uuid




[PYCBC-49] implement get_multi() in unified client Created: 01/Aug/12  Updated: 10/May/13  Resolved: 10/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

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

Issue Links:
Dependency
depends on PYCBC-62 get_multi() doesn't work over binary ... Closed




[PYCBC-48] Fatal warning during client installation Created: 31/Jul/12  Updated: 07/Aug/12  Resolved: 07/Aug/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.7
Fix Version/s: 0.7.1
Security Level: Public

Type: Bug Priority: Major
Reporter: Pavel Paulau Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: virtualenv --no-site-packages -p python2.7 test_install_2.7
virtualenv --no-site-packages -p python2.6 test_install_2.6


 Description   
> Steps to reproduce:
pip install couchbase

> Expected output:

Downloading/unpacking couchbase
  Downloading couchbase-0.7.0.tar.gz
  Running setup.py egg_info for package couchbase

> Actual output:

Downloading/unpacking couchbase
  Downloading couchbase-0.7.0.tar.gz
  Running setup.py egg_info for package couchbase
    fatal: Not a git repository (or any of the parent directories): .git

> Tip:
def get_version():
    try:
        p = subprocess.Popen('git describe', stdout=subprocess.PIPE,
                             shell=True)
        version = p.communicate()[0].strip()
    except:
        version = ''
    return version

 Comments   
Comment by Pavel Paulau [ 31/Jul/12 ]
Raising to major because it may fail completely if end user does't have git (not sure about this, though).




[PYCBC-47] make setup.py work for installation (and tests) Created: 25/Jul/12  Updated: 11/May/13  Resolved: 11/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

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

Flagged:
Release Note

 Description   
python setup.py install should be our preferred route of installation and prep us for PyPi listing.




[PYCBC-46] Unittests covering > 50% of the code Created: 25/Jul/12  Updated: 25/Jul/12  Resolved: 25/Jul/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.7
Security Level: Public

Type: New Feature Priority: Major
Reporter: Benjamin Young Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Benjamin Young [ 25/Jul/12 ]
python setup.py nosetests generates HTML coverage reports in the 'cover' folder of the source folder.

0.7 will be 59% "covered" at the time of release.




[PYCBC-45] Remove Couchbase.save({'_id':'key', 'json':'doc'}) in favor of .set() doing key name detection Created: 24/Jul/12  Updated: 30/Aug/12  Resolved: 30/Aug/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.8.0
Security Level: Public

Type: Improvement Priority: Major
Reporter: Benjamin Young Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Flagged:
Release Note

 Description   
It seems .save() was added to do some special handling (_design/doc PUTing). It leans on doc._id which is going away in 2.0, so it "smells" if nothing else.

Additionally, leaning on .set() and cb['bucket']['key'] = 'value' for the API will give us great consistency and less confusion.

.save() should be deprecated
.set() should use JSON by default
.set() should handle keys named '_design/(*)' via the HTTP API

 Comments   
Comment by Benjamin Young [ 30/Aug/12 ]
http://review.couchbase.org/#/c/20165/




[PYCBC-44] Updated screencast for /develop pages Created: 12/Jul/12  Updated: 10/May/13  Resolved: 10/May/13

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.0
Security Level: Public

Type: Improvement Priority: Major
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Create an updated screencast to ship with the new 2.0 developer SDKs

 Comments   
Comment by Matt Ingenthron [ 10/May/13 ]
We've decided to defer this.




[PYCBC-43] Update the getting started to match the Beer sample DB Created: 12/Jul/12  Updated: 26/Apr/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.0
Security Level: Public

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


 Description   
Once the sample DB has been integrated into the server, update the getting started (both on the web page and in the documentation) to use the sample database.





[PYCBC-42] Add a unit/integration test validation of OBSERVE + view stale=false Created: 12/Jul/12  Updated: 26/Apr/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.0
Security Level: Public

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


 Description   
Ensure that when a synchronous set is used with the new low-level observe, the index is fully updated when querying with view=false.





[PYCBC-41] View error options at query time Created: 12/Jul/12  Updated: 17/May/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.11
Security Level: Public

Type: Improvement Priority: Major
Reporter: Matt Ingenthron 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 PYCBC-27 support errors on views Open

 Description   
At view query time, we need to ensure the developer has the ability to add an "on_error" parameter with values of either "stop" or "continue".





[PYCBC-40] RESTful Bucket Flushing Created: 12/Jul/12  Updated: 30/Aug/12  Resolved: 30/Aug/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.8.0
Security Level: Public

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


 Description   
Add the ability to call the RESTful bucket flush.


 Comments   
Comment by Benjamin Young [ 30/Aug/12 ]
http://review.couchbase.org/#/c/20389/




[PYCBC-39] Add Design document management, including error handling Created: 12/Jul/12  Updated: 30/Aug/12  Resolved: 30/Aug/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.8.0
Security Level: Public

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


 Description   
Add the additional functionality needed to create and replace design documents. This will likely be an extension on the Bucket class.


 Comments   
Comment by Matt Ingenthron [ 24/Aug/12 ]
Since this is mostly done, please either complete error handling or file specific bugs on the types that need to be handled and close this.
Comment by Benjamin Young [ 30/Aug/12 ]
Needs further exploration, so throwing to 0.9.0:
http://www.couchbase.com/issues/browse/PYCBC-64




[PYCBC-38] Replica read command Created: 12/Jul/12  Updated: 17/May/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

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


 Description   
Implement a simple replica read command





[PYCBC-37] Highlevel synchronous mutation operations atop observe Created: 12/Jul/12  Updated: 26/Apr/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

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





[PYCBC-36] Implement observe command Created: 12/Jul/12  Updated: 26/Apr/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
Add the basic low level observe command





[PYCBC-35] Invalid reference made to create_view Created: 02/Jul/12  Updated: 24/Aug/12  Resolved: 24/Aug/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.7
Security Level: Public

Type: Bug Priority: Major
Reporter: Mike Wiederhold Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
See this forum post for details.

http://www.couchbase.com/forums/thread/python-client-library-import-bug-and-fix

 Comments   
Comment by Benjamin Young [ 24/Aug/12 ]
Done some time ago.




[PYCBC-34] Exception is not thrown or caught anywhere in the code base Created: 18/Jun/12  Updated: 13/May/13  Resolved: 10/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

Type: Task Priority: Major
Reporter: Mike Wiederhold Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Catching Exception masks programming errors and should not be thrown or caught anywhere.

 Comments   
Comment by Mark Nunberg [ 10/May/13 ]
Rewrite




[PYCBC-33] Many operations are timing out during rebalancing Created: 18/May/12  Updated: 11/May/13  Resolved: 11/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

Type: Bug Priority: Major
Reporter: wenxiang Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Couchbase 1.8.0 Community
Ubuntu 12.04 Server
Cluster of 3 servers, 8GB ram each
Linux RAID 10, 4 x WD RE4 drives


 Description   
I tried adding a fourth server with similar specs to the cluster, and found that during the rebalancing, a large number of operations simply timed out after about 30 secs.

The same behavior was observed using the VBucketAware Python client, local Moxi servers and telnetting directly to the CB servers.

I was under the impression that if the client/Moxi hits a wrong server during rebalancing it's supposed to immediately return a "not my vbucket" error so it can immediately figure out the actual server to query?

 Comments   
Comment by Mark Nunberg [ 11/May/13 ]
handled by LCB




[PYCBC-32] python SDK should use TCP NODELAY? Created: 21/May/12  Updated: 11/May/13  Resolved: 28/Aug/12

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.8.0
Security Level: Public

Type: Bug Priority: Major
Reporter: Steve Yen Assignee: Matt Ingenthron
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
I noticed while writing a python app that going through server-side moxi against a 2 node cluster was faster than using the python smart client 1.0. Not 100% sure why, but a quick grep shows the python client is not using TCP NODELAY. Like...

    s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)

 Comments   
Comment by Benjamin Young [ 28/Aug/12 ]
http://review.couchbase.org/#/c/20263/




[PYCBC-31] python SDK disables all logging Created: 21/May/12  Updated: 03/Aug/12  Resolved: 03/Aug/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 1.0
Fix Version/s: 0.7
Security Level: Public

Type: Bug Priority: Major
Reporter: Steve Yen Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
took a few hours to find why logging in my python app stopped working, and it's because I started using the couchbase python SDK which strangely disables logging...

  logging.disable(logging.ERROR)

here...

  https://github.com/couchbase/couchbase-python-client/blob/master/couchbase/client.py#L33

the temporary workaround in my app was to call...

  logging.disable(logging.NOTSET)

but, that's just a hack workaround against a socially awkward (read: rude) implementation.



 Comments   
Comment by Benjamin Young [ 03/Aug/12 ]
Fixed here: http://review.couchbase.org/17039




[PYCBC-30] Drop "VBucketAware" from Python SDK naming Created: 17/May/12  Updated: 11/May/13  Resolved: 25/May/12

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Improvement Priority: Major
Reporter: Benjamin Young Assignee: Mike Wiederhold
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Flagged:
Release Note

 Description   
Mike W. has good ideas. This is one of them.

We want to get this renaming done prior to the next release, so we don't miss the boat on changing it.

Additionally, we should be sure to deprecate the old naming (not just drop it altogether) as it's still in doc/samples/etc and eradicating those will take some time...




[PYCBC-29] Setting a non-existant key from VBucketAwareCouchbaseClient throws an exception instead of returning None Created: 16/May/12  Updated: 04/May/13  Resolved: 04/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.9.0
Security Level: Public

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


 Description   
The docs don't match the code. We need to determine which one is correct (or which route we'd prefer taking), write some tests, and make the docs and code match.

Reported via http://disq.us/78w7hy?imp=7fd22085-2821-40da-9b3f-0e5134554a91&thread=574422822&zone=email_notification&event=shortener_click
Using couchbase-python-client v0.6.0 from the MB 2.0 DP SDK downloads, the above doesn't seem to be true. I am seeing the following exception thrown (instead of None being returned) when trying to get a non-existant key from a VBucketAwareCouchbaseClient:

couchbase.couchbaseclient.MemcachedError: Memcached error #1: Not found

Also, the get function doesn't return object but a tuple, with the object is in position 2.




[PYCBC-28] performance with python client library is sub-standard Created: 04/Apr/12  Updated: 02/May/13  Resolved: 02/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.5, 0.6, 0.7
Fix Version/s: 0.9.0, 0.10.0
Security Level: Public

Type: Bug Priority: Critical
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File benchmark.py     File readContribuabili.py    

 Description   
Current basic tests with Python show the client library is not capable of the same kind of throughput we would expect from a basic client library. It's unclear if this owing to the fact that we're not that close to the IO or there's something just wrong in the current client library.

 Comments   
Comment by Matt Ingenthron [ 04/Apr/12 ]
Added a contributed test for throughput.
Comment by Benjamin Young [ 22/Jun/12 ]
Pavel's raised his hand to take on this task. Glad to have you on board, Pavel!
Comment by Pavel Paulau [ 25/Jul/12 ]
Returning this task back to because it's well beyond my scope.

I'll continue to work on that as part of other task:
http://www.couchbase.com/issues/browse/CBD-464
Comment by Mark Nunberg [ 02/May/13 ]
Performance is better with the libcouchbase -based version




[PYCBC-27] support errors on views Created: 22/Mar/12  Updated: 26/Apr/13

Status: Open
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

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

Issue Links:
Dependency
depends on PYCBC-41 View error options at query time Open

 Description   
Views now have some options on capturing errors and stopping on errors as documented here:
http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-errors.html

The client needs to support these.




[PYCBC-26] Client throws intermittent "Exception in thread dispatcher-thread" errors Created: 22/Mar/12  Updated: 04/May/13  Resolved: 04/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: 0.5
Fix Version/s: 0.9.0
Security Level: Public

Type: Bug Priority: Major
Reporter: John Zablocki Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Windows 7, Python 2.7


 Description   
While working on the changes for 0.6, I started to get these errors. They went away after some time and I haven't seen them since (though I've used the Python client minimally since the 0.6 release). However, a user reported a similar experience on the forums today. I don't have steps to recreate, but wanted to make note of this as it's no longer isolated to my setup.

http://www.couchbase.com/forums/comment/reply/1001642#comment-form

Exception in thread dispatcher-thread (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib64/python2.6/threading.py", line 532, in __bootstrap_inner
  File "/usr/lib64/python2.6/threading.py", line 484, in run
  File "/usr/lib/python2.6/site-packages/couchbase/couchbaseclient.py", line 661, in _start_dispatcher
  File "/usr/lib/python2.6/site-packages/couchbase/couchbaseclient.py", line 968, in dispatch
  File "/usr/lib64/python2.6/Queue.py", line 174, in get
<type 'exceptions.TypeError'>: 'NoneType' object is not callable

 Comments   
Comment by James Boylan [ 30/Apr/12 ]
I have also seen this issue manifest on a Linux system running the 0.6 Client Library for Python. Tested both with Python 2.6 and 2.7. It seems to stem from the threading being done in the client library. ie, threads don't seem to be exiting correctly resulting in the error.




[PYCBC-25] vBucket Aware client accepts only 1 server Created: 04/Mar/12  Updated: 13/May/13  Resolved: 02/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

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


 Description   
The vBucket Aware client only accepts 1 server. So if that server is down at the time of initial connection. The client will never connect. This results in users needing to write special code to handle this or put a Load Balance in between. Which a balancer would reduce performance. Client should ideally take a collection of servers like Standard Memcached Clients do, and auto connect to a different one if it fails connection.

 Comments   
Comment by nerdynick [ 10/Mar/12 ]
I've created a patch to resolve this. The patch also provides other fixes/improvements to passing in server configs. You can now pass username/password via URL Strings. URL String parsing now uses urlparse with support for Python 3.0 version of urlparse. You can also pass a preconfigured dict in the internal format.

https://github.com/nerdynick/couchbase-python-client/commit/dc7fe00a49f8d012d28286811ee8ac3ddbfd34e9
https://github.com/nerdynick/couchbase-python-client/commit/6fad7ca01c6dd0cd6895aed8a81c70c301bbaa5d

There are also a 2 other commits before that remove the disabling of logging. As this effects application logging not just Couchbase logging. It also contains a minor patch that turns the Dispatcher into an inherited Thread vs using a function. Allows everything to be a little more contained.
Comment by Benjamin Young [ 10/Apr/12 ]
@nerdynick, thanks for the work you've put into fixing this issue! I'd love to get this patch into the Python SDK.

Would you mind shipping these in through our Gerrit Code Review system? Information on getting that setup is here:
http://www.couchbase.com/wiki/display/couchbase/Contributing+Changes

Once you've got that setup, it should be fairly straight forward to continue contributing--which we'd love!

Thanks much.
Comment by Matt Ingenthron [ 24/Aug/12 ]
@benjamin, can you followup with nick and see if he can just do the CLA clickthrough, and then we can integrate it ourselves?
Comment by Mark Nunberg [ 02/May/13 ]
Duplicate of PYCBC-97; fixed




[PYCBC-24] Rebalance results in clients hanging Created: 04/Mar/12  Updated: 04/May/13  Resolved: 04/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.9.0
Security Level: Public

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


 Description   
Using the latest version from Github. If you rebalance the cluster while activity is going on from a client. The client hangs with a Not My vBucket error. Even after the rebalance has finished it continues to hang.

 Comments   
Comment by Mark Nunberg [ 04/May/13 ]
see LCB




[PYCBC-23] Error using cas Created: 02/Mar/12  Updated: 11/May/13  Resolved: 01/Sep/12

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.5
Fix Version/s: 0.8.0
Security Level: Public

Type: Bug Priority: Major
Reporter: Mike Wiederhold Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
http://www.couchbase.com/forums/thread/cas-error

 Comments   
Comment by by zhang [ 03/Mar/12 ]
P.S. it's also on the latest couchbase-python-client.
I create a diff (https://github.com/couchbase/couchbase-python-client/pull/4) to walk around this issue. Who can take a look at it?
Comment by F M [ 18/Jun/12 ]
Hi is there a work-around for this problem? It seems I can't use cas with python SDK.
Comment by Benjamin Young [ 01/Sep/12 ]
It seemed to work fine in my tests. Check this commit for how I tested cas():
http://review.couchbase.org/#/c/20429/

If something about those tests look incorrect, please comment here. Thanks!




[PYCBC-22] A user has reported Dump is broken Created: 02/Mar/12  Updated: 04/May/13  Resolved: 04/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.5
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Mike Wiederhold Assignee: Mark Nunberg
Resolution: Won't Fix Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
http://www.couchbase.com/forums/thread/dump-all-keys-bucket

Another user here:

http://www.couchbase.com/forums/thread/get-all-key-names-bucket-php




[PYCBC-21] docloader fails due to some encoding issue on beers sample data Created: 11/Jan/12  Updated: 11/May/13  Resolved: 07/Feb/12

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Aleksey Kondratenko Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
See http://review.couchbase.org/#change,11440

 Comments   
Comment by Benjamin Young [ 31/Jan/12 ]
http://review.couchbase.org/#change,12710
Comment by Aleksey Kondratenko [ 02/Feb/12 ]
re-opening because fix is not merged
Comment by Dipti Borkar [ 19/Jun/12 ]
Was this fixed? I see the issue resolved now.




[PYCBC-20] couchbase client doesn't work against a bucket with dedicated port and no password Created: 26/Dec/11  Updated: 31/Aug/12  Resolved: 31/Aug/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.5
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Farshid Ghods Assignee: Farshid Ghods
Resolution: Incomplete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
this impacts cbworkloadgen

 Comments   
Comment by Farshid Ghods [ 26/Dec/11 ]
this type of bucket is an ascii bucket so python client does not need to support this client
Comment by Matt Ingenthron [ 17/Feb/12 ]
There is no such thing as an ascii bucket, really. Moxi must be talking to it over binary. So what's the auth?

Farshid, you were the reporter here too. Should this be closed?
Comment by Bin Cui [ 13/Aug/12 ]
Reassign back to farshid




[PYCBC-19] use zlib.crc32 in couchbaseclient.py Created: 26/Nov/11  Updated: 07/Dec/11  Resolved: 07/Dec/11

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Farshid Ghods Assignee: Matt Ingenthron
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Farshid Ghods [ 07/Dec/11 ]
https://github.com/couchbase/couchbase-python-client/commit/a9a0d666835fcde8465e4b78a4561b3c38f78c7a




[PYCBC-18] Add prepend method to vbucketawarecouchbase client Created: 19/Nov/11  Updated: 11/May/13  Resolved: 26/Nov/11

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

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


 Comments   
Comment by Farshid Ghods [ 26/Nov/11 ]
http://review.couchbase.org/#change,11170,patchset=1




[PYCBC-17] client does not exit cleanly on interpreter exit Created: 08/Sep/11  Updated: 06/Apr/12  Resolved: 06/Apr/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.5
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Oli Kingshott Assignee: Farshid Ghods
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: all


 Description   
The couchbase client does not exit cleanly when the interpreter exits - i.e. does not disconnect unless you call client.done()

This can be fixed by daemonizing the CommandDispatcher threads. See http://docs.python.org/library/threading.html#threading.Thread.daemon

 Comments   
Comment by Benjamin Young [ 06/Apr/12 ]
Looks like this patch date 8/11/11 (merged on the 25th) does the "daemonization":
http://review.couchbase.org/#change,8889




[PYCBC-16] increment from two clients seems to not work Created: 07/Sep/11  Updated: 30/Aug/12  Resolved: 30/Aug/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.5
Fix Version/s: 0.8.0
Security Level: Public

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
This was originally observed with an older version, and in trying to reproduce it the latest change seems to show incr/decr is further broken. Still, this should be an easy test to add since it's been verified to fail.

from pymembase.membaseclient import VBucketAwareMembaseClient
client_one = VBucketAwareMembaseClient('http://host/pools/default&#39;,&#39;default&#39;,&#39;&#39;)
client_two = VBucketAwareMembaseClient('http://host/pools/default&#39;,&#39;default&#39;,&#39;&#39;)

# Client one sets a numeric key
client_one.set('jacob',0,0,'20')
client_one.get('jacob')

# Client two tries to increment this numeric key
client_two.incr('jacob')
# This returns (0, cas) - it should be 21!
# Client two can keep incrementing this weird key
client_two.incr('jacob')
# Returns (1, cas)

# However - if client two gets the key...
client_two.get('jacob')
client_two.incr('jacob')
# (21, cas)
# !!!

p.s.: want to thank oliland from IRC on reporting this

 Comments   
Comment by Matt Ingenthron [ 07/Sep/11 ]
Could not reproduce this with another client.
Comment by Oli Kingshott [ 08/Sep/11 ]
Analyzing the binary protocol in Wireshark shows that the VBucketID is not set for the second client when it calls incr() without doing a get() first. Will try and see how this relates to the source code.
Comment by Benjamin Young [ 01/Jun/12 ]
I've added the above code (nearly) as a test case here:
https://github.com/BigBlueHat/couchbase-python-client/commit/e3e31cdf7950abb35012fa06195ffea4c6710019

I'd love to get a few others to test it. It was failing, now it isn't. I've only tested it against 1.8.0 thus far.
Comment by Matt Ingenthron [ 24/Aug/12 ]
@benjamin to run this test again with current codebase and current server, then close if it can't be duplicated.
Comment by Benjamin Young [ 30/Aug/12 ]
http://review.couchbase.org/#/c/20369/




[PYCBC-15] client can't set() integer values Created: 06/Sep/11  Updated: 24/Jul/12  Resolved: 24/Jul/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.5
Fix Version/s: 0.7
Security Level: Public

Type: Bug Priority: Trivial
Reporter: Oli Kingshott Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: any

Attachments: Text File added-deliberately-failing-test-for-PYCBC-15.patch     File integer.py    

 Description   
Attempting to set an integer value with the python client will produce:

TypeError: object of type 'int' has no len()

We should be getting the object length from the string (unicode?) representation of the object passed into set().

 Comments   
Comment by Benjamin Young [ 06/Apr/12 ]
Failing test submitted to Gerrit: http://review.couchbase.org/#change,14631
Comment by Benjamin Young [ 06/Apr/12 ]
Someone with a deeper understanding of the Memcached protocol should handle this one. Thanks.
Comment by Benjamin Young [ 09/Apr/12 ]
Formalized simpletest.py addition as a patch for this case.
Comment by Benjamin Young [ 01/Jun/12 ]
Failing test case also added here:
https://github.com/BigBlueHat/couchbase-python-client/commit/668c8a85d74005a3780573ab4685b5c4df49381e
Comment by Benjamin Young [ 24/Jul/12 ]
http://review.couchbase.org/#change,18357




[PYCBC-14] incr() and decr() not working with VBucketAwareMembaseClient / Membase 1.7 Created: 06/Sep/11  Updated: 31/May/12  Resolved: 31/May/12

Status: Resolved
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.5
Fix Version/s: 0.7
Security Level: Public

Type: Bug Priority: Major
Reporter: Oli Kingshott Assignee: Farshid Ghods
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Client platform: Linux / Windows
Server platform: Membase Server 1.7.1 with 1 active server with a Membase VBucket - any authentication

Attachments: File incr.py    

 Description   
See reproduction code attached. When executed it spits out a lot of errors ('amount') and eventually times out while still erroring in the background.

 Comments   
Comment by Matt Ingenthron [ 06/Sep/11 ]
Oli described what he'd found on investigation to me, and I've now posted a change for review:
http://review.couchbase.org/#change,9404
Comment by Matt Ingenthron [ 07/Sep/11 ]
Fix went through, but seems to have been incorrect (testing 0.5-19-g0680cfe):


>>> client_one.incr('jacob')
Exception in thread dispatcher-thread:
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/threading.py", line 522, in __bootstrap_inner
    self.run()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/threading.py", line 477, in run
    self.__target(*self.__args, **self.__kwargs)
  File "couchbaseclient.py", line 651, in _start_dispatcher
    self.dispatcher.dispatch()
  File "couchbaseclient.py", line 954, in dispatch
    self.do(item)
  File "couchbaseclient.py", line 1089, in do
    amount = item["amt"]
KeyError: 'amt'

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "couchbaseclient.py", line 908, in incr
    return self._respond(item, event)
  File "couchbaseclient.py", line 820, in _respond
    raise MemcachedTimeoutException(item, timeout)
exception.MemcachedTimeoutException: timeout - memcached did not return in 30 second during incr operation for key jacob
Comment by Oli Kingshott [ 08/Sep/11 ]
This must be for a later build as I can confirm the patch works for release 0.5.
Comment by Benjamin Young [ 31/May/12 ]
The patch Matt mentioned does seem to have fixed the issue. Current incr() tests pass just fine.




[PYCBC-13] print statements everywhere Created: 06/Sep/11  Updated: 11/May/13  Resolved: 13/Oct/11

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 0.5
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Blocker
Reporter: Oli Kingshott Assignee: Farshid Ghods
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: all


 Description   
A lot of print statements are left around the python client library which breaks WSGI - including when you connect.

 Comments   
Comment by Farshid Ghods [ 29/Sep/11 ]
there are print statements only when there is an exception.

were you using pycouchtests ?
Comment by Farshid Ghods [ 29/Sep/11 ]
./couchbase/couchbaseclient.py: print ex
./couchbase/couchbaseclient.py: print ex
./couchbase/couchbaseclient.py: print ex
./couchbase/httplib2/__init__.py: print "connect: (%s, %s)" % (self.host, self.port)
./couchbase/httplib2/__init__.py: print 'connect fail:', (self.host, self.port)
./couchbase/migrator/migrator_couchbase.py: print 'unable to set key {0}'.format(str(record['id']))
./couchbase/utils/couchbase-migrator.py: print "Error: %s\n" % err
./couchbase/utils/couchbase-migrator.py: print """\
./couchbase/utils/couchbase-migrator.py: print "Sources:"
./couchbase/utils/couchbase-migrator.py: print " " + source['type']
./couchbase/utils/couchbase-migrator.py: print " " + source['example']
./couchbase/utils/couchbase-migrator.py: print
./couchbase/utils/couchbase-migrator.py: print
./couchbase/utils/couchbase-migrator.py: print "Destinations:"
./couchbase/utils/couchbase-migrator.py: print " " + destination['type']
./couchbase/utils/couchbase-migrator.py: print " " + destination['example']
./couchbase/utils/couchbase-migrator.py: print
./couchbase/utils/couchbase-migrator.py: print 'migrated {0} items'.format(count)
./couchbase/utils/pycouchtest.py: def print_stats(self):
./couchbase/utils/pycouchtest.py: print msg.format(self._thread_id, self._stats["total_time"] / self._stats["samples"],
./couchbase/utils/pycouchtest.py: parser.print_help()
./couchbase/utils/pycouchtest.py: worker.print_stats()
./couchbase/utils/pycouchtest.py: print ""
Comment by Matt Ingenthron [ 13/Oct/11 ]
Discussion with Farshid indicated this is no longer an issue. Oli, please clarify if there's something we need to address here. Thanks!




[PYCBC-12] client should provide some way of asynchronously running multiple ops in parallel Created: 22/Aug/11  Updated: 26/Apr/13

Status: Open
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 1.0
Security Level: Public

Type: Improvement Priority: Minor
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Currently, if one has to get multiple items to do something, they must all be done in serial.


get A
get B
get C

print "A + B + C is " A + B + C

it'd be better if A, B and C could all be fetched without blocking, and only when going to access them, would the request be blocked.




[PYCBC-11] a disconnected or misbehaving connection may cause instability in the client library Created: 22/Aug/11  Updated: 04/May/13  Resolved: 04/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.9.0
Security Level: Public

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


 Description   
This bug has not actually been observed, but it is expected that something like a stale connection (one where the server is gone, but no TCP timeout or RST packet has been received) could cause the client to continue to write to something not there forever. The client library should be more resiliant.

 Comments   
Comment by Matt Ingenthron [ 13/Oct/11 ]
I believe this is closeable, correct?




[PYCBC-10] object should serialize and deserialize when being persisted to the cluster Created: 22/Aug/11  Updated: 11/May/13  Resolved: 30/Aug/12

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.8.0
Security Level: Public

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


 Description   
With most other client libraries, objects are automatically serialized when being stored and retrieved from the system. This client library should have similar functionality.

For example, the Java spymemcached client library reserves the flags field for itself, and will set flags to indicate the datatype. One datatype is a serialized Java object.

One good option would also be to allow serialization into JSON, since there is good, built in support for JSON since 2.6 (I believe).

 Comments   
Comment by Farshid Ghods [ 07/Sep/11 ]
looking into native python serialization

http://docs.python.org/library/pickle.html
Comment by Farshid Ghods [ 29/Sep/11 ]
got the pickle ( native python) serialization working. ( will upload to gerrit after testing )
Matt, based on your comment
1- i will use flags now to differentiate between objects/values we have to deserialize before sending it back to the client or not
2- how about other operations like append or prepend ?
Comment by Matt Ingenthron [ 24/Aug/12 ]
In 0.8 we'll make sure error handling is done appropriate, should be it's own bug, but this is good enough for now.
Comment by Benjamin Young [ 30/Aug/12 ]
http://review.couchbase.org/#/c/20376/




[PYCBC-9] an interface to paginate across large view results is needed Created: 22/Aug/11  Updated: 26/Apr/13

Status: Open
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 1.0 Beta
Security Level: Public

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


 Description   
There can be some situations where querying a view returns results that way too large for the client to handle. In these cases, either the client library API or implementation of some Python specific API can allow for one to iterate over Views which have very large results.

The Ruby client does this with streaming. The Java client does this with traditional pagination:
http://guide.couchdb.org/draft/recipes.html#pagination




[PYCBC-8] creating and destroying design docs with views from the client library should be available Created: 22/Aug/11  Updated: 26/Apr/13

Status: Open
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: 1.0
Fix Version/s: None
Security Level: Public

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


 Description   
Separate from accessing views, there should be methods of creating and destroying views and the associated design documents.




[PYCBC-7] An interface to access Couchbase Views is needed Created: 22/Aug/11  Updated: 11/May/13

Status: Reopened
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.8.0
Security Level: Public

Type: New Feature Priority: Critical
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Flagged:
Release Note

 Description   
Need an interface to be able to access Couchbase Views. Even without the ability to create and delete views, accessing view results is important, as views can be created through the Web UI interface.

The specific implementation should be specific to, and familiar to the surrounding language and library, but it should have some general capabilities:
- List views from a given cluster
- Instantiate an Object that represents a view on a given cluster
- Assemble query parameters for a View
- Retrieve non-reduced results from a View
  * Be able to get the underlying document from the non-reduced results (this request should flow over binprot)
- Retrieve reduced results from a View (the format is the same, but there is no associated docid)

 Comments   
Comment by Farshid Ghods [ 29/Sep/11 ]
looking at the readme files now seems like some view functionalities are already implemented :

    # save a design document
    # right now with no _rev, we can only create, we can't update
    try:
        doc_id = newbucket.save(design)
    except:
        doc_id = "_design/testing"

    rows = newbucket.view("_design/testing/_view/all")
    for row in rows:
        print row

Keith,
can you please go through this checklist and let us know which features need to be worked on ?
Comment by Benjamin Young [ 06/Apr/12 ]
Keith, can you get us an update on the status of this issue?

Much thanks!
Comment by Benjamin Young [ 17/May/12 ]
Think you're leading this charge. :) Thanks!
Comment by Matt Ingenthron [ 24/Aug/12 ]
@benjamin is completing this in 0.8
Comment by Benjamin Young [ 30/Aug/12 ]
The one remaining piece--"include docs over binary protocol" is stalled due to get_multi()

However, the API can still handle include_docs over HTTP, so I'm closing this one, and adding another one for include docs over binary protocol.
Comment by Benjamin Young [ 30/Aug/12 ]
http://www.couchbase.com/issues/browse/PYCBC-63
Binary protocol improvements related to this API & include_docs




[PYCBC-6] some bugs on sending data Created: 22/Aug/11  Updated: 04/May/13  Resolved: 04/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.9.0
Security Level: Public

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Incomplete Votes: 0
Labels: need_info, needs-better-definition
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
At times, sending data can get hung up. This is well known by Farshid, who can offer details. Just filing the bug for tracking.

 Comments   
Comment by Farshid Ghods [ 07/Sep/11 ]
found the solution and fix is merged to mc_bin_client in testrunner.

Keith can you crossport the changes when you get a chance ?
Comment by Benjamin Young [ 17/May/12 ]
Keith, any updates on this? Thanks.
Comment by Benjamin Young [ 31/May/12 ]
Farshid, do you know the exact commits or "area" of mc_bin_client that fixed this issue in testrunner? I'll be glad to do the "porting" if so.
Comment by Matt Ingenthron [ 13/Jul/12 ]
Assigning to Farshid who can hopefully help fill us in.

Farshid: do you remember July 2011? Do you remember it well enough to recall what this issue was that was fixed and merged in mc_bin_client? We want to make sure it's in the updates.
Comment by Farshid Ghods [ 26/Jul/12 ]
yes the bug was that we were not using tcp_nodelay when creating a connection to memcached




[PYCBC-5] down server can hang the Python client Created: 22/Aug/11  Updated: 10/May/13  Resolved: 10/May/13

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.10.0
Security Level: Public

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Mark Nunberg
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Since servers may die without resetting the TCP socket, the Python client has to have some kind of timeout on any given operation. Clients should not hang forever.

In the Java client, we implement a continuious operation timeout, where a certain number of timeouts on a connection will cause the client library to close/reopen the connection to the server.

 Comments   
Comment by Mark Nunberg [ 10/May/13 ]
LCB




[PYCBC-4] cannot handle topology changes Created: 22/Aug/11  Updated: 11/May/13  Resolved: 29/Sep/11

Status: Closed
Project: Couchbase Python Client Library
Component/s: library
Affects Version/s: None
Fix Version/s: 0.7
Security Level: Public

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Farshid Ghods
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The current Python client cannot handle topology changes dynamically. It should learn to do so in one of two ways.

1) Implement handling of fast-forward map.
2) Implement retry of nodes.

When a node is added to the cluster and rebalance is started, a new map is published with a fast-forward section and an updated node list with the new node listed.

The python client should handle not-my-vbucket errors by trying the fast forward map, or should retry each node (maybe twice?) until some node takes the item.

 Comments   
Comment by Farshid Ghods [ 29/Sep/11 ]
https://github.com/couchbase/couchbase-python-client/commit/3f315ec8c6ea73ef03f49f5b0f79ddcd9389ad19




[PYCBC-3] decr() function fails gracelessly Created: 11/Aug/11  Updated: 12/Aug/11  Resolved: 12/Aug/11

Status: Resolved
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public

Type: Bug Priority: Major
Reporter: Tyler Mitchell Assignee: Keith Batten
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: OSX 10.6, Python 2.6

Flagged:
Impediment

 Description   
While learning more about the functions in the vbucketawareclient I tried .decr() with minimal parameters. I lost control of my Python session as it didn't really fail gracefully. I wasn't really trying to make it work, but think this is broken :) and really hard to test further because of this tie-up.

Test script:

from couchbase.couchbaseclient import VBucketAwareCouchbaseClient as client
server = "http://localhost:8091/pools/default"
v = client(server,"default","")
# returns 11210
v.set("TESTKEY",0,0,"TESTVALUE")
# returns (4020540899, 602, '')
v.decr("TESTKEY",1)
#[2011-08-11 16:51:52,415] - [couchbaseclient] [4320661504] - ERROR - 'amount'
#[2011-08-11 16:51:52,627] - [couchbaseclient] [4320661504] - ERROR - 'amount'
#[2011-08-11 16:51:52,827] - [couchbaseclient] [4320661504] - ERROR - 'amount'
#.. never ends

 Comments   
Comment by Farshid Ghods [ 12/Aug/11 ]
Assigning to Keith.
Comment by Tyler Mitchell [ 12/Aug/11 ]
Latest fix did the trick. http://review.couchbase.org/#change,8915




[PYCBC-2] Update README file with simple example for quickstart Created: 05/Aug/11  Updated: 22/Aug/11  Resolved: 22/Aug/11

Status: Resolved
Project: Couchbase Python Client Library
Component/s: docs
Affects Version/s: None
Fix Version/s: 0.7
Security Level: Public

Type: Task Priority: Minor
Reporter: Tyler Mitchell Assignee: Keith Batten
Resolution: Fixed Votes: 0
Labels: documentation
Remaining Estimate: 2h
Time Spent: Not Specified
Original Estimate: 2h


 Description   
Current README needs some lovin'




[PYCBC-1] error format is changing Created: 27/Jul/11  Updated: 11/May/13  Resolved: 31/Aug/12

Status: Closed
Project: Couchbase Python Client Library
Component/s: None
Affects Version/s: None
Fix Version/s: 0.8.0
Security Level: Public

Type: Bug Priority: Major
Reporter: Matt Ingenthron Assignee: Benjamin Young
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The error format is changing, need to ensure that's updated in the client.

Rough example format:

{"total_rows":0,"rows":[

],
"errors": [{"from":"127.0.0.1:5984","reason":"Design document `_design/testfoobar` missing in database `test_db_b`."},
{"from":"http://localhost:5984/_view_merge/","reason":"Design document `_design/testfoobar` missing in database `test_db_c`."}]}

 Comments   
Comment by Matt Ingenthron [ 28/Jul/11 ]
Here's a better example of the format. It changed slightly again.

{"total_rows":0,"rows":[
],
"errors":[
{"from":"local","reason":"Design document `_design/testfoobar` missing
in database `test_db_b`."},
{"from":"http://localhost:5984/_view_merge/","reason":"Design document
`_design/testfoobar` missing in database `test_db_c`."}
]}
Comment by Benjamin Young [ 06/Apr/12 ]
So the key difference here is the use of a keyword "local" in place of the IP addres and port combo?
Comment by Matt Ingenthron [ 24/Aug/12 ]
I guess so. Best thing is just to make sure access to the errors is available for now.
Comment by Benjamin Young [ 31/Aug/12 ]
http://review.couchbase.org/#/c/20404/

It's a bit basic, but functional.




Generated at Sun May 19 03:01:36 CDT 2013 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.