When reporting issues to Couchbase (using couchbase.com/issues), you should always add the following information to JIRA issues:
Environment description (package installation? cluster_run? build number? OS)
All the steps necessary to reproduce (if applicable)
Show the full content of all the design documents
Describe how your documents are structured (all same structure, different structures?)
If you generated the data with any tool, mention its name and all the parameters given to it (full command line)
Show what queries you were doing (include all query parameters, full url), use curl with option -v and show the full output, example:
shell> curl -v 'http://localhost:9500/default/_design/test/_view/view1?limit=10&stale=false' * About to connect() to localhost port 9500 (#0) * Trying ::1... Connection refused * Trying 127.0.0.1... connected * Connected to localhost (127.0.0.1) port 9500 (#0) > GET /default/_design/test/_view/view1 HTTP/1.1 > User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5 > Host: localhost:9500 > Accept: */* > < HTTP/1.1 200 OK < Transfer-Encoding: chunked < Server: MochiWeb/1.0 (Any of you quaids got a smint?) < Date: Tue, 21 Aug 2012 14:43:06 GMT < Content-Type: text/plain;charset=utf-8 < Cache-Control: must-revalidate < {"total_rows":2,"rows":[ {"id":"doc1","key":"doc1","value":111111}, {"id":"doc2","key":"doc2","value":222222} ] } * Connection #0 to host localhost left intact * Closing connection #0
Repeat the query with different values for the stale parameter and show the output
Attach logs from all nodes in the cluster
Try all view related operations, including design document creation/update/deletion, from the command line. The goal here to isolate UI problems from the view engine.
If you suspect the indexer is stuck, blocked, etc, please use
curl against the_active_tasksAPI to confirm
that, the goal again is to isolate UI issues from view-engine
issues. Example:
shell> curl -s 'http://localhost:9500/_active_tasks' | json_xs [ { "indexer_type" : "main", "started_on" : 1345645088, "progress" : 43, "initial_build" : true, "updated_on" : 1345645157, "total_changes" : 250000, "design_documents" : [ "_design/test" ], "pid" : "<0.5948.0>", "changes_done" : 109383, "signature" : "4995c136d926bdaf94fbe183dbf5d5aa", "type" : "indexer", "set" : "default" } ]
Note that the started_on and
update_on fields are UNIX timestamps. There are
tools (even online) and programming language APIs (Perl, Python,
etc) to convert them into human readable form, including date and
time. Note that the _active_tasksAPI contains
information per node, so you'll have to
query_active_tasksor every node in the cluster
to verify if progress is stuck, etc.