couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul Joseph Davis (JIRA)" <j...@apache.org>
Subject [jira] Commented: (COUCHDB-800) Problem when writing larger than 4kb file headers
Date Mon, 27 Sep 2010 15:40:33 GMT

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

Paul Joseph Davis commented on COUCHDB-800:
-------------------------------------------

I do believe you're correct. Think you could make a failing test case and/or patch to show
the behaviour?

> Problem when writing larger than 4kb file headers
> -------------------------------------------------
>
>                 Key: COUCHDB-800
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-800
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Database Core
>    Affects Versions: 0.11
>            Reporter: Damien Katz
>            Assignee: Damien Katz
>             Fix For: 0.11.1, 0.12
>
>
> From Andrey Somov:
> Hi,
> while reading the CouchDB source I found a question in couch_file.erl,
> I am not sure whether it is a bug or not.
> Lines 297-311:
> handle_call({write_header, Bin}, _From, #file{fd=Fd, eof=Pos}=File) ->
>    BinSize = size(Bin),
>    case Pos rem ?SIZE_BLOCK of
>    0 ->
>        Padding = <<>>;
>    BlockOffset ->
>        Padding = <<0:(8*(?SIZE_BLOCK-BlockOffset))>>
>    end,
>    FinalBin = [Padding, <<1, BinSize:32/integer>> | make_blocks(1, [Bin])],
>    case file:write(Fd, FinalBin) of
>    ok ->
>        {reply, ok, File#file{eof=Pos+iolist_size(FinalBin)}};
>    Error ->
>        {reply, Error, File}
>    end;
> Because <<1, BinSize:32/integer>> occupies 5 bytes make_blocks() shall
> use offset=5, but the offset is only 1.
> (it should be make_blocks(5, [Bin]))
> Since the header is smaller then 4k there is no difference and it
> works (the tests succeed with both 1 and 5). But it makes it more
> difficult to understand the code for those who study the source to
> understand how it works.
> -
> Thank you,
> Andrey

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


Mime
View raw message