janl commented on issue #745: Replication with attachments never completes, 
{mp_parser_died,noproc} error
URL: https://github.com/apache/couchdb/issues/745#issuecomment-369913191
 
 
   Shorter repro that runs quickly, tests the 1 attachment > 
`max_http_request_size` as well as the 2 attachments < `max_http_request_size` 
but att1 + att2 > `max_http_request_size` cases.
   
   Look for the two instances of `"doc_write_failures":1` in the output.
   
   ```sh
   #!/bin/sh
   
   COUCH=http://127.0.0.1:15984
   INT=http://127.0.0.1:15986
   DBA=$COUCH/db
   DBB=$COUCH/dbb
   # cleanup
   curl -X DELETE $DBA
   curl -X DELETE $DBB
   
   # setup
   curl -X PUT $DBA
   curl -X PUT $DBB
   
   # config
   curl -X PUT $INT/_config/httpd/max_http_request_size -d '"1500"'
   curl -X PUT $INT/_config/replicator/retries_per_request -d '"1"'
   
   # create an att > max_http_request_size, should succeed
   # 3000 here as not to run into _local checkpoint size limits
   
BODY3000=11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
   curl -X PUT http://127.0.0.1:15984/db/doc/att --data-binary "$BODY3000" 
-Hcontent-type:application/octet-stream
   
   # replicate, should suceed, but with one doc_write_failure
   curl -X POST $COUCH/_replicate -d "{\"source\": \"$DBA\", \"target\": 
\"$DBB\"}" -H content-type:application/json
   
   
   
   # create two atts, each < max_http_request_size, but att1+att2 > 
max_http_request_size
   
   
   # cleanup
   curl -X DELETE $DBA
   curl -X DELETE $DBB
   
   # setup
   curl -X PUT $DBA
   curl -X PUT $DBB
   
   
   
BODY1500=11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
   REV=`curl -sX PUT http://127.0.0.1:15984/db/doc1/att --data-binary 
"$BODY1500" -Hcontent-type:application/octet-stream | cut -b 31-64`
   
   curl -X PUT http://127.0.0.1:15984/db/doc1/att2?rev=$REV --data-binary 
"$BODY1500" -Hcontent-type:application/octet-stream
   
   # replicate, should suceed, but with one doc_write_failure
   curl -X POST $COUCH/_replicate -d "{\"source\": \"$DBA\", \"target\": 
\"$DBB\"}" -H content-type:application/json
   ```

----------------------------------------------------------------
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:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to