couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Filipe Manana (JIRA)" <>
Subject [jira] Commented: (COUCHDB-930) Locally replicated compressed attachements have wrong disk_len
Date Mon, 01 Nov 2010 23:32:25 GMT


Filipe Manana commented on COUCHDB-930:

Hi Juuso,
Thanks for the patch.

This is not exactly a bug.
CouchDB accepts attachments already compressed (gzip). When it receives one, since it cannot
guess what its uncompressed length is (doing uncompression just to find that out is very expensive)
it sets both #att.disk_len and #att.att_len to the same value (compressed length).

For this particular case, local to local replication, we can probably just grab the source
#att.disk_len and copy it to the destination #att.disk_len.

I'll try the patch by the end of the week.

> Locally replicated compressed attachements have wrong disk_len
> --------------------------------------------------------------
>                 Key: COUCHDB-930
>                 URL:
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Replication
>    Affects Versions: 1.0.1
>         Environment: Ubuntu 10.04, Erlang R13B3, couchdb svn rev 1029390
> Debian squeeze/sid, Erlang R14A2, couchdb 1.0.1
>            Reporter: Juuso Väänänen
>            Priority: Minor
>         Attachments: fix-local-replication.patch
> When replicating document locally compressed attached file length is shown wrongly on
replication target. Also Content-Length -header shows zero value when requesting replicated
> Source:
> {"_id":"c68f75e26cc62c81f0bab14441000141","_rev":"4-89b0b48063ae1f338321af8d6b4e2eeb","_attachments":{"md5.patch":{"content_type":"text/x-patch","revpos":2,"length":1259,"stub":true,"encoding":"gzip","encoded_length":534}}}
> Replicated:
> {"_id":"c68f75e26cc62c81f0bab14441000141","_rev":"4-89b0b48063ae1f338321af8d6b4e2eeb","_attachments":{"md5.patch":{"content_type":"text/x-patch","revpos":2,"length":534,"stub":true,"encoding":"gzip","encoded_length":534}}}
> Steps to produce:
> 1. create databases a and b
> 2. create text-document with attachement on db a
> 3. start local replication a to b
> 4. request document's attachement on db b

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message