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

jmckenzie pushed a commit to branch cassandra-4.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/cassandra-4.0 by this push:
     new 22ec7eee7f Mitigate direct buffer memory OOM on replacements
22ec7eee7f is described below

commit 22ec7eee7f340e8333055b2b10646cfe00cb6a84
Author: Josh McKenzie <jmcken...@apache.org>
AuthorDate: Thu Sep 15 12:40:25 2022 -0400

    Mitigate direct buffer memory OOM on replacements
    
    Patch by Jon Meredith; reviewed by Josh McKenzie for CASSANDRA-17895
    
    Co-authored-by: Jon Meredith <jonmered...@apache.org>
    Co-authored-by: Josh McKenzie <jmcken...@apache.org>
---
 CHANGES.txt                                                         | 1 +
 .../cassandra/io/sstable/format/big/BigTableZeroCopyWriter.java     | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 22bebd6e88..664791f43a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 4.0.7
+ * Mitigate direct buffer memory OOM on replacements (CASSANDRA-17895)
  * Fix repair failure on assertion if two peers have overlapping mismatching 
ranges (CASSANDRA-17900)
  * Better handle null state in Gossip schema migration to avoid NPE 
(CASSANDRA-17864)
  * HintedHandoffAddRemoveNodesTest now accounts for the fact that 
StorageMetrics.totalHints is not updated synchronously w/ writes 
(CASSANDRA-16679)
diff --git 
a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableZeroCopyWriter.java
 
b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableZeroCopyWriter.java
index f05ea94cb7..2564e966d4 100644
--- 
a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableZeroCopyWriter.java
+++ 
b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableZeroCopyWriter.java
@@ -114,7 +114,7 @@ public class BigTableZeroCopyWriter extends SSTable 
implements SSTableMultiWrite
                 out.write(buff, 0, count);
                 bytesRead += count;
             }
-            out.sync();
+            out.sync(); // finish will also call sync(). Leaving here to get 
stuff flushed as early as possible
         }
         catch (IOException e)
         {
@@ -138,6 +138,10 @@ public class BigTableZeroCopyWriter extends SSTable 
implements SSTableMultiWrite
     public Collection<SSTableReader> finish(boolean openResult)
     {
         setOpenResult(openResult);
+
+        for (SequentialWriter writer : componentWriters.values())
+            writer.finish();
+
         return finished();
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to