Uploaded image for project: 'CouchDB'
  1. CouchDB
  2. COUCHDB-1570

Replicator writes corrupt remote checkpoint document on error; breaks replication

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Invalid
    • Affects Version/s: 1.2
    • Fix Version/s: 1.3
    • Component/s: Replication
    • Labels:
      None
    • Environment:

      Mac OS X 10.8.2

      Description

      If a 'push' replication receives error responses from the remote server while PUTting documents, it may write a corrupt checkpoint document to the remote server – its _revisions._ids property is null. Any subsequent attempt to push to that server will cause the replicator to abort with an error when reading that replication document, since it requires _revisions.ids to be an array.

      The only workaround for this, short of deleting the remote database entirely, is to (a) identify the URL of the remote checkpoint document, and (b) delete it from the remote server. Otherwise you will never be able to push to that database again.

      Here's a failed replication attempt:

      $ curl -X POST --user snej :5984/_replicate --header Content-Type:application/json --data '

      {"source":"demo-shopping-attachments","target":"http://localhost:4984/demo-shopping-attachments","create_target":true}

      '

      {"error":"doc_validation","reason":"_revisions.ids isn't a array."}

      Here's the contents of the remote checkpoint document, once I identified its ID:

      $ curl :4984/demo-shopping-attachments/_local/5b913befe682d7bd1fbc24b1ce31cbc5
      {"_id":"_local/5b913befe682d7bd1fbc24b1ce31cbc5","_rev":"0-1","_revisions":

      {"ids":null,"start":0}

      ,"history":[

      {"doc_write_failures":2,"docs_read":2,"docs_written":0,"end_last_seq":207,"end_time":"Sun, 21 Oct 2012 19:40:04 GMT","missing_checked":17,"missing_found":2,"recorded_seq":207,"session_id":"9a24dc37885b5b4e507ea90702b2fecf","start_last_seq":0,"start_time":"Sun, 21 Oct 2012 19:40:04 GMT"}

      ],"replication_id_version":2,"session_id":"9a24dc37885b5b4e507ea90702b2fecf","source_last_seq":207}

        Attachments

          Activity

            People

            • Assignee:
              tilgovi Randall Leeds
              Reporter:
              snej Jens Alfke
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: