From 50e5802a7d7151d9fb1339aa3cdd2b9e1c261712 Mon Sep 17 00:00:00 2001 From: blambov Date: Fri, 3 Apr 2015 22:57:59 +0100 Subject: [PATCH 1/2] Stop CommitLogTest hanging patch by branimir; reviewed by aweisberg for CASSANDRA-8992 --- .../db/CommitLogFailurePolicyTest.java | 53 +++++++++++++++++++ .../apache/cassandra/db/CommitLogTest.java | 33 +++--------- 2 files changed, 61 insertions(+), 25 deletions(-) create mode 100644 test/unit/org/apache/cassandra/db/CommitLogFailurePolicyTest.java diff --git a/test/unit/org/apache/cassandra/db/CommitLogFailurePolicyTest.java b/test/unit/org/apache/cassandra/db/CommitLogFailurePolicyTest.java new file mode 100644 index 0000000000..235c9f1eba --- /dev/null +++ b/test/unit/org/apache/cassandra/db/CommitLogFailurePolicyTest.java @@ -0,0 +1,53 @@ +/* +* 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. +*/ + +package org.apache.cassandra.db; + +import org.junit.Assert; +import org.junit.Test; + +import org.apache.cassandra.config.Config; +import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.db.commitlog.CommitLog; +import org.apache.cassandra.exceptions.ConfigurationException; +import org.apache.cassandra.gms.Gossiper; +import org.apache.cassandra.service.StorageService; + +public class CommitLogFailurePolicyTest +{ + @Test + public void testCommitFailurePolicy_stop() throws ConfigurationException + { + // Need storage service active so stop policy can shutdown gossip + StorageService.instance.initServer(); + Assert.assertTrue(Gossiper.instance.isEnabled()); + + Config.CommitFailurePolicy oldPolicy = DatabaseDescriptor.getCommitFailurePolicy(); + try + { + DatabaseDescriptor.setCommitFailurePolicy(Config.CommitFailurePolicy.stop); + CommitLog.handleCommitError("Test stop error", new Throwable()); + Assert.assertFalse(Gossiper.instance.isEnabled()); + } + finally + { + DatabaseDescriptor.setCommitFailurePolicy(oldPolicy); + } + } +} diff --git a/test/unit/org/apache/cassandra/db/CommitLogTest.java b/test/unit/org/apache/cassandra/db/CommitLogTest.java index 289fbc9137..45cd30c340 100644 --- a/test/unit/org/apache/cassandra/db/CommitLogTest.java +++ b/test/unit/org/apache/cassandra/db/CommitLogTest.java @@ -23,26 +23,23 @@ import java.io.*; import java.nio.ByteBuffer; import java.util.UUID; import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; import java.util.zip.CRC32; import java.util.zip.Checksum; -import com.google.common.util.concurrent.Uninterruptibles; import org.junit.Assert; +import org.junit.BeforeClass; import org.junit.Test; import org.apache.cassandra.SchemaLoader; import org.apache.cassandra.Util; -import org.apache.cassandra.config.Config; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.commitlog.CommitLog; import org.apache.cassandra.db.commitlog.CommitLogDescriptor; import org.apache.cassandra.db.commitlog.ReplayPosition; +import org.apache.cassandra.db.compaction.CompactionManager; import org.apache.cassandra.db.filter.NamesQueryFilter; import org.apache.cassandra.exceptions.ConfigurationException; -import org.apache.cassandra.gms.Gossiper; import org.apache.cassandra.net.MessagingService; -import org.apache.cassandra.service.StorageService; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.FBUtilities; @@ -50,6 +47,12 @@ import static org.apache.cassandra.utils.ByteBufferUtil.bytes; public class CommitLogTest extends SchemaLoader { + @BeforeClass + public static void init() throws ConfigurationException + { + CompactionManager.instance.disableAutoCompaction(); + } + @Test public void testRecoveryWithEmptyLog() throws Exception { @@ -238,26 +241,6 @@ public class CommitLogTest extends SchemaLoader Assert.assertEquals(MessagingService.current_version, CommitLogDescriptor.fromFileName(newCLName).getMessagingVersion()); } - @Test - public void testCommitFailurePolicy_stop() throws ConfigurationException - { - // Need storage service active so stop policy can shutdown gossip - StorageService.instance.initServer(); - Assert.assertTrue(Gossiper.instance.isEnabled()); - - Config.CommitFailurePolicy oldPolicy = DatabaseDescriptor.getCommitFailurePolicy(); - try - { - DatabaseDescriptor.setCommitFailurePolicy(Config.CommitFailurePolicy.stop); - CommitLog.handleCommitError("Test stop error", new Throwable()); - Assert.assertFalse(Gossiper.instance.isEnabled()); - } - finally - { - DatabaseDescriptor.setCommitFailurePolicy(oldPolicy); - } - } - @Test public void testTruncateWithoutSnapshot() throws ExecutionException, InterruptedException { From 7a6a5097a35feb830b66a7e602ba3cb1ead2e105 Mon Sep 17 00:00:00 2001 From: Paulo Motta Date: Fri, 14 Aug 2015 10:40:58 -0500 Subject: [PATCH 2/2] cqlsh: specify encoding w/ command line option Patch by Paulo Motta; reviewed by Tyler Hobbs for CASSANDRA-10004 --- CHANGES.txt | 1 + bin/cqlsh | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index f7fb63cb43..5a76978182 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.9 + * (cqlsh) Allow encoding to be set through command line (CASSANDRA-10004) * Add new JMX methods to change local compaction strategy (CASSANDRA-9965) * Write hints for paxos commits (CASSANDRA-7342) * (cqlsh) Fix timestamps before 1970 on Windows, always diff --git a/bin/cqlsh b/bin/cqlsh index 69b669d55c..084d58653a 100755 --- a/bin/cqlsh +++ b/bin/cqlsh @@ -165,6 +165,9 @@ parser.add_option('-k', '--keyspace', help='Authenticate to the given keyspace.' parser.add_option("-f", "--file", help="Execute commands from FILE, then exit") parser.add_option('--debug', action='store_true', help='Show additional debugging information') +parser.add_option("--encoding", help="Specify a non-default encoding for output. If you are " + + "experiencing problems with unicode characters, using utf8 may fix the problem." + + " (Default from system preferences: %s)" % (locale.getpreferredencoding(),)) parser.add_option("--cqlshrc", help="Specify an alternative cqlshrc file location.") parser.add_option('--cqlversion', default=DEFAULT_CQLVER, help='Specify a particular CQL version (default: %default).' @@ -2331,6 +2334,7 @@ def read_options(cmdlineargs, environment): optvalues.debug = False optvalues.file = None optvalues.ssl = False + optvalues.encoding = None optvalues.tty = sys.stdin.isatty() optvalues.cqlversion = option_with_default(configs.get, 'cql', 'version', DEFAULT_CQLVER) @@ -2461,7 +2465,8 @@ def main(options, hostname, port): ssl=options.ssl, single_statement=options.execute, client_timeout=options.client_timeout, - connect_timeout=options.connect_timeout) + connect_timeout=options.connect_timeout, + encoding=options.encoding) except KeyboardInterrupt: sys.exit('Connection aborted.') except CQL_ERRORS, e: