diff --git a/CHANGES.txt b/CHANGES.txt index 0e8b9002f4..13abbd987e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -47,6 +47,7 @@ Merged from 1.1: * nodetool: ability to repair specific range (CASSANDRA-5280) * Fix possible assertion triggered in SliceFromReadCommand (CASSANDRA-5284) * cqlsh: Add inet type support on Windows (ipv4-only) (CASSANDRA-4801) + * Fix race when initializing ColumnFamilyStore (CASSANDRA-5350) 1.2.2 diff --git a/build.xml b/build.xml index d32cbfa17c..c385694c0c 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ - + diff --git a/debian/changelog b/debian/changelog index 0a71ffb44e..e0bc2a7005 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (1.2.3) unstable; urgency=low + + * New release + + -- Sylvain Lebresne Thu, 14 Mar 2013 09:52:16 +0100 + cassandra (1.2.2) unstable; urgency=low * New release diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java index 8c4b017b73..4de1ebdba8 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -83,12 +83,6 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean public static final ExecutorService postFlushExecutor = new JMXEnabledThreadPoolExecutor("MemtablePostFlusher"); - static - { - // (can block if flush queue fills up, so don't put on scheduledTasks) - StorageService.optionalTasks.scheduleWithFixedDelay(new MeteredFlusher(), 1000, 1000, TimeUnit.MILLISECONDS); - } - public final Table table; public final String name; public final CFMetaData metadata; diff --git a/src/java/org/apache/cassandra/db/MeteredFlusher.java b/src/java/org/apache/cassandra/db/MeteredFlusher.java index 798494405f..408727c4b0 100644 --- a/src/java/org/apache/cassandra/db/MeteredFlusher.java +++ b/src/java/org/apache/cassandra/db/MeteredFlusher.java @@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory; import org.apache.cassandra.config.DatabaseDescriptor; -class MeteredFlusher implements Runnable +public class MeteredFlusher implements Runnable { private static final Logger logger = LoggerFactory.getLogger(MeteredFlusher.class); diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java b/src/java/org/apache/cassandra/service/CassandraDaemon.java index 2d83f8a6e8..67c2bf21be 100644 --- a/src/java/org/apache/cassandra/service/CassandraDaemon.java +++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java @@ -326,6 +326,9 @@ public class CassandraDaemon }; StorageService.optionalTasks.schedule(runnable, 5 * 60, TimeUnit.SECONDS); + // MeteredFlusher can block if flush queue fills up, so don't put on scheduledTasks + StorageService.optionalTasks.scheduleWithFixedDelay(new MeteredFlusher(), 1000, 1000, TimeUnit.MILLISECONDS); + SystemTable.finishStartup(); // start server internals diff --git a/test/unit/org/apache/cassandra/MethodComparator.java b/test/unit/org/apache/cassandra/MethodComparator.java index 690ae57ea3..8cc163a454 100644 --- a/test/unit/org/apache/cassandra/MethodComparator.java +++ b/test/unit/org/apache/cassandra/MethodComparator.java @@ -1,4 +1,25 @@ package org.apache.cassandra; +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + import org.junit.Ignore; import org.junit.runners.model.FrameworkMethod; diff --git a/test/unit/org/apache/cassandra/OrderedJUnit4ClassRunner.java b/test/unit/org/apache/cassandra/OrderedJUnit4ClassRunner.java index d84aedbaff..d0dec24cd0 100644 --- a/test/unit/org/apache/cassandra/OrderedJUnit4ClassRunner.java +++ b/test/unit/org/apache/cassandra/OrderedJUnit4ClassRunner.java @@ -1,4 +1,25 @@ package org.apache.cassandra; +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + import org.junit.runners.BlockJUnit4ClassRunner; import org.junit.runners.model.FrameworkMethod; @@ -31,4 +52,4 @@ public class OrderedJUnit4ClassRunner extends BlockJUnit4ClassRunner return list; } } -} \ No newline at end of file +}