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

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

commit eeec360e757c191c517ddb51154c7c4f8d283d88
Merge: 0218d1f 85c202d
Author: Marcus Eriksson <marc...@apache.org>
AuthorDate: Wed Feb 16 10:14:41 2022 +0100

    Merge branch 'cassandra-3.0' into cassandra-3.11

 CHANGES.txt                                        |  2 +
 .../org/apache/cassandra/db/lifecycle/LogFile.java | 24 +++++----
 .../cassandra/db/lifecycle/LogTransactionTest.java | 60 ++++++++++++++++++----
 3 files changed, 65 insertions(+), 21 deletions(-)

diff --cc CHANGES.txt
index c166202,527450d..402048f
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,19 -1,7 +1,21 @@@
 -3.0.27
 +3.11.13
++Merged from 3.0:
+  * Lazy transaction log replica creation allows incorrect replica content 
divergence during anticompaction (CASSANDRA-17273)
  
 -3.0.26
 +
 +3.11.12
 + * Upgrade snakeyaml to 1.26 in 3.11 (CASSANDRA=17028)
 + * Add key validation to ssstablescrub (CASSANDRA-16969)
 + * Update Jackson from 2.9.10 to 2.12.5 (CASSANDRA-16851)
 + * Include SASI components to snapshots (CASSANDRA-15134)
 + * Make assassinate more resilient to missing tokens (CASSANDRA-16847)
 + * Exclude Jackson 1.x transitive dependency of hadoop* provided dependencies 
(CASSANDRA-16854)
 + * Validate SASI tokenizer options before adding index to schema 
(CASSANDRA-15135)
 + * Fixup scrub output when no data post-scrub and clear up old use of row, 
which really means partition (CASSANDRA-16835)
 + * Fix ant-junit dependency issue (CASSANDRA-16827)
 + * Reduce thread contention in CommitLogSegment and HintsBuffer 
(CASSANDRA-16072)
 + * Avoid sending CDC column if not enabled (CASSANDRA-16770)
 +Merged from 3.0:
   * Fix conversion from megabits to bytes in streaming rate limiter 
(CASSANDRA-17243)
   * Upgrade logback to 1.2.9 (CASSANDRA-17204)
   * Avoid race in AbstractReplicationStrategy endpoint caching 
(CASSANDRA-16673)
diff --cc src/java/org/apache/cassandra/db/lifecycle/LogFile.java
index 39bfaa9,42d81ca..3550d66
--- a/src/java/org/apache/cassandra/db/lifecycle/LogFile.java
+++ b/src/java/org/apache/cassandra/db/lifecycle/LogFile.java
@@@ -345,11 -341,15 +342,15 @@@ final class LogFile implements AutoClos
      private LogRecord makeRecord(Type type, SSTable table, LogRecord record)
      {
          assert type == Type.ADD || type == Type.REMOVE;
+         maybeCreateReplica(table);
+         return record.asType(type);
+     }
  
-         File directory = table.descriptor.directory;
+     private void maybeCreateReplica(SSTable sstable)
+     {
 -        File folder = sstable.descriptor.directory;
 -        String fileName = getFileName(folder);
 -        replicas.maybeCreateReplica(folder, fileName, onDiskRecords);
++        File directory = sstable.descriptor.directory;
 +        String fileName = StringUtils.join(directory, File.separator, 
getFileName());
-         replicas.maybeCreateReplica(directory, fileName, records);
-         return record.asType(type);
++        replicas.maybeCreateReplica(directory, fileName, onDiskRecords);
      }
  
      void addRecord(LogRecord record)
diff --cc test/unit/org/apache/cassandra/db/lifecycle/LogTransactionTest.java
index c727241,6fb2334..09c75e1
--- a/test/unit/org/apache/cassandra/db/lifecycle/LogTransactionTest.java
+++ b/test/unit/org/apache/cassandra/db/lifecycle/LogTransactionTest.java
@@@ -44,15 -44,18 +44,16 @@@ import org.apache.cassandra.MockSchema
  import org.apache.cassandra.db.ColumnFamilyStore;
  import org.apache.cassandra.db.Directories;
  import org.apache.cassandra.db.SerializationHeader;
- import org.apache.cassandra.db.compaction.*;
- import org.apache.cassandra.io.sstable.*;
+ import org.apache.cassandra.db.compaction.OperationType;
+ import org.apache.cassandra.io.sstable.Component;
+ import org.apache.cassandra.io.sstable.Descriptor;
 +import org.apache.cassandra.io.sstable.format.SSTableFormat;
  import org.apache.cassandra.io.sstable.format.SSTableReader;
  import org.apache.cassandra.io.sstable.metadata.MetadataCollector;
  import org.apache.cassandra.io.sstable.metadata.MetadataType;
  import org.apache.cassandra.io.sstable.metadata.StatsMetadata;
- import org.apache.cassandra.io.util.FileUtils;
 -import org.apache.cassandra.io.util.BufferedSegmentedFile;
 -import org.apache.cassandra.io.util.ChannelProxy;
 +import org.apache.cassandra.io.util.FileHandle;
+ import org.apache.cassandra.io.util.FileUtils;
 -import org.apache.cassandra.io.util.RandomAccessReader;
 -import org.apache.cassandra.io.util.SegmentedFile;
  import org.apache.cassandra.utils.AlwaysPresentFilter;
  import org.apache.cassandra.utils.concurrent.AbstractTransactionalTest;
  import org.apache.cassandra.utils.concurrent.Transactional;

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

Reply via email to