CouchDB
  1. CouchDB
  2. COUCHDB-1415

Re-insering a document silently fails after compact is executed

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 1.1.1
    • Fix Version/s: None
    • Component/s: Database Core
    • Labels:
      None
    • Environment:

      Tested on multiple linux platforms

      Description

      When a document is re-inserted after a compact operation using the same contents it was originally created, the insert operation is silently ignored, leaving the client unaware of the fact it's document is not available in the database.

      Can be reproduced using the following sequence of steps:

      alias curl='curl -H "Content-Type: application/json"'
      url="http://localhost:5984/database"

      1 curl -X PUT $url
      2 curl -X POST $url -d '

      {"_id": "bug", "key": "value"}

      '
      3 curl -X DELETE "$url/bug?rev=1-59414e77c768bc202142ac82c2f129de"
      4 curl -X POST "$url/_compact"
      5 curl -X POST $url -d '

      {"_id": "bug", "key": "value"}

      '
      6 curl -X GET "$url/bug"
      (bug here)

      1

      {"ok":true}

      201
      2 [

      {"ok":true,"id":"bug","rev":"1-59414e77c768bc202142ac82c2f129de"}

      ]
      201
      3

      {"ok":true,"id":"bug","rev":"2-9b2e3bcc3752a3a952a3570b2ed4d27e"}

      200
      4

      {"ok":true}

      202
      5 [

      {"ok":true,"id":"bug","rev":"1-59414e77c768bc202142ac82c2f129de"}

      ]
      201
      6

      {"error":"not_found","reason":"deleted"}

      404

      CouchDB shouldn't report "ok" on step 5 and then go on to claim that the doc is deleted. Also, it seems to work on second try:

      7 curl -X POST $url -d '

      {"_id": "bug", "key": "value"}

      '
      8 curl -X GET "$url/bug"

      7

      {"ok":true,"id":"bug","rev":"3-674f864b73df1c80925e48436e21d550"}

      201
      8

      {"_id":"bug","_rev":"3-674f864b73df1c80925e48436e21d550","key":"value"}

      200

      1. patch
        27 kB
        Benjamin Bastian

        Issue Links

          Activity

          Viktor Szabo created issue -
          Dave Cottlehuber made changes -
          Field Original Value New Value
          Fix Version/s 1.3 [ 12318350 ]
          Robert Newson made changes -
          Assignee Paul Joseph Davis [ paul.joseph.davis ]
          Jan Lehnardt made changes -
          Fix Version/s 1.3 [ 12318350 ]
          Robert Newson made changes -
          Link This issue is duplicated by COUCHDB-1770 [ COUCHDB-1770 ]
          Alexander Shorin made changes -
          Link This issue is duplicated by COUCHDB-1436 [ COUCHDB-1436 ]
          Robert Newson made changes -
          Link This issue is duplicated by COUCHDB-1905 [ COUCHDB-1905 ]
          Benjamin Bastian made changes -
          Attachment patch [ 12639076 ]

            People

            • Assignee:
              Paul Joseph Davis
              Reporter:
              Viktor Szabo
            • Votes:
              9 Vote for this issue
              Watchers:
              14 Start watching this issue

              Dates

              • Created:
                Updated:

                Development