couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Clare Walsh (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COUCHDB-885) Attachments introduce conflicts after replication.
Date Tue, 17 May 2011 16:11:48 GMT

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

Clare Walsh commented on COUCHDB-885:
-------------------------------------

Have you tried that script against trunk?
Running trunk I can't reproduce the error using push, pull, local, remote, single or multiple
instances, or combos of those as described above. 
(Haven't run the script as the steps seem to be exactly as Filipe described).

Though we can reproduce the error on 1.0.2 using almost any of the sets of described steps
so the affect versions should definitely be updated to reflect this.

> Attachments introduce conflicts after replication.
> --------------------------------------------------
>
>                 Key: COUCHDB-885
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-885
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Database Core
>    Affects Versions: 1.0.1
>         Environment: Mac OSX, Windows XP, Windows 7
>            Reporter: Nikolai Teofilov
>             Fix For: 1.2
>
>         Attachments: COUCHDB-885.sh
>
>
> Step to reproduce the bug:
> 1.  Make database "test" on a remote couchdb server that reside on a different machine!

> 2.  Create new document:  "http://remote-server:5984/test/doc"
> 3.  Create database "replica"  on the local couchdb  server.
> 4.  Trigger pull replication  http://remote-server:5984/test -> http://localhost:5984/replica
> 5.  Attach a file to the replicated document on the local couchdb server.
> 6.  Trigger push replication http://localhost:5984/replica  -> http://remote-server:5984/test
> The document in the test  database shows one conflict. If instead attachment the document
is updated with a new field after the replication no conflict.
> The same sequence shows no conflicts on CouchDB 0.11.
> ************ test.sh ****************
> #!/usr/bin/env bash
> LOCAL="http://localhost:5984"
> REMOTE="http://koleto.couchone.com"
> echo "====================================================="
> echo "This sequence create a conflict after the replication"
> echo "====================================================="
> echo "Cleanup"
> curl --silent -X DELETE $LOCAL/replica
> curl --silent -X DELETE $REMOTE/test
> echo "Create database:" $REMOTE/test
> curl --silent -X PUT $REMOTE/test
> echo "Create empty document:"
> curl --silent -d '{}' -X PUT $REMOTE/test/doc
> echo "Create local databse:" $LOCAL/replica
> curl --silent -X PUT $LOCAL/replica
> echo "Pull replication:" REMOTE/test "->" $LOCAL/replica
> curl --silent -X POST -d "{\"source\":\"$REMOTE/test\",\"target\":\"$LOCAL/replica\"}"
-H 'Content-Type: application/json' $LOCAL/_replicate
> echo "Put an attachment to the document:"
> echo "foobar!" | curl --silent --upload-file - -X PUT "$LOCAL/replica/doc/foo.txt?rev=1-967a00dff5e02add41819138abb3284d"
> echo "Push replication:" $LOCAL/replica "->" $REMOTE/test
> curl --silent -X POST -d "{\"source\":\"$LOCAL/replica\",\"target\":\"$REMOTE/test\"}"
-H 'Content-Type: application/json' $LOCAL/_replicate
> echo '############## Get one conflic #####################'
> curl --silent -X GET $REMOTE/test/doc?conflicts=true
> echo "====================================================="
> echo "The same sequence with adding a field to the document"
> echo "====================================================="
> echo "Cleanup"
> curl --silent -X DELETE $LOCAL/replica
> curl --silent -X DELETE $REMOTE/test
> echo "Create database:" $REMOTE/test
> curl --silent -X PUT $REMOTE/test
> echo "Create empty document:"
> curl --silent -d '{}' -X PUT $REMOTE/test/doc
> echo "Create local databse:" $LOCAL/replica
> curl --silent -X PUT $LOCAL/replica
> echo "Pull replication:" REMOTE/test "->" $LOCAL/replica
> curl --silent -X POST -d "{\"source\":\"$REMOTE/test\",\"target\":\"$LOCAL/replica\"}"
-H 'Content-Type: application/json' $LOCAL/_replicate
> echo "Adding a new field:"
> curl --silent -d '{"foo":"bar" , "_rev" : "1-967a00dff5e02add41819138abb3284d" }' -X
PUT $LOCAL/replica/doc?rev=1-967a00dff5e02add41819138abb3284d
> echo "Push replication:" $LOCAL/replica "->" $REMOTE/test
> curl --silent -X POST -d "{\"source\":\"$LOCAL/replica\",\"target\":\"$REMOTE/test\"}"
-H 'Content-Type: application/json' $LOCAL/_replicate
> echo '###### No conflicts after the replication ########'
> curl --silent -X GET $REMOTE/test/doc?conflicts=true
>  

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

Mime
View raw message