You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ja...@apache.org on 2015/04/01 17:00:40 UTC
[1/6] cassandra git commit: bump versions
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.1 730cc6064 -> 150f82736
bump versions
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/20593c24
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/20593c24
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/20593c24
Branch: refs/heads/cassandra-2.1
Commit: 20593c24a9f8c07aff8f848f4b5774ed88ea4687
Parents: a936d7e
Author: T Jake Luciani <ja...@apache.org>
Authored: Thu Mar 12 21:01:11 2015 -0400
Committer: T Jake Luciani <ja...@apache.org>
Committed: Thu Mar 12 21:01:11 2015 -0400
----------------------------------------------------------------------
build.xml | 2 +-
debian/changelog | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/20593c24/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 78c6db3..bdbd10a 100644
--- a/build.xml
+++ b/build.xml
@@ -25,7 +25,7 @@
<property name="debuglevel" value="source,lines,vars"/>
<!-- default version and SCM information -->
- <property name="base.version" value="2.0.12"/>
+ <property name="base.version" value="2.0.13"/>
<property name="scm.connection" value="scm:git://git.apache.org/cassandra.git"/>
<property name="scm.developerConnection" value="scm:git://git.apache.org/cassandra.git"/>
<property name="scm.url" value="http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree"/>
http://git-wip-us.apache.org/repos/asf/cassandra/blob/20593c24/debian/changelog
----------------------------------------------------------------------
diff --git a/debian/changelog b/debian/changelog
index 53fa20f..2c80800 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+cassandra (2.0.13) unstable; urgency=medium
+
+ * New release
+
+ -- Jake Luciani <ja...@apache.org> Thu, 12 Mar 2015 21:00:06 -0400
+
cassandra (2.0.12) unstable; urgency=medium
* New release
[2/6] cassandra git commit: Bind JMX to localhost unless explicitly
configured otherwise
Posted by ja...@apache.org.
Bind JMX to localhost unless explicitly configured otherwise
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c041ea8b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c041ea8b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c041ea8b
Branch: refs/heads/cassandra-2.1
Commit: c041ea8b3748089937168839791a6d64382b34de
Parents: 7cc1cf0
Author: T Jake Luciani <ja...@apache.org>
Authored: Wed Mar 25 12:27:50 2015 -0400
Committer: T Jake Luciani <ja...@apache.org>
Committed: Mon Mar 30 09:38:50 2015 -0400
----------------------------------------------------------------------
CHANGES.txt | 3 +
NEWS.txt | 6 ++
bin/cassandra.bat | 11 ++-
build.xml | 3 +-
conf/cassandra-env.ps1 | 13 +++-
conf/cassandra-env.sh | 21 ++++--
debian/changelog | 6 ++
.../cassandra/service/CassandraDaemon.java | 78 ++++++++++++++++++--
.../utils/RMIServerSocketFactoryImpl.java | 34 +++++++++
9 files changed, 157 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c041ea8b/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 954fa3f..50c7967 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,6 @@
+2.1.4
+ * If no JMX flags are set start a localhost only JMX service
+
2.1.3
* Fix HSHA/offheap_objects corruption (CASSANDRA-8719)
* Upgrade libthrift to 0.9.2 (CASSANDRA-8685)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c041ea8b/NEWS.txt
----------------------------------------------------------------------
diff --git a/NEWS.txt b/NEWS.txt
index 602770c..076885c 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -13,6 +13,12 @@ restore snapshots created with the previous major version using the
'sstableloader' tool. You can upgrade the file format of your snapshots
using the provided 'sstableupgrade' tool.
+2.1.4
+=====
+
+The default JMX config now listens to localhost only. You must enable
+the other JMX flags in cassandra-env.sh manually.
+
2.1.3
=====
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c041ea8b/bin/cassandra.bat
----------------------------------------------------------------------
diff --git a/bin/cassandra.bat b/bin/cassandra.bat
index 99b291a..fefd3fc 100644
--- a/bin/cassandra.bat
+++ b/bin/cassandra.bat
@@ -65,10 +65,13 @@ set JAVA_OPTS=-ea^
-XX:MaxTenuringThreshold=1^
-XX:CMSInitiatingOccupancyFraction=75^
-XX:+UseCMSInitiatingOccupancyOnly^
- -Dcom.sun.management.jmxremote.port=7199^
- -Dcom.sun.management.jmxremote.ssl=false^
- -Dcom.sun.management.jmxremote.authenticate=false^
- -Dlogback.configurationFile=logback.xml
+ -Dlogback.configurationFile=logback.xml^
+ -Dcassandra.jmx.local.port=7199
+REM **** JMX REMOTE ACCESS SETTINGS SEE: https://wiki.apache.org/cassandra/JmxSecurity ***
+REM -Dcom.sun.management.jmxremote.port=7199^
+REM -Dcom.sun.management.jmxremote.ssl=false^
+REM -Dcom.sun.management.jmxremote.authenticate=true^
+REM -Dcom.sun.management.jmxremote.password.file=C:\jmxremote.password
REM ***** CLASSPATH library setting *****
REM Ensure that any user defined CLASSPATH variables are not used on startup
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c041ea8b/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index eaef534..cf401e4 100644
--- a/build.xml
+++ b/build.xml
@@ -25,7 +25,7 @@
<property name="debuglevel" value="source,lines,vars"/>
<!-- default version and SCM information -->
- <property name="base.version" value="2.1.3"/>
+ <property name="base.version" value="2.1.4"/>
<property name="scm.connection" value="scm:git://git.apache.org/cassandra.git"/>
<property name="scm.developerConnection" value="scm:git://git.apache.org/cassandra.git"/>
<property name="scm.url" value="http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree"/>
@@ -1113,6 +1113,7 @@
<jvmarg value="-Xss256k"/>
<jvmarg value="-Dcassandra.memtable_row_overhead_computation_step=100"/>
<jvmarg value="-Dcassandra.test.use_prepared=${cassandra.test.use_prepared}"/>
+ <jvmarg value="-Dcassandra.jmx.local.port=7199" />
<jvmarg value="-Dcassandra.test.offsetseed=@{poffset}"/>
<optjvmargs/>
<classpath>
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c041ea8b/conf/cassandra-env.ps1
----------------------------------------------------------------------
diff --git a/conf/cassandra-env.ps1 b/conf/cassandra-env.ps1
index 9c6b6f4..7a71a13 100644
--- a/conf/cassandra-env.ps1
+++ b/conf/cassandra-env.ps1
@@ -400,10 +400,17 @@ Function SetCassandraEnvironment
# https://blogs.oracle.com/jmxetc/entry/troubleshooting_connection_problems_in_jconsole
# for more on configuring JMX through firewalls, etc. (Short version:
# get it working with no firewall first.)
- $env:JVM_OPTS="$env:JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT"
- $env:JVM_OPTS="$env:JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"
- $env:JVM_OPTS="$env:JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
+ #
+ # Due to potential security exploits, Cassandra ships with JMX accessible
+ # *only* from localhost. To enable remote JMX connections, uncomment lines below
+ # with authentication and ssl enabled. See https://wiki.apache.org/cassandra/JmxSecurity
+ #
+ #$env:JVM_OPTS="$env:JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT"
+ #$env:JVM_OPTS="$env:JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"
+ #$env:JVM_OPTS="$env:JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
#$env:JVM_OPTS="$env:JVM_OPTS -Dcom.sun.management.jmxremote.password.file=C:/jmxremote.password"
+ $env:JVM_OPTS="$env:JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT -XX:+DisableExplicitGC"
+
$env:JVM_OPTS="$env:JVM_OPTS $JVM_EXTRA_OPTS"
$env:JVM_OPTS = "$env:JVM_OPTS -Dlog4j.configuration=log4j-server.properties"
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c041ea8b/conf/cassandra-env.sh
----------------------------------------------------------------------
diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh
index 3f4c21b..58022e6 100644
--- a/conf/cassandra-env.sh
+++ b/conf/cassandra-env.sh
@@ -270,6 +270,22 @@ JVM_OPTS="$JVM_OPTS -Djava.net.preferIPv4Stack=true"
# https://blogs.oracle.com/jmxetc/entry/troubleshooting_connection_problems_in_jconsole
# for more on configuring JMX through firewalls, etc. (Short version:
# get it working with no firewall first.)
+#
+# Cassandra ships with JMX accessible *only* from localhost.
+# To enable remote JMX connections, uncomment lines below
+# with authentication and/or ssl enabled. See https://wiki.apache.org/cassandra/JmxSecurity
+#
+LOCAL_JMX=yes
+
+if [ "$LOCAL_JMX" = "yes" ]; then
+ JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT -XX:+DisableExplicitGC"
+else
+ JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT"
+ JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT"
+ JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"
+ JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
+ JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
+fi
# To use mx4j, an HTML interface for JMX, add mx4j-tools.jar to the lib/
# directory.
@@ -279,11 +295,6 @@ JVM_OPTS="$JVM_OPTS -Djava.net.preferIPv4Stack=true"
#MX4J_ADDRESS="-Dmx4jaddress=127.0.0.1"
#MX4J_PORT="-Dmx4jport=8081"
-JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT"
-JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT"
-JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"
-JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
-#JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
JVM_OPTS="$JVM_OPTS $MX4J_ADDRESS"
JVM_OPTS="$JVM_OPTS $MX4J_PORT"
JVM_OPTS="$JVM_OPTS $JVM_EXTRA_OPTS"
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c041ea8b/debian/changelog
----------------------------------------------------------------------
diff --git a/debian/changelog b/debian/changelog
index 339da0c..8075460 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+cassandra (2.1.4) unstable; urgency=medium
+
+ * New release
+
+ -- Jake Luciani <ja...@apache.org> Fri, 27 Mar 2015 13:48:25 -0400
+
cassandra (2.1.3) unstable; urgency=medium
* New release
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c041ea8b/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 50c8295..3e398bf 100644
--- a/src/java/org/apache/cassandra/service/CassandraDaemon.java
+++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java
@@ -23,14 +23,16 @@ import java.lang.management.ManagementFactory;
import java.lang.management.MemoryPoolMXBean;
import java.net.InetAddress;
import java.net.UnknownHostException;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.TimeUnit;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.server.RMIServerSocketFactory;
+import java.util.*;
+ import java.util.concurrent.TimeUnit;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.management.StandardMBean;
+import javax.management.remote.JMXConnectorServer;
+import javax.management.remote.JMXServiceURL;
+import javax.management.remote.rmi.RMIConnectorServer;
import com.google.common.collect.Iterables;
import com.google.common.util.concurrent.Uninterruptibles;
@@ -66,9 +68,61 @@ import org.apache.cassandra.utils.*;
public class CassandraDaemon
{
public static final String MBEAN_NAME = "org.apache.cassandra.db:type=NativeAccess";
+ public static JMXConnectorServer jmxServer = null;
private static final Logger logger = LoggerFactory.getLogger(CassandraDaemon.class);
+ private static void maybeInitJmx()
+ {
+ String jmxPort = System.getProperty("com.sun.management.jmxremote.port");
+
+ if (jmxPort == null)
+ {
+ logger.warn("JMX is not enabled to receive remote connections. Please see cassandra-env.sh for more info.");
+
+ jmxPort = System.getProperty("cassandra.jmx.local.port");
+
+ if (jmxPort == null)
+ {
+ logger.error("cassandra.jmx.local.port missing from cassandra-env.sh, unable to start local JMX service." + jmxPort);
+ }
+ else
+ {
+ System.setProperty("java.rmi.server.hostname","127.0.0.1");
+
+ try
+ {
+ RMIServerSocketFactory serverFactory = new RMIServerSocketFactoryImpl();
+ LocateRegistry.createRegistry(Integer.valueOf(jmxPort), null, serverFactory);
+
+ StringBuffer url = new StringBuffer();
+ url.append("service:jmx:");
+ url.append("rmi://localhost/jndi/");
+ url.append("rmi://localhost:").append(jmxPort).append("/jmxrmi");
+
+ Map env = new HashMap();
+ env.put(RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE, serverFactory);
+
+ jmxServer = new RMIConnectorServer(
+ new JMXServiceURL(url.toString()),
+ env,
+ ManagementFactory.getPlatformMBeanServer()
+ );
+
+ jmxServer.start();
+ }
+ catch (IOException e)
+ {
+ logger.error("Error starting local jmx server: ", e);
+ }
+ }
+ }
+ else
+ {
+ logger.info("JMX is enabled to receive remote connections on port: " + jmxPort);
+ }
+ }
+
private static final CassandraDaemon instance = new CassandraDaemon();
/**
@@ -159,6 +213,8 @@ public class CassandraDaemon
CLibrary.tryMlockall();
+ maybeInitJmx();
+
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler()
{
public void uncaughtException(Thread t, Throwable e)
@@ -432,6 +488,18 @@ public class CassandraDaemon
// We rely on the shutdown hook to drain the node
if (FBUtilities.isWindows())
System.exit(0);
+
+ if (jmxServer != null)
+ {
+ try
+ {
+ jmxServer.stop();
+ }
+ catch (IOException e)
+ {
+ logger.error("Error shutting down local JMX server: ", e);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/c041ea8b/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java b/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java
new file mode 100644
index 0000000..75331ab
--- /dev/null
+++ b/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java
@@ -0,0 +1,34 @@
+package org.apache.cassandra.utils;
+
+import java.io.IOException;
+import java.net.*;
+import java.rmi.server.RMIServerSocketFactory;
+import javax.net.ServerSocketFactory;
+
+
+public class RMIServerSocketFactoryImpl implements RMIServerSocketFactory
+{
+
+ public ServerSocket createServerSocket(final int pPort) throws IOException {
+ return ServerSocketFactory.getDefault().createServerSocket(pPort, 0, InetAddress.getLoopbackAddress());
+ }
+
+ public boolean equals(Object obj)
+ {
+ if (obj == null)
+ {
+ return false;
+ }
+ if (obj == this)
+ {
+ return true;
+ }
+
+ return obj.getClass().equals(getClass());
+ }
+
+ public int hashCode()
+ {
+ return RMIServerSocketFactoryImpl.class.hashCode();
+ }
+}
[4/6] cassandra git commit: Merge branch 'cassandra-2.0.14-build'
into cassandra-2.0
Posted by ja...@apache.org.
Merge branch 'cassandra-2.0.14-build' into cassandra-2.0
Conflicts:
CHANGES.txt
build.xml
debian/changelog
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/38a04eab
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/38a04eab
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/38a04eab
Branch: refs/heads/cassandra-2.1
Commit: 38a04eab6a18fe81e91cd0b7ecf00c34c443f2b5
Parents: 2cf4ca3 2433068
Author: T Jake Luciani <ja...@apache.org>
Authored: Wed Apr 1 10:45:51 2015 -0400
Committer: T Jake Luciani <ja...@apache.org>
Committed: Wed Apr 1 10:45:51 2015 -0400
----------------------------------------------------------------------
CHANGES.txt | 4 +-
NEWS.txt | 5 ++
bin/cassandra.bat | 11 ++-
build.xml | 2 +-
conf/cassandra-env.sh | 22 ++++--
debian/changelog | 9 +++
.../cassandra/service/CassandraDaemon.java | 79 +++++++++++++++++++-
.../utils/RMIServerSocketFactoryImpl.java | 34 +++++++++
8 files changed, 151 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/38a04eab/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index b6b5caf,7a3a4ea..fe1aa37
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,39 -1,5 +1,41 @@@
--2.0.14:
- * If no JMX flags are set start a localhost only JMX service
++2.0.15:
+ * Avoid race in cancelling compactions (CASSANDRA-9070)
+ * More aggressive check for expired sstables in DTCS (CASSANDRA-8359)
+ * Don't set clientMode to true when bulk-loading sstables to avoid
+ a NullPointerException (CASSANDRA-8238)
+ * Fix ignored index_interval change in ALTER TABLE statements (CASSANDRA-7976)
+ * Do more aggressive compaction in old time windows in DTCS (CASSANDRA-8360)
+ * java.lang.AssertionError when reading saved cache (CASSANDRA-8740)
+ * "disk full" when running cleanup (CASSANDRA-9036)
+ * Make PasswordAuthenticator number of hashing rounds configurable (CASSANDRA-8085)
+ * Lower logging level from ERROR to DEBUG when a scheduled schema pull
+ cannot be completed due to a node being down (CASSANDRA-9032)
+ * Fix MOVED_NODE client event (CASSANDRA-8516)
+ * Allow overriding MAX_OUTSTANDING_REPLAY_COUNT (CASSANDRA-7533)
+ * Fix malformed JMX ObjectName containing IPv6 addresses (CASSANDRA-9027)
+ * Fix potential data loss in CompressedSequentialWriter (CASSANDRA-8949)
+ * (cqlsh) Allow increasing CSV field size limit through
+ cqlshrc config option (CASSANDRA-8934)
+ * Stop logging range tombstones when exceeding the threshold
+ (CASSANDRA-8559)
+ * Fix NullPointerException when nodetool getendpoints is run
+ against invalid keyspaces or tables (CASSANDRA-8950)
+ * Allow specifying the tmp dir (CASSANDRA-7712)
+ * Improve compaction estimated tasks estimation (CASSANDRA-8904)
+ * Fix duplicate up/down messages sent to native clients (CASSANDRA-7816)
+ * Expose commit log archive status via JMX (CASSANDRA-8734)
+ * Provide better exceptions for invalid replication strategy parameters
+ (CASSANDRA-8909)
+ * Fix regression in mixed single and multi-column relation support for
+ SELECT statements (CASSANDRA-8613)
+ * Add ability to limit number of native connections (CASSANDRA-8086)
+ * Fix CQLSSTableWriter throwing exception and spawning threads
+ (CASSANDRA-8808)
+ * Fix MT mismatch between empty and GC-able data (CASSANDRA-8979)
+ * Fix incorrect validation when snapshotting single table (CASSANDRA-8056)
+
++2.0.14
++ * Bind JMX to localhost unless explicitly configured otherwise (CASSANDRA-9085)
2.0.13:
* Add offline tool to relevel sstables (CASSANDRA-8301)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/38a04eab/build.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/38a04eab/debian/changelog
----------------------------------------------------------------------
diff --cc debian/changelog
index 2c80800,257d636..cd183a3
--- a/debian/changelog
+++ b/debian/changelog
@@@ -1,3 -1,9 +1,12 @@@
++<<<<<<< HEAD
++=======
+ cassandra (2.0.14) unstable; urgency=medium
+
+ * New release
+
+ -- Jake Luciani <ja...@apache.org> Thu, 26 Mar 2015 14:57:39 -0400
+
++>>>>>>> cassandra-2.0.14-build
cassandra (2.0.13) unstable; urgency=medium
* New release
[5/6] cassandra git commit: Merge branch 'cassandra-2.0' into
cassandra-2.1
Posted by ja...@apache.org.
Merge branch 'cassandra-2.0' into cassandra-2.1
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/beb5ffd0
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/beb5ffd0
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/beb5ffd0
Branch: refs/heads/cassandra-2.1
Commit: beb5ffd0785c1be2564a5e1f09b2907f573d83d2
Parents: 730cc60 38a04ea
Author: T Jake Luciani <ja...@apache.org>
Authored: Wed Apr 1 10:49:53 2015 -0400
Committer: T Jake Luciani <ja...@apache.org>
Committed: Wed Apr 1 10:49:53 2015 -0400
----------------------------------------------------------------------
----------------------------------------------------------------------
[3/6] cassandra git commit: Bind JMX to localhost unless explicitly
configured otherwise
Posted by ja...@apache.org.
Bind JMX to localhost unless explicitly configured otherwise
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2433068c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2433068c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2433068c
Branch: refs/heads/cassandra-2.1
Commit: 2433068c157cd21d4217c98ec5c0b9a2c07e288d
Parents: 20593c2
Author: T Jake Luciani <ja...@apache.org>
Authored: Wed Mar 25 12:04:09 2015 -0400
Committer: T Jake Luciani <ja...@apache.org>
Committed: Mon Mar 30 09:40:38 2015 -0400
----------------------------------------------------------------------
CHANGES.txt | 3 +
NEWS.txt | 5 ++
bin/cassandra.bat | 11 ++-
build.xml | 5 +-
conf/cassandra-env.sh | 22 ++++--
debian/changelog | 6 ++
.../cassandra/service/CassandraDaemon.java | 79 +++++++++++++++++++-
.../utils/RMIServerSocketFactoryImpl.java | 34 +++++++++
8 files changed, 150 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2433068c/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index f98bb3f..7a3a4ea 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,6 @@
+2.0.14:
+ * If no JMX flags are set start a localhost only JMX service
+
2.0.13:
* Add offline tool to relevel sstables (CASSANDRA-8301)
* Preserve stream ID for more protocol errors (CASSANDRA-8848)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2433068c/NEWS.txt
----------------------------------------------------------------------
diff --git a/NEWS.txt b/NEWS.txt
index 5a4bc3d..82f643f 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -13,6 +13,11 @@ restore snapshots created with the previous major version using the
'sstableloader' tool. You can upgrade the file format of your snapshots
using the provided 'sstableupgrade' tool.
+2.0.14
+======
+ The default JMX config now listens to localhost only. You must enable
+the other JMX flags in cassandra-env.sh manually.
+
2.0.13
======
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2433068c/bin/cassandra.bat
----------------------------------------------------------------------
diff --git a/bin/cassandra.bat b/bin/cassandra.bat
index 8a3bf7f..c316d7f 100644
--- a/bin/cassandra.bat
+++ b/bin/cassandra.bat
@@ -41,11 +41,14 @@ set JAVA_OPTS=-ea^
-XX:MaxTenuringThreshold=1^
-XX:CMSInitiatingOccupancyFraction=75^
-XX:+UseCMSInitiatingOccupancyOnly^
- -Dcom.sun.management.jmxremote.port=7199^
- -Dcom.sun.management.jmxremote.ssl=false^
- -Dcom.sun.management.jmxremote.authenticate=false^
-Dlog4j.configuration=log4j-server.properties^
- -Dlog4j.defaultInitOverride=true
+ -Dlog4j.defaultInitOverride=true^
+ -Dcassandra.jmx.local.port=7199
+REM **** JMX REMOTE ACCESS SETTINGS SEE: https://wiki.apache.org/cassandra/JmxSecurity ***
+REM -Dcom.sun.management.jmxremote.port=7199^
+REM -Dcom.sun.management.jmxremote.ssl=false^
+REM -Dcom.sun.management.jmxremote.authenticate=true^
+REM -Dcom.sun.management.jmxremote.password.file=C:\jmxremote.password
REM ***** CLASSPATH library setting *****
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2433068c/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index bdbd10a..e644b71 100644
--- a/build.xml
+++ b/build.xml
@@ -25,7 +25,7 @@
<property name="debuglevel" value="source,lines,vars"/>
<!-- default version and SCM information -->
- <property name="base.version" value="2.0.13"/>
+ <property name="base.version" value="2.0.14"/>
<property name="scm.connection" value="scm:git://git.apache.org/cassandra.git"/>
<property name="scm.developerConnection" value="scm:git://git.apache.org/cassandra.git"/>
<property name="scm.url" value="http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree"/>
@@ -1035,7 +1035,8 @@
<jvmarg value="-Dlog4j.configuration=log4j-junit.properties" />
<jvmarg value="-Djava.awt.headless=true"/>
<jvmarg value="-javaagent:${basedir}/lib/jamm-0.2.5.jar" />
- <jvmarg value="-ea"/>
+ <jvmarg value="-Dcassandra.jmx.local.port=7199" />
+ <jvmarg value="-ea"/>
<jvmarg value="-Xss256k"/>
<optjvmargs/>
<classpath>
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2433068c/conf/cassandra-env.sh
----------------------------------------------------------------------
diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh
index dfe8184..70d86cf 100644
--- a/conf/cassandra-env.sh
+++ b/conf/cassandra-env.sh
@@ -261,9 +261,21 @@ JVM_OPTS="$JVM_OPTS -Djava.net.preferIPv4Stack=true"
# https://blogs.oracle.com/jmxetc/entry/troubleshooting_connection_problems_in_jconsole
# for more on configuring JMX through firewalls, etc. (Short version:
# get it working with no firewall first.)
-JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT"
-JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT"
-JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"
-JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
-#JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
+#
+# Cassandra ships with JMX accessible *only* from localhost.
+# To enable remote JMX connections, change the setting below to enable JMX
+# with authentication and/or ssl enabled. See https://wiki.apache.org/cassandra/JmxSecurity
+#
+LOCAL_JMX=yes
+
+if [ "$LOCAL_JMX" = "yes" ]; then
+ JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT -XX:+DisableExplicitGC"
+else
+ JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT"
+ JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT"
+ JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"
+ JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
+ JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
+fi
+
JVM_OPTS="$JVM_OPTS $JVM_EXTRA_OPTS"
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2433068c/debian/changelog
----------------------------------------------------------------------
diff --git a/debian/changelog b/debian/changelog
index 2c80800..257d636 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+cassandra (2.0.14) unstable; urgency=medium
+
+ * New release
+
+ -- Jake Luciani <ja...@apache.org> Thu, 26 Mar 2015 14:57:39 -0400
+
cassandra (2.0.13) unstable; urgency=medium
* New release
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2433068c/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 cad1658..039760e 100644
--- a/src/java/org/apache/cassandra/service/CassandraDaemon.java
+++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java
@@ -24,13 +24,21 @@ import java.lang.management.MemoryPoolMXBean;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.server.RMIServerSocketFactory;
+import java.rmi.server.RMISocketFactory;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.management.StandardMBean;
+import javax.management.remote.JMXConnectorServer;
+import javax.management.remote.JMXConnectorServerFactory;
+import javax.management.remote.JMXServiceURL;
+import javax.management.remote.rmi.RMIConnectorServer;
import com.addthis.metrics.reporter.config.ReporterConfig;
@@ -38,6 +46,7 @@ import com.google.common.collect.Iterables;
import com.google.common.util.concurrent.Uninterruptibles;
import org.apache.cassandra.io.sstable.CorruptSSTableException;
+import org.apache.cassandra.utils.*;
import org.apache.log4j.PropertyConfigurator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -62,10 +71,6 @@ import org.apache.cassandra.io.util.FileUtils;
import org.apache.cassandra.metrics.StorageMetrics;
import org.apache.cassandra.thrift.ThriftServer;
import org.apache.cassandra.tracing.Tracing;
-import org.apache.cassandra.utils.CLibrary;
-import org.apache.cassandra.utils.FBUtilities;
-import org.apache.cassandra.utils.Mx4jTool;
-import org.apache.cassandra.utils.Pair;
/**
* The <code>CassandraDaemon</code> is an abstraction for a Cassandra daemon
@@ -76,6 +81,7 @@ import org.apache.cassandra.utils.Pair;
public class CassandraDaemon
{
public static final String MBEAN_NAME = "org.apache.cassandra.db:type=NativeAccess";
+ public static JMXConnectorServer jmxServer = null;
static
{
@@ -138,6 +144,57 @@ public class CassandraDaemon
private static final Logger logger = LoggerFactory.getLogger(CassandraDaemon.class);
+ private static void maybeInitJmx()
+ {
+ String jmxPort = System.getProperty("com.sun.management.jmxremote.port");
+
+ if (jmxPort == null)
+ {
+ logger.warn("JMX is not enabled to receive remote connections. Please see cassandra-env.sh for more info.");
+
+ jmxPort = System.getProperty("cassandra.jmx.local.port");
+
+ if (jmxPort == null)
+ {
+ logger.error("cassandra.jmx.local.port missing from cassandra-env.sh, unable to start local JMX service." + jmxPort);
+ }
+ else
+ {
+ System.setProperty("java.rmi.server.hostname","127.0.0.1");
+
+ try
+ {
+ RMIServerSocketFactory serverFactory = new RMIServerSocketFactoryImpl();
+ LocateRegistry.createRegistry(Integer.valueOf(jmxPort), null, serverFactory);
+
+ StringBuffer url = new StringBuffer();
+ url.append("service:jmx:");
+ url.append("rmi://localhost/jndi/");
+ url.append("rmi://localhost:").append(jmxPort).append("/jmxrmi");
+
+ Map env = new HashMap();
+ env.put(RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE, serverFactory);
+
+ jmxServer = new RMIConnectorServer(
+ new JMXServiceURL(url.toString()),
+ env,
+ ManagementFactory.getPlatformMBeanServer()
+ );
+
+ jmxServer.start();
+ }
+ catch (IOException e)
+ {
+ logger.error("Error starting local jmx server: ", e);
+ }
+ }
+ }
+ else
+ {
+ logger.info("JMX is enabled to receive remote connections on port: " + jmxPort);
+ }
+ }
+
private static final CassandraDaemon instance = new CassandraDaemon();
public Server thriftServer;
@@ -191,6 +248,8 @@ public class CassandraDaemon
logger.info("Classpath: {}", System.getProperty("java.class.path"));
CLibrary.tryMlockall();
+ maybeInitJmx();
+
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler()
{
public void uncaughtException(Thread t, Throwable e)
@@ -463,6 +522,18 @@ public class CassandraDaemon
logger.info("Cassandra shutting down...");
thriftServer.stop();
nativeServer.stop();
+
+ if (jmxServer != null)
+ {
+ try
+ {
+ jmxServer.stop();
+ }
+ catch (IOException e)
+ {
+ logger.error("Error shutting down local JMX server: ", e);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2433068c/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java b/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java
new file mode 100644
index 0000000..75331ab
--- /dev/null
+++ b/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java
@@ -0,0 +1,34 @@
+package org.apache.cassandra.utils;
+
+import java.io.IOException;
+import java.net.*;
+import java.rmi.server.RMIServerSocketFactory;
+import javax.net.ServerSocketFactory;
+
+
+public class RMIServerSocketFactoryImpl implements RMIServerSocketFactory
+{
+
+ public ServerSocket createServerSocket(final int pPort) throws IOException {
+ return ServerSocketFactory.getDefault().createServerSocket(pPort, 0, InetAddress.getLoopbackAddress());
+ }
+
+ public boolean equals(Object obj)
+ {
+ if (obj == null)
+ {
+ return false;
+ }
+ if (obj == this)
+ {
+ return true;
+ }
+
+ return obj.getClass().equals(getClass());
+ }
+
+ public int hashCode()
+ {
+ return RMIServerSocketFactoryImpl.class.hashCode();
+ }
+}
[6/6] cassandra git commit: Merge branch 'cassandra-2.1.4-build' into
cassandra-2.1
Posted by ja...@apache.org.
Merge branch 'cassandra-2.1.4-build' into cassandra-2.1
Conflicts:
CHANGES.txt
NEWS.txt
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/150f8273
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/150f8273
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/150f8273
Branch: refs/heads/cassandra-2.1
Commit: 150f8273645e733f125870f58c03aa33b9395855
Parents: beb5ffd c041ea8
Author: T Jake Luciani <ja...@apache.org>
Authored: Wed Apr 1 10:56:05 2015 -0400
Committer: T Jake Luciani <ja...@apache.org>
Committed: Wed Apr 1 10:56:05 2015 -0400
----------------------------------------------------------------------
CHANGES.txt | 8 +-
NEWS.txt | 7 +-
bin/cassandra.bat | 11 ++-
build.xml | 3 +-
conf/cassandra-env.ps1 | 13 +++-
conf/cassandra-env.sh | 21 ++++--
debian/changelog | 6 ++
.../cassandra/service/CassandraDaemon.java | 78 ++++++++++++++++++--
.../utils/RMIServerSocketFactoryImpl.java | 34 +++++++++
9 files changed, 157 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/150f8273/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 3b99c61,50c7967..913b570
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,119 -1,5 +1,121 @@@
- 2.1.4
++2.1.5
+ * Buffer bloom filter serialization (CASSANDRA-9066)
+ * Fix anti-compaction target bloom filter size (CASSANDRA-9060)
+ * Make FROZEN and TUPLE unreserved keywords in CQL (CASSANDRA-9047)
+ * Prevent AssertionError from SizeEstimatesRecorder (CASSANDRA-9034)
+ * Avoid overwriting index summaries for sstables with an older format that
+ does not support downsampling; rebuild summaries on startup when this
+ is detected (CASSANDRA-8993)
+ * Fix potential data loss in CompressedSequentialWriter (CASSANDRA-8949)
+ * Make PasswordAuthenticator number of hashing rounds configurable (CASSANDRA-8085)
+ * Fix AssertionError when binding nested collections in DELETE (CASSANDRA-8900)
+ * Check for overlap with non-early sstables in LCS (CASSANDRA-8739)
+ * Only calculate max purgable timestamp if we have to (CASSANDRA-8914)
+ * (cqlsh) Greatly improve performance of COPY FROM (CASSANDRA-8225)
+ * IndexSummary effectiveIndexInterval is now a guideline, not a rule (CASSANDRA-8993)
+ * Use correct bounds for page cache eviction of compressed files (CASSANDRA-8746)
+ * SSTableScanner enforces its bounds (CASSANDRA-8946)
+ * Cleanup cell equality (CASSANDRA-8947)
+ * Introduce intra-cluster message coalescing (CASSANDRA-8692)
+ * DatabaseDescriptor throws NPE when rpc_interface is used (CASSANDRA-8839)
+ * Don't check if an sstable is live for offline compactions (CASSANDRA-8841)
+ * Don't set clientMode in SSTableLoader (CASSANDRA-8238)
+ * Fix SSTableRewriter with disabled early open (CASSANDRA-8535)
+ * Allow invalidating permissions and cache time (CASSANDRA-8722)
+ * Log warning when queries that will require ALLOW FILTERING in Cassandra 3.0
+ are executed (CASSANDRA-8418)
+ * Fix cassandra-stress so it respects the CL passed in user mode (CASSANDRA-8948)
+ * Fix rare NPE in ColumnDefinition#hasIndexOption() (CASSANDRA-8786)
+ * cassandra-stress reports per-operation statistics, plus misc (CASSANDRA-8769)
+ * Add SimpleDate (cql date) and Time (cql time) types (CASSANDRA-7523)
+ * Use long for key count in cfstats (CASSANDRA-8913)
+ * Make SSTableRewriter.abort() more robust to failure (CASSANDRA-8832)
+ * Remove cold_reads_to_omit from STCS (CASSANDRA-8860)
+ * Make EstimatedHistogram#percentile() use ceil instead of floor (CASSANDRA-8883)
+ * Fix top partitions reporting wrong cardinality (CASSANDRA-8834)
+ * Fix rare NPE in KeyCacheSerializer (CASSANDRA-8067)
+ * Pick sstables for validation as late as possible inc repairs (CASSANDRA-8366)
+ * Fix commitlog getPendingTasks to not increment (CASSANDRA-8856)
+ * Fix parallelism adjustment in range and secondary index queries
+ when the first fetch does not satisfy the limit (CASSANDRA-8856)
+ * Check if the filtered sstables is non-empty in STCS (CASSANDRA-8843)
+ * Upgrade java-driver used for cassandra-stress (CASSANDRA-8842)
+ * Fix CommitLog.forceRecycleAllSegments() memory access error (CASSANDRA-8812)
+ * Improve assertions in Memory (CASSANDRA-8792)
+ * Fix SSTableRewriter cleanup (CASSANDRA-8802)
+ * Introduce SafeMemory for CompressionMetadata.Writer (CASSANDRA-8758)
+ * 'nodetool info' prints exception against older node (CASSANDRA-8796)
+ * Ensure SSTableReader.last corresponds exactly with the file end (CASSANDRA-8750)
+ * Make SSTableWriter.openEarly more robust and obvious (CASSANDRA-8747)
+ * Enforce SSTableReader.first/last (CASSANDRA-8744)
+ * Cleanup SegmentedFile API (CASSANDRA-8749)
+ * Avoid overlap with early compaction replacement (CASSANDRA-8683)
+ * Safer Resource Management++ (CASSANDRA-8707)
+ * Write partition size estimates into a system table (CASSANDRA-7688)
+ * cqlsh: Fix keys() and full() collection indexes in DESCRIBE output
+ (CASSANDRA-8154)
+ * Show progress of streaming in nodetool netstats (CASSANDRA-8886)
+ * IndexSummaryBuilder utilises offheap memory, and shares data between
+ each IndexSummary opened from it (CASSANDRA-8757)
+ * markCompacting only succeeds if the exact SSTableReader instances being
+ marked are in the live set (CASSANDRA-8689)
+ * cassandra-stress support for varint (CASSANDRA-8882)
+ * Fix Adler32 digest for compressed sstables (CASSANDRA-8778)
+ * Add nodetool statushandoff/statusbackup (CASSANDRA-8912)
+ * Use stdout for progress and stats in sstableloader (CASSANDRA-8982)
+Merged from 2.0:
+ * Avoid race in cancelling compactions (CASSANDRA-9070)
+ * More aggressive check for expired sstables in DTCS (CASSANDRA-8359)
+ * Fix ignored index_interval change in ALTER TABLE statements (CASSANDRA-7976)
+ * Do more aggressive compaction in old time windows in DTCS (CASSANDRA-8360)
+ * java.lang.AssertionError when reading saved cache (CASSANDRA-8740)
+ * "disk full" when running cleanup (CASSANDRA-9036)
+ * Lower logging level from ERROR to DEBUG when a scheduled schema pull
+ cannot be completed due to a node being down (CASSANDRA-9032)
+ * Fix MOVED_NODE client event (CASSANDRA-8516)
+ * Allow overriding MAX_OUTSTANDING_REPLAY_COUNT (CASSANDRA-7533)
+ * Fix malformed JMX ObjectName containing IPv6 addresses (CASSANDRA-9027)
+ * (cqlsh) Allow increasing CSV field size limit through
+ cqlshrc config option (CASSANDRA-8934)
+ * Stop logging range tombstones when exceeding the threshold
+ (CASSANDRA-8559)
+ * Fix NullPointerException when nodetool getendpoints is run
+ against invalid keyspaces or tables (CASSANDRA-8950)
+ * Allow specifying the tmp dir (CASSANDRA-7712)
+ * Improve compaction estimated tasks estimation (CASSANDRA-8904)
+ * Fix duplicate up/down messages sent to native clients (CASSANDRA-7816)
+ * Expose commit log archive status via JMX (CASSANDRA-8734)
+ * Provide better exceptions for invalid replication strategy parameters
+ (CASSANDRA-8909)
+ * Fix regression in mixed single and multi-column relation support for
+ SELECT statements (CASSANDRA-8613)
+ * Add ability to limit number of native connections (CASSANDRA-8086)
+ * Fix CQLSSTableWriter throwing exception and spawning threads
+ (CASSANDRA-8808)
+ * Fix MT mismatch between empty and GC-able data (CASSANDRA-8979)
+ * Fix incorrect validation when snapshotting single table (CASSANDRA-8056)
+ * Add offline tool to relevel sstables (CASSANDRA-8301)
+ * Preserve stream ID for more protocol errors (CASSANDRA-8848)
+ * Fix combining token() function with multi-column relations on
+ clustering columns (CASSANDRA-8797)
+ * Make CFS.markReferenced() resistant to bad refcounting (CASSANDRA-8829)
+ * Fix StreamTransferTask abort/complete bad refcounting (CASSANDRA-8815)
+ * Fix AssertionError when querying a DESC clustering ordered
+ table with ASC ordering and paging (CASSANDRA-8767)
+ * AssertionError: "Memory was freed" when running cleanup (CASSANDRA-8716)
+ * Make it possible to set max_sstable_age to fractional days (CASSANDRA-8406)
+ * Fix some multi-column relations with indexes on some clustering
+ columns (CASSANDRA-8275)
+ * Fix memory leak in SSTableSimple*Writer and SSTableReader.validate()
+ (CASSANDRA-8748)
+ * Throw OOM if allocating memory fails to return a valid pointer (CASSANDRA-8726)
+ * Fix SSTableSimpleUnsortedWriter ConcurrentModificationException (CASSANDRA-8619)
+ * 'nodetool info' prints exception against older node (CASSANDRA-8796)
+ * Ensure SSTableSimpleUnsortedWriter.close() terminates if
+ disk writer has crashed (CASSANDRA-8807)
+
+ 2.1.4
- * If no JMX flags are set start a localhost only JMX service
++ * Bind JMX to localhost unless explicitly configured otherwise (CASSANDRA-9085)
2.1.3
* Fix HSHA/offheap_objects corruption (CASSANDRA-8719)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/150f8273/NEWS.txt
----------------------------------------------------------------------
diff --cc NEWS.txt
index 4ead1ea,076885c..0816602
--- a/NEWS.txt
+++ b/NEWS.txt
@@@ -13,19 -13,12 +13,24 @@@ restore snapshots created with the prev
'sstableloader' tool. You can upgrade the file format of your snapshots
using the provided 'sstableupgrade' tool.
--2.1.4
++2.1.5
=====
+Upgrading
+---------
+ - The option to omit cold sstables with size tiered compaction has been
+ removed - it is almost always better to use date tiered compaction for
+ workloads that have cold data.
+
+New features
+------------
+ - New `SimpleDateType` (cql date). 4-byte unsigned integer w/out timestamp
+ - New `TimeType` (cql time). 8-byte long nano-second resolution timestamp
++2.1.4
++=====
+ The default JMX config now listens to localhost only. You must enable
+ the other JMX flags in cassandra-env.sh manually.
+
2.1.3
=====
http://git-wip-us.apache.org/repos/asf/cassandra/blob/150f8273/build.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/150f8273/conf/cassandra-env.sh
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/150f8273/src/java/org/apache/cassandra/service/CassandraDaemon.java
----------------------------------------------------------------------