couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Kocoloski (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COUCHDB-1163) Document returned by id, but cannot be found by rev
Date Wed, 18 May 2011 02:05:47 GMT

    [ https://issues.apache.org/jira/browse/COUCHDB-1163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13035172#comment-13035172
] 

Adam Kocoloski commented on COUCHDB-1163:
-----------------------------------------

Summarizing some IRC discussion with Paul:

The problem in this ticket is definitely related to the bug in the replicator that was fixed
in COUCHDB-885.  When the replicator pushed documents with attachments to a remote target
it sent the leaf revision but omitted information about the revision path that led to that
leaf.  As a result, the target didn't know how to merge that revision into its tree, and a
conflict was created.  If you like, you can think of it as imposing an effective _revs_limit
of 1.

However, that bug by itself doesn't introduce duplicate hashes in the tree.  The duplicates
are introduced when the attachments are removed from all leafs of one of these documents (possibly
by deleting the revisions) and a replication is triggered.  At that point the replicator uses
a different write path unaffected by the COUCHDB-885 bug and transfers the full revision paths
to the target.  The target database should have figured out how to merge the various disconnected
branches back together into a single tree at that point, but it failed.  That's the bug we
need to address here.  It appears that the fix is to sort the paths by starting revision before
merging them back together.

After the eventual patch for this ticket is applied users should be able to repair affected
documents by updating any leaf revision.

> Document returned by id, but cannot be found by rev
> ---------------------------------------------------
>
>                 Key: COUCHDB-1163
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1163
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Database Core
>    Affects Versions: 1.0.1, 1.0.2
>            Reporter: James Howe
>            Priority: Blocker
>             Fix For: 1.0.3, 1.1
>
>         Attachments: Couch logging for jira issue
>
>
> Somehow, our cluster has developed the following problem on a handful of documents. Will
post reproduction steps if we find them. All properties have been redacted. All the documents
this affects also have attachments, if that is significant. Once a document is in this situation,
it causes conflict detection, replication and include_docs to behave incorrectly or outright
fail.
> GET /database/4cdee83a118ea1cf3050b1d006144d46 returns
> {
>     "_id": "4cdee83a118ea1cf3050b1d006144d46",
>     "_rev": "10-df4bf65a6104ea240f100c30d3cb245d",
>     "foo": "bar"
> }
> GET /database/4cdee83a118ea1cf3050b1d006144d46?open_revs=all returns
> [
>     {
>         "ok": {
>             "_id": "4cdee83a118ea1cf3050b1d006144d46",
>             "_rev": "10-df4bf65a6104ea240f100c30d3cb245d",
>             "foo": "bar"
>         }
>     },
>     {
>         "ok": {
>             "_id": "4cdee83a118ea1cf3050b1d006144d46",
>             "_rev": "8-eea5e36daee12acd79a127abf36f7720",
>             _deleted: true
>         }
>     },
>     {
>         "ok": {
>             "_id": "4cdee83a118ea1cf3050b1d006144d46",
>             "_rev": "9-2cead1e4c813a4f0d10a9bc4aa28bfda",
>             _deleted: true
>         }
>     },
>     {
>         "ok": {
>             "_id": "4cdee83a118ea1cf3050b1d006144d46",
>             "_rev": "7-c3b44f004660caa496804409089b53d9",
>             _deleted: true
>         }
>     },
>     {
>         "ok": {
>             "_id": "4cdee83a118ea1cf3050b1d006144d46",
>             "_rev": "6-52e978041bb324d19e01a2ac5a243702",
>             _deleted: true
>         }
>     },
>     {
>         "ok": {
>             "_id": "4cdee83a118ea1cf3050b1d006144d46",
>             "_rev": "5-761bf28c6989f0fde41bdd5732c33159",
>             _deleted: true
>         }
>     },
>     {
>         "ok": {
>             "_id": "4cdee83a118ea1cf3050b1d006144d46",
>             "_rev": "4-abb005cf4b2d2dd12880a33af1e7066e",
>             _deleted: true
>         }
>     },
>     {
>         "ok": {
>             "_id": "4cdee83a118ea1cf3050b1d006144d46",
>             "_rev": "3-233e4624e620ec1c8b66f21a051832f8",
>             _deleted: true
>         }
>     },
>     {
>         "ok": {
>             "_id": "4cdee83a118ea1cf3050b1d006144d46",
>             "_rev": "10-55f0cdf9dd95ed230b733a2c826c842c",
>             _deleted: true
>         }
>     },
>     {
>         "ok": {
>             "_id": "4cdee83a118ea1cf3050b1d006144d46",
>             "_rev": "11-264c9d6c249ba2fc9b13df35cb447fd7",
>             _deleted: true
>         }
>     },
>     {
>         "ok": {
>             "_id": "4cdee83a118ea1cf3050b1d006144d46",
>             "_rev": "9-2cead1e4c813a4f0d10a9bc4aa28bfda",
>             _deleted: true
>         }
>     },
>     {
>         "ok": {
>             "_id": "4cdee83a118ea1cf3050b1d006144d46",
>             "_rev": "2-9f2df19059d9a460a12740a63a4d95e9",
>             _deleted: true
>         }
>     }
> ]
> GET /database/4cdee83a118ea1cf3050b1d006144d46?rev=10-df4bf65a6104ea240f100c30d3cb245d
returns
> {
>     "error": "not_found",
>     "reason": "missing"
> }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message