Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 fb2940050 -> 66f1aaf88 refs/heads/cassandra-3.0 e9b7a0f25 -> 0fe82be83 refs/heads/cassandra-3.11 1cafc3ccd -> 66e214592 refs/heads/cassandra-3.X ddefb1d89 -> c9ead4826 refs/heads/trunk cd5aacc83 -> 402f8e006
Temporarily fix bug that creates commit log when running offline tools patch by yukim; reviewed by thobbs for CASSANDRA-8616 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/66f1aaf8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/66f1aaf8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/66f1aaf8 Branch: refs/heads/cassandra-2.2 Commit: 66f1aaf88d3cde5c52b13d71d3326da5eda16fb1 Parents: fb29400 Author: Yuki Morishita <yu...@apache.org> Authored: Thu Feb 11 19:06:27 2016 -0600 Committer: Yuki Morishita <yu...@apache.org> Committed: Tue Dec 13 15:51:37 2016 -0800 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../cassandra/config/DatabaseDescriptor.java | 12 +++++++ .../apache/cassandra/db/ColumnFamilyStore.java | 10 ++++-- .../cassandra/db/compaction/CompactionTask.java | 22 +++++++----- .../apache/cassandra/db/lifecycle/Tracker.java | 36 ++++++++++++-------- .../io/sstable/format/SSTableReader.java | 8 +++-- .../cassandra/service/CassandraDaemon.java | 1 + .../service/EmbeddedCassandraService.java | 2 ++ .../io/sstable/CQLSSTableWriterLongTest.java | 2 ++ .../unit/org/apache/cassandra/SchemaLoader.java | 1 + .../config/DatabaseDescriptorTest.java | 6 ++++ .../apache/cassandra/db/CounterCellTest.java | 3 ++ .../org/apache/cassandra/db/NativeCellTest.java | 3 ++ .../apache/cassandra/db/SystemKeyspaceTest.java | 2 ++ .../db/context/CounterContextTest.java | 8 +++++ .../db/lifecycle/LifecycleTransactionTest.java | 5 ++- .../cassandra/db/lifecycle/TrackerTest.java | 7 ++-- .../cassandra/dht/StreamStateStoreTest.java | 7 ++++ .../cassandra/gms/FailureDetectorTest.java | 2 ++ .../org/apache/cassandra/gms/GossiperTest.java | 5 +++ .../io/sstable/CQLSSTableWriterTest.java | 2 ++ .../cassandra/locator/CloudstackSnitchTest.java | 2 ++ .../apache/cassandra/locator/EC2SnitchTest.java | 2 ++ .../locator/GoogleCloudSnitchTest.java | 2 ++ .../service/StorageServiceServerTest.java | 1 + 25 files changed, 118 insertions(+), 34 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index f02350d..8cff097 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.9 + * Temporarily fix bug that creates commit log when running offline tools (CASSANDRA-8616) * Reduce granuality of OpOrder.Group during index build (CASSANDRA-12796) * Test bind parameters and unset parameters in InsertUpdateIfConditionTest (CASSANDRA-12980) * Do not specify local address on outgoing connection when listen_on_broadcast_address is set (CASSANDRA-12673) http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/src/java/org/apache/cassandra/config/DatabaseDescriptor.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index a3fb79b..35debd0 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -102,6 +102,18 @@ public class DatabaseDescriptor private static Comparator<InetAddress> localComparator; private static boolean hasLoggedConfig; + private static boolean daemonInitialized; + + public static boolean isDaemonInitialized() + { + return daemonInitialized; + } + + public static void setDaemonInitialized() + { + daemonInitialized = true; + } + public static void forceStaticInitialization() {} static { http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java index c6b69dc..4bc46d0 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -388,9 +388,13 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean logger.info("Initializing {}.{}", keyspace.getName(), name); - // scan for sstables corresponding to this cf and load them - data = new Tracker(this, loadSSTables); + // Create Memtable only on online + Memtable initialMemtable = null; + if (DatabaseDescriptor.isDaemonInitialized()) + initialMemtable = new Memtable(new AtomicReference<>(CommitLog.instance.getContext()), this); + data = new Tracker(initialMemtable, loadSSTables); + // scan for sstables corresponding to this cf and load them if (data.loadsstables) { Directories.SSTableLister sstableFiles = directories.sstableLister().skipTemporary(true); @@ -2754,7 +2758,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean { public Void call() { - cfs.data.reset(); + cfs.data.reset(new Memtable(new AtomicReference<>(ReplayPosition.NONE), cfs)); cfs.getCompactionStrategy().shutdown(); cfs.getCompactionStrategy().startup(); return null; http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/src/java/org/apache/cassandra/db/compaction/CompactionTask.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionTask.java b/src/java/org/apache/cassandra/db/compaction/CompactionTask.java index 575c326..20d3dc0 100644 --- a/src/java/org/apache/cassandra/db/compaction/CompactionTask.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionTask.java @@ -127,7 +127,7 @@ public class CompactionTask extends AbstractCompactionTask } }); - UUID taskId = SystemKeyspace.startCompaction(cfs, transaction.originals()); + UUID taskId = offline ? null : SystemKeyspace.startCompaction(cfs, transaction.originals()); // new sstables from flush can be added during a compaction, but only the compaction can remove them, // so in our single-threaded compaction world this is a valid way of determining if we're compacting @@ -218,16 +218,20 @@ public class CompactionTask extends AbstractCompactionTask for (SSTableReader reader : newSStables) newSSTableNames.append(reader.descriptor.baseFilename()).append(","); - double mbps = dTime > 0 ? (double) endsize / (1024 * 1024) / ((double) dTime / 1000) : 0; - long totalSourceRows = 0; - String mergeSummary = updateCompactionHistory(cfs.keyspace.getName(), cfs.getColumnFamilyName(), ci, startsize, endsize); - logger.debug(String.format("Compacted (%s) %d sstables to [%s] to level=%d. %,d bytes to %,d (~%d%% of original) in %,dms = %fMB/s. %,d total partitions merged to %,d. Partition merge counts were {%s}", - taskIdLoggerMsg, transaction.originals().size(), newSSTableNames.toString(), getLevel(), startsize, endsize, (int) (ratio * 100), dTime, mbps, totalSourceRows, totalKeysWritten, mergeSummary)); - logger.trace(String.format("CF Total Bytes Compacted: %,d", CompactionTask.addToTotalBytesCompacted(endsize))); - logger.trace("Actual #keys: {}, Estimated #keys:{}, Err%: {}", totalKeysWritten, estimatedKeys, ((double)(totalKeysWritten - estimatedKeys)/totalKeysWritten)); - if (offline) + { Refs.release(Refs.selfRefs(newSStables)); + } + else + { + double mbps = dTime > 0 ? (double) endsize / (1024 * 1024) / ((double) dTime / 1000) : 0; + long totalSourceRows = 0; + String mergeSummary = updateCompactionHistory(cfs.keyspace.getName(), cfs.getColumnFamilyName(), ci, startsize, endsize); + logger.debug(String.format("Compacted (%s) %d sstables to [%s] to level=%d. %,d bytes to %,d (~%d%% of original) in %,dms = %fMB/s. %,d total partitions merged to %,d. Partition merge counts were {%s}", + taskIdLoggerMsg, transaction.originals().size(), newSSTableNames.toString(), getLevel(), startsize, endsize, (int) (ratio * 100), dTime, mbps, totalSourceRows, totalKeysWritten, mergeSummary)); + logger.trace(String.format("CF Total Bytes Compacted: %,d", CompactionTask.addToTotalBytesCompacted(endsize))); + logger.trace("Actual #keys: {}, Estimated #keys:{}, Err%: {}", totalKeysWritten, estimatedKeys, ((double) (totalKeysWritten - estimatedKeys) / totalKeysWritten)); + } } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/src/java/org/apache/cassandra/db/lifecycle/Tracker.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/lifecycle/Tracker.java b/src/java/org/apache/cassandra/db/lifecycle/Tracker.java index 5d5701f..e77ef78 100644 --- a/src/java/org/apache/cassandra/db/lifecycle/Tracker.java +++ b/src/java/org/apache/cassandra/db/lifecycle/Tracker.java @@ -31,7 +31,6 @@ import com.google.common.collect.*; import org.apache.cassandra.db.ColumnFamilyStore; import org.apache.cassandra.db.Directories; import org.apache.cassandra.db.Memtable; -import org.apache.cassandra.db.commitlog.CommitLog; import org.apache.cassandra.db.commitlog.ReplayPosition; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,6 +51,7 @@ import static com.google.common.base.Predicates.not; import static com.google.common.collect.ImmutableSet.copyOf; import static com.google.common.collect.Iterables.filter; import static java.util.Collections.singleton; +import static java.util.Collections.singletonList; import static org.apache.cassandra.db.lifecycle.Helpers.*; import static org.apache.cassandra.db.lifecycle.View.permitCompacting; import static org.apache.cassandra.db.lifecycle.View.updateCompacting; @@ -61,21 +61,29 @@ import static org.apache.cassandra.utils.Throwables.merge; import static org.apache.cassandra.utils.concurrent.Refs.release; import static org.apache.cassandra.utils.concurrent.Refs.selfRefs; +/** + * Tracker tracks live {@link View} of data store for a table. + */ public class Tracker { private static final Logger logger = LoggerFactory.getLogger(Tracker.class); - public final Collection<INotificationConsumer> subscribers = new CopyOnWriteArrayList<>(); + private final Collection<INotificationConsumer> subscribers = new CopyOnWriteArrayList<>(); + public final ColumnFamilyStore cfstore; final AtomicReference<View> view; public final boolean loadsstables; - public Tracker(ColumnFamilyStore cfstore, boolean loadsstables) + /** + * @param memtable Initial Memtable. Can be null. + * @param loadsstables true to indicate to load SSTables (TODO: remove as this is only accessed from 2i) + */ + public Tracker(Memtable memtable, boolean loadsstables) { - this.cfstore = cfstore; + this.cfstore = memtable != null ? memtable.cfs : null; this.view = new AtomicReference<>(); this.loadsstables = loadsstables; - this.reset(); + this.reset(memtable); } public LifecycleTransaction tryModify(SSTableReader sstable, OperationType operationType) @@ -196,16 +204,14 @@ public class Tracker /** (Re)initializes the tracker, purging all references. */ @VisibleForTesting - public void reset() + public void reset(Memtable memtable) { - view.set(new View( - !isDummy() ? ImmutableList.of(new Memtable(new AtomicReference<>(CommitLog.instance.getContext()), cfstore)) - : ImmutableList.<Memtable>of(), - ImmutableList.<Memtable>of(), - Collections.<SSTableReader, SSTableReader>emptyMap(), - Collections.<SSTableReader>emptySet(), - Collections.<SSTableReader>emptySet(), - SSTableIntervalTree.empty())); + view.set(new View(memtable != null ? singletonList(memtable) : Collections.<Memtable>emptyList(), + Collections.<Memtable>emptyList(), + Collections.<SSTableReader, SSTableReader>emptyMap(), + Collections.<SSTableReader>emptySet(), + Collections.<SSTableReader>emptySet(), + SSTableIntervalTree.empty())); } public Throwable dropSSTablesIfInvalid(Throwable accumulate) @@ -473,7 +479,7 @@ public class Tracker public boolean isDummy() { - return cfstore == null; + return cfstore == null || !DatabaseDescriptor.isDaemonInitialized(); } public void subscribe(INotificationConsumer consumer) http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java index fddf058..ba060d4 100644 --- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java @@ -2246,7 +2246,7 @@ public abstract class SSTableReader extends SSTable implements SelfRefCounted<SS // Don't track read rates for tables in the system keyspace and don't bother trying to load or persist // the read meter when in client mode. - if (SystemKeyspace.NAME.equals(desc.ksname)) + if (SystemKeyspace.NAME.equals(desc.ksname) || !DatabaseDescriptor.isDaemonInitialized()) { readMeter = null; readMeterSyncFuture = null; @@ -2272,9 +2272,11 @@ public abstract class SSTableReader extends SSTable implements SelfRefCounted<SS { lookup.remove(desc); if (readMeterSyncFuture != null) + { readMeterSyncFuture.cancel(true); - if (isCompacted.get()) - SystemKeyspace.clearSSTableReadMeter(desc.ksname, desc.cfname, desc.generation); + if (isCompacted.get()) + SystemKeyspace.clearSSTableReadMeter(desc.ksname, desc.cfname, desc.generation); + } // don't ideally want to dropPageCache for the file until all instances have been released CLibrary.trySkipCache(desc.filenameFor(Component.DATA), 0, 0); CLibrary.trySkipCache(desc.filenameFor(Component.PRIMARY_INDEX), 0, 0); http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/src/java/org/apache/cassandra/service/CassandraDaemon.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java b/src/java/org/apache/cassandra/service/CassandraDaemon.java index cf5f3c2..35e990f 100644 --- a/src/java/org/apache/cassandra/service/CassandraDaemon.java +++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java @@ -505,6 +505,7 @@ public class CassandraDaemon try { DatabaseDescriptor.forceStaticInitialization(); + DatabaseDescriptor.setDaemonInitialized(); } catch (ExceptionInInitializerError e) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java b/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java index 659d851..6c154cd 100644 --- a/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java +++ b/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java @@ -19,6 +19,7 @@ package org.apache.cassandra.service; import java.io.IOException; +import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.service.CassandraDaemon; /** @@ -49,6 +50,7 @@ public class EmbeddedCassandraService public void start() throws IOException { cassandraDaemon = new CassandraDaemon(); + DatabaseDescriptor.setDaemonInitialized(); cassandraDaemon.init(null); cassandraDaemon.start(); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/long/org/apache/cassandra/io/sstable/CQLSSTableWriterLongTest.java ---------------------------------------------------------------------- diff --git a/test/long/org/apache/cassandra/io/sstable/CQLSSTableWriterLongTest.java b/test/long/org/apache/cassandra/io/sstable/CQLSSTableWriterLongTest.java index fcec40d..ee719d1 100644 --- a/test/long/org/apache/cassandra/io/sstable/CQLSSTableWriterLongTest.java +++ b/test/long/org/apache/cassandra/io/sstable/CQLSSTableWriterLongTest.java @@ -30,6 +30,7 @@ import org.junit.BeforeClass; import org.junit.Test; import org.apache.cassandra.SchemaLoader; import org.apache.cassandra.config.Config; +import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.config.Schema; import org.apache.cassandra.db.Keyspace; import org.apache.cassandra.service.StorageService; @@ -39,6 +40,7 @@ public class CQLSSTableWriterLongTest @BeforeClass public static void setup() throws Exception { + DatabaseDescriptor.setDaemonInitialized(); SchemaLoader.cleanupAndLeaveDirs(); Keyspace.setInitialized(); StorageService.instance.initServer(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/SchemaLoader.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/SchemaLoader.java b/test/unit/org/apache/cassandra/SchemaLoader.java index a7cf7b4..2048f74 100644 --- a/test/unit/org/apache/cassandra/SchemaLoader.java +++ b/test/unit/org/apache/cassandra/SchemaLoader.java @@ -90,6 +90,7 @@ public class SchemaLoader } }); + DatabaseDescriptor.setDaemonInitialized(); Keyspace.setInitialized(); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java b/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java index 5f231c3..7409535 100644 --- a/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java +++ b/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java @@ -47,6 +47,12 @@ import static org.junit.Assert.assertNull; @RunWith(OrderedJUnit4ClassRunner.class) public class DatabaseDescriptorTest { + @BeforeClass + public static void setupDatabaseDescriptor() + { + DatabaseDescriptor.setDaemonInitialized(); + } + @Test public void testCFMetaDataSerialization() throws ConfigurationException, InvalidRequestException { http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/db/CounterCellTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/db/CounterCellTest.java b/test/unit/org/apache/cassandra/db/CounterCellTest.java index 8d75b9a..5d4b8a8 100644 --- a/test/unit/org/apache/cassandra/db/CounterCellTest.java +++ b/test/unit/org/apache/cassandra/db/CounterCellTest.java @@ -30,6 +30,7 @@ import org.junit.Assert; import org.junit.Test; import org.apache.cassandra.Util; +import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.composites.CellNameType; import org.apache.cassandra.db.composites.SimpleDenseCellNameType; import org.apache.cassandra.db.context.CounterContext; @@ -57,6 +58,8 @@ public class CounterCellTest countLength = 8; // size of long stepLength = idLength + clockLength + countLength; + // TODO: CounterId accesses SystemKespace to get local host ID, so need to mark as daemon initialized + DatabaseDescriptor.setDaemonInitialized(); } @Test http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/db/NativeCellTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/db/NativeCellTest.java b/test/unit/org/apache/cassandra/db/NativeCellTest.java index 70b7b87..4145a91 100644 --- a/test/unit/org/apache/cassandra/db/NativeCellTest.java +++ b/test/unit/org/apache/cassandra/db/NativeCellTest.java @@ -32,6 +32,7 @@ import org.junit.Test; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.ColumnDefinition; +import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.cql3.ColumnIdentifier; import org.apache.cassandra.db.composites.CellName; import org.apache.cassandra.db.composites.CellNameType; @@ -128,6 +129,8 @@ public class NativeCellTest { throw new AssertionError(); } + // TODO: CounterId accesses SystemKespace to get local host ID, so need to mark as daemon initialized + DatabaseDescriptor.setDaemonInitialized(); } @Test http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java b/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java index b8aa161..c3047b8 100644 --- a/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java +++ b/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java @@ -42,6 +42,8 @@ public class SystemKeyspaceTest @BeforeClass public static void prepSnapshotTracker() { + DatabaseDescriptor.setDaemonInitialized(); + if (FBUtilities.isWindows()) WindowsFailedSnapshotTracker.deleteOldSnapshots(); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/db/context/CounterContextTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/db/context/CounterContextTest.java b/test/unit/org/apache/cassandra/db/context/CounterContextTest.java index a72d30d..4f587c6 100644 --- a/test/unit/org/apache/cassandra/db/context/CounterContextTest.java +++ b/test/unit/org/apache/cassandra/db/context/CounterContextTest.java @@ -22,9 +22,11 @@ package org.apache.cassandra.db.context; import java.nio.ByteBuffer; +import org.junit.BeforeClass; import org.junit.Test; import org.apache.cassandra.Util; +import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.ClockAndCount; import org.apache.cassandra.db.context.CounterContext.Relationship; import org.apache.cassandra.utils.ByteBufferUtil; @@ -48,6 +50,12 @@ public class CounterContextTest private static final int countLength = 8; private static final int stepLength = idLength + clockLength + countLength; + @BeforeClass + public static void setupDD() + { + DatabaseDescriptor.setDaemonInitialized(); + } + @Test public void testAllocate() { http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/db/lifecycle/LifecycleTransactionTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/db/lifecycle/LifecycleTransactionTest.java b/test/unit/org/apache/cassandra/db/lifecycle/LifecycleTransactionTest.java index f13d1b7..737392e 100644 --- a/test/unit/org/apache/cassandra/db/lifecycle/LifecycleTransactionTest.java +++ b/test/unit/org/apache/cassandra/db/lifecycle/LifecycleTransactionTest.java @@ -20,6 +20,7 @@ package org.apache.cassandra.db.lifecycle; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.atomic.AtomicReference; import org.junit.After; import org.junit.Before; @@ -30,6 +31,8 @@ import junit.framework.Assert; import org.apache.cassandra.MockSchema; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.ColumnFamilyStore; +import org.apache.cassandra.db.Memtable; +import org.apache.cassandra.db.commitlog.ReplayPosition; import org.apache.cassandra.db.compaction.OperationType; import org.apache.cassandra.db.lifecycle.LifecycleTransaction.ReaderState; import org.apache.cassandra.db.lifecycle.LifecycleTransaction.ReaderState.Action; @@ -270,7 +273,7 @@ public class LifecycleTransactionTest extends AbstractTransactionalTest private static Tracker tracker(ColumnFamilyStore cfs, List<SSTableReader> readers) { - Tracker tracker = new Tracker(cfs, false); + Tracker tracker = new Tracker(new Memtable(new AtomicReference<>(ReplayPosition.NONE), cfs), false); tracker.addInitialSSTables(readers); return tracker; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java b/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java index adeb778..04b4e4a 100644 --- a/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java +++ b/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java @@ -75,6 +75,7 @@ public class TrackerTest @BeforeClass public static void setUp() { + DatabaseDescriptor.setDaemonInitialized(); MockSchema.cleanup(); } @@ -82,7 +83,7 @@ public class TrackerTest public void testTryModify() { ColumnFamilyStore cfs = MockSchema.newCFS(); - Tracker tracker = new Tracker(cfs, false); + Tracker tracker = new Tracker(null, false); List<SSTableReader> readers = ImmutableList.of(MockSchema.sstable(0, true, cfs), MockSchema.sstable(1, cfs), MockSchema.sstable(2, cfs)); tracker.addInitialSSTables(copyOf(readers)); Assert.assertNull(tracker.tryModify(ImmutableList.of(MockSchema.sstable(0, cfs)), OperationType.COMPACTION)); @@ -146,7 +147,7 @@ public class TrackerTest public void testAddInitialSSTables() { ColumnFamilyStore cfs = MockSchema.newCFS(); - Tracker tracker = new Tracker(cfs, false); + Tracker tracker = cfs.getTracker(); List<SSTableReader> readers = ImmutableList.of(MockSchema.sstable(0, 17, cfs), MockSchema.sstable(1, 121, cfs), MockSchema.sstable(2, 9, cfs)); @@ -163,7 +164,7 @@ public class TrackerTest boolean backups = DatabaseDescriptor.isIncrementalBackupsEnabled(); DatabaseDescriptor.setIncrementalBackupsEnabled(false); ColumnFamilyStore cfs = MockSchema.newCFS(); - Tracker tracker = new Tracker(cfs, false); + Tracker tracker = cfs.getTracker(); MockListener listener = new MockListener(false); tracker.subscribe(listener); List<SSTableReader> readers = ImmutableList.of(MockSchema.sstable(0, 17, cfs), http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/dht/StreamStateStoreTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/dht/StreamStateStoreTest.java b/test/unit/org/apache/cassandra/dht/StreamStateStoreTest.java index 86781d9..bdb654a 100644 --- a/test/unit/org/apache/cassandra/dht/StreamStateStoreTest.java +++ b/test/unit/org/apache/cassandra/dht/StreamStateStoreTest.java @@ -20,8 +20,10 @@ package org.apache.cassandra.dht; import java.net.InetAddress; import java.util.Collections; +import org.junit.BeforeClass; import org.junit.Test; +import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.streaming.DefaultConnectionFactory; import org.apache.cassandra.streaming.StreamEvent; import org.apache.cassandra.streaming.StreamSession; @@ -32,6 +34,11 @@ import static org.junit.Assert.assertTrue; public class StreamStateStoreTest { + @BeforeClass + public static void initDD() + { + DatabaseDescriptor.setDaemonInitialized(); + } @Test public void testUpdateAndQueryAvailableRanges() http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/gms/FailureDetectorTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/gms/FailureDetectorTest.java b/test/unit/org/apache/cassandra/gms/FailureDetectorTest.java index 9325922..af099b0 100644 --- a/test/unit/org/apache/cassandra/gms/FailureDetectorTest.java +++ b/test/unit/org/apache/cassandra/gms/FailureDetectorTest.java @@ -45,6 +45,8 @@ public class FailureDetectorTest { // slow unit tests can cause problems with FailureDetector's GC pause handling System.setProperty("cassandra.max_local_pause_in_ms", "20000"); + + DatabaseDescriptor.setDaemonInitialized(); } @Test http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/gms/GossiperTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/gms/GossiperTest.java b/test/unit/org/apache/cassandra/gms/GossiperTest.java index ad07165..eb01305 100644 --- a/test/unit/org/apache/cassandra/gms/GossiperTest.java +++ b/test/unit/org/apache/cassandra/gms/GossiperTest.java @@ -33,6 +33,7 @@ import org.junit.Test; import org.apache.cassandra.SchemaLoader; import org.apache.cassandra.Util; +import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.dht.IPartitioner; import org.apache.cassandra.dht.RandomPartitioner; import org.apache.cassandra.dht.Token; @@ -44,6 +45,10 @@ import static org.junit.Assert.assertEquals; public class GossiperTest { + static + { + DatabaseDescriptor.setDaemonInitialized(); + } static final IPartitioner partitioner = new RandomPartitioner(); StorageService ss = StorageService.instance; TokenMetadata tmd = StorageService.instance.getTokenMetadata(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java b/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java index 8a14428..5e2fffe 100644 --- a/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java +++ b/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java @@ -34,6 +34,7 @@ import org.junit.Test; import org.apache.cassandra.SchemaLoader; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.Config; +import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.config.Schema; import org.apache.cassandra.cql3.QueryProcessor; import org.apache.cassandra.cql3.UntypedResultSet; @@ -52,6 +53,7 @@ public class CQLSSTableWriterTest @BeforeClass public static void setup() throws Exception { + DatabaseDescriptor.setDaemonInitialized(); SchemaLoader.cleanupAndLeaveDirs(); Keyspace.setInitialized(); StorageService.instance.initServer(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/locator/CloudstackSnitchTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/locator/CloudstackSnitchTest.java b/test/unit/org/apache/cassandra/locator/CloudstackSnitchTest.java index 90e63e0..bc5be46 100644 --- a/test/unit/org/apache/cassandra/locator/CloudstackSnitchTest.java +++ b/test/unit/org/apache/cassandra/locator/CloudstackSnitchTest.java @@ -27,6 +27,7 @@ import org.junit.BeforeClass; import org.junit.Test; import org.apache.cassandra.SchemaLoader; +import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.gms.ApplicationState; import org.apache.cassandra.gms.Gossiper; @@ -43,6 +44,7 @@ public class CloudstackSnitchTest @BeforeClass public static void setup() throws Exception { + DatabaseDescriptor.setDaemonInitialized(); SchemaLoader.mkdirs(); SchemaLoader.cleanup(); Keyspace.setInitialized(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java b/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java index 56bbb77..32383d9 100644 --- a/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java +++ b/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java @@ -33,6 +33,7 @@ import org.junit.BeforeClass; import org.junit.Test; import org.apache.cassandra.SchemaLoader; +import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.Keyspace; import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.gms.ApplicationState; @@ -51,6 +52,7 @@ public class EC2SnitchTest @BeforeClass public static void setup() throws Exception { + DatabaseDescriptor.setDaemonInitialized(); SchemaLoader.mkdirs(); SchemaLoader.cleanup(); Keyspace.setInitialized(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/locator/GoogleCloudSnitchTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/locator/GoogleCloudSnitchTest.java b/test/unit/org/apache/cassandra/locator/GoogleCloudSnitchTest.java index 1521454..f2450f4 100644 --- a/test/unit/org/apache/cassandra/locator/GoogleCloudSnitchTest.java +++ b/test/unit/org/apache/cassandra/locator/GoogleCloudSnitchTest.java @@ -31,6 +31,7 @@ import org.junit.BeforeClass; import org.junit.Test; import org.apache.cassandra.SchemaLoader; +import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.Keyspace; import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.gms.ApplicationState; @@ -47,6 +48,7 @@ public class GoogleCloudSnitchTest @BeforeClass public static void setup() throws Exception { + DatabaseDescriptor.setDaemonInitialized(); SchemaLoader.mkdirs(); SchemaLoader.cleanup(); Keyspace.setInitialized(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java index 4481501..a693a23 100644 --- a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java +++ b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java @@ -63,6 +63,7 @@ public class StorageServiceServerTest @BeforeClass public static void setUp() throws ConfigurationException { + DatabaseDescriptor.setDaemonInitialized(); IEndpointSnitch snitch = new PropertyFileSnitch(); DatabaseDescriptor.setEndpointSnitch(snitch); Keyspace.setInitialized();