You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by si...@apache.org on 2018/06/07 06:20:45 UTC

[bookkeeper] branch master updated: [BOOKIE] [DBLEDGERSTORAGE] fix illegal reference count exception on filling read cache

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

sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 4764c76  [BOOKIE] [DBLEDGERSTORAGE] fix illegal reference count exception on filling read cache
4764c76 is described below

commit 4764c7637ecdcadfaddac74244d5c78449589c07
Author: Sijie Guo <si...@apache.org>
AuthorDate: Wed Jun 6 23:20:38 2018 -0700

    [BOOKIE] [DBLEDGERSTORAGE] fix illegal reference count exception on filling read cache
    
    Descriptions of the changes in this PR:
    
    *Problem*
    
    ByteBuf is released at a finally block. DbLedgerStorage doesn't have to release it on return. If it does so, that will cause
    double-release and it will throw IllegalReferenceCountException.
    
    *Solution*
    
    Remove `ByteBuf.release` at return.
    
    Related Issue: #1487
    
    Author: Sijie Guo <si...@apache.org>
    
    Reviewers: Jia Zhai <None>, Matteo Merli <mm...@apache.org>
    
    This closes #1488 from sijie/fix_double_release_on_db_ledgerstorage
---
 .../bookkeeper/bookie/storage/ldb/SingleDirectoryDbLedgerStorage.java    | 1 -
 1 file changed, 1 deletion(-)

diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/SingleDirectoryDbLedgerStorage.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/SingleDirectoryDbLedgerStorage.java
index b71c55c..e31b44e 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/SingleDirectoryDbLedgerStorage.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/SingleDirectoryDbLedgerStorage.java
@@ -521,7 +521,6 @@ public class SingleDirectoryDbLedgerStorage implements CompactableLedgerStorage
 
                     if (currentEntryLedgerId != orginalLedgerId) {
                         // Found an entry belonging to a different ledger, stopping read-ahead
-                        entry.release();
                         return;
                     }
 

-- 
To stop receiving notification emails like this one, please contact
sijie@apache.org.