You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by va...@apache.org on 2023/05/05 22:06:49 UTC

[couchdb] 01/01: Encapsulate MD5 file checksums bits in couch_file

This is an automated email from the ASF dual-hosted git repository.

vatamane pushed a commit to branch encapsulate-md5-bits-in-couch-file
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit 2a90188bd63482b88507a85da09702113ad72d20
Author: Nick Vatamaniuc <va...@gmail.com>
AuthorDate: Fri May 5 18:05:43 2023 -0400

    Encapsulate MD5 file checksums bits in couch_file
    
    Avoid leaking checksumming details into couch_bt_engine.
---
 src/couch/src/couch_bt_engine.erl | 3 +--
 src/couch/src/couch_file.erl      | 5 +++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/couch/src/couch_bt_engine.erl b/src/couch/src/couch_bt_engine.erl
index 0549de566..e5b7749f3 100644
--- a/src/couch/src/couch_bt_engine.erl
+++ b/src/couch/src/couch_bt_engine.erl
@@ -421,8 +421,7 @@ serialize_doc(#st{} = St, #doc{} = Doc) ->
     Body = Compress(Doc#doc.body),
     Atts = Compress(Doc#doc.atts),
     SummaryBin = ?term_to_bin({Body, Atts}),
-    Md5 = couch_hash:md5_hash(SummaryBin),
-    Data = couch_file:assemble_file_chunk(SummaryBin, Md5),
+    Data = couch_file:assemble_file_chunk_and_checksum(SummaryBin),
     % TODO: This is a terrible hack to get around the issues
     %       in COUCHDB-3255. We'll need to come back and figure
     %       out a better approach to handling the case when we
diff --git a/src/couch/src/couch_file.erl b/src/couch/src/couch_file.erl
index ba8d9c42f..514d4e3d9 100644
--- a/src/couch/src/couch_file.erl
+++ b/src/couch/src/couch_file.erl
@@ -40,7 +40,7 @@
 -export([open/1, open/2, close/1, bytes/1, sync/1, truncate/2, set_db_pid/2]).
 -export([pread_term/2, pread_iolist/2, pread_binary/2]).
 -export([append_binary/2]).
--export([append_raw_chunk/2, assemble_file_chunk/2]).
+-export([append_raw_chunk/2, assemble_file_chunk_and_checksum/1]).
 -export([append_term/2, append_term/3]).
 -export([pread_terms/2]).
 -export([append_terms/2, append_terms/3]).
@@ -141,7 +141,8 @@ append_raw_chunk(Fd, Chunk) ->
 assemble_file_chunk(Bin) ->
     [<<0:1/integer, (iolist_size(Bin)):31/integer>>, Bin].
 
-assemble_file_chunk(Bin, Md5) ->
+assemble_file_chunk_and_checksum(Bin) ->
+    Md5 = couch_hash:md5_hash(Bin),
     [<<1:1/integer, (iolist_size(Bin)):31/integer>>, Md5, Bin].
 
 %%----------------------------------------------------------------------