You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by GitBox <gi...@apache.org> on 2018/10/16 08:41:04 UTC

[GitHub] bravier edited a comment on issue #1418: BUG: Recreating deleted document can break replication when VDU function is active

bravier edited a comment on issue #1418: BUG: Recreating deleted document can break replication when VDU function is active
URL: https://github.com/apache/couchdb/issues/1418#issuecomment-430149024
 
 
   Hello,
   
   We are facing a similar issue as the one described by @ondra-novak on the `_users` database.
   
   ## Steps to reproduce
   Let `A` and `B` be 2 CouchDB servers.
   
   - Create the `_users` database _(if it does not exist yet)_
     _Request_
     ```shell
     curl -X PUT http://$A:5984/_users
     ```
     _Response_
     ```json
     {
       "ok": true
     }
     ```
   - Create a user document
     _Request_
     ```shell
     curl -X PUT http://$A:5984/_users/org.couchdb.user:email@example.com -d '{"name": "email@example.com", "type": "user", "roles": [], "password": "password"}'
     ```
     _Response_
     ```json
     {
       "ok": true,
       "id": "org.couchdb.user:email@example.com",
       "rev": "1-19fa61446d76bcb9131a1b65c03b4c1c"
     }
     ```
   - Replicate `_users` from `A` to `B`
     _Request_
     ```shell
     curl -X POST http://$A:5984/_replicate \
      -d '{"source":"http://$A:5984/_users","target":"http://$B:5984/_users","create_target":true}' \
      -H "Content-Type: application/json"
     ```
     _Response_
     ```json
     {
       "ok": true,
       "session_id": "...",
       "..."
     }
   - Delete the user document from `A`
     _Request_
     ```shell
     curl -X DELETE http://$A:5984/_users/org.couchdb.user:email@example.com?rev=1-19fa61446d76bcb9131a1b65c03b4c1c
     ```
     _Response_
     ```json
     {
       "ok": true,
       "id": "org.couchdb.user:email@example.com",
       "rev": "2-43b4189bc429587a529beba79a037cad"
     }
     ```
   - Replicate `_users` from `A` to `B` once again
     _Request_
     ```shell
     curl -X POST http://$A:5984/_replicate \
      -d '{"source":"http://$A:5984/_users","target":"http://$B:5984/_users","create_target":true}' \
      -H "Content-Type: application/json"
     ```
     _Response_
     ```json
     {
       "ok": true,
       "session_id": "...",
       "..."
     }
   - Re-create the same user document again on `A`
     _Request_
     ```shell
     curl -X PUT http://$A:5984/_users/org.couchdb.user:email@example.com -d '{"name": "email@example.com", "type": "user", "roles": [], "password": "password"}'
     ```
     _Response_
     ```json
     {
       "ok": true,
       "id": "org.couchdb.user:email@example.com",
       "rev": "3-1a2c0e3876f314e08d80b1d236481a2d"
     }
     ```
   - Replicate `_users` from `A` to `B`
     _Request_
     ```shell
     curl -X POST http://$A:5984/_replicate \
      -d '{"source":"http://$A:5984/_users","target":"http://$B:5984/_users","create_target":true}' \
      -H "Content-Type: application/json"
     ```
     _Response_
     ```json
     {
       "ok": true,
       "session_id": "...",
       "..."
     }
     ```
     
   ## Expected behavior
   The user document might be replicated from `A` to `B` and the number of documents on `A/_users` and `B/_users` might be equal to 2 (`_design/_auth` document + our user).
     
   ## Current behavior
   The document is not replicated and the number of documents on `A/_users` is equal to 2 but the number of documents on `B/_users` is equal to 1 (`_design/_auth` only).
   
   ## Environment
   - Server `A`
     - OS: Fedora 28
     - CouchDB: 2.1.2
   - Server `B`
     - OS: CentOS 7.5.1804
     - CouchDB: 2.1.2
   
   This issue is quite impacting for us as it silently breaks replication and can lead to data loss.
   
   Thanks in advance for helping us on this bug.
   
   Do not hesitate to ask me for more infos if needed.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services