[ 
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

Reply via email to