You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2016/01/22 15:45:56 UTC
[09/15] cassandra git commit: Merge commit
'3c55732fa414c7835536dc42ff489461a7441bfe' into cassandra-2.2
Merge commit '3c55732fa414c7835536dc42ff489461a7441bfe' into cassandra-2.2
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0b479a7f
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0b479a7f
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0b479a7f
Branch: refs/heads/cassandra-3.3
Commit: 0b479a7f3e284960f5ebf8ef5110dfdf2c2db7fd
Parents: 7bab824 3c55732
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Fri Jan 22 15:42:27 2016 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Fri Jan 22 15:43:56 2016 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
src/java/org/apache/cassandra/gms/Gossiper.java | 10 ++-
.../org/apache/cassandra/gms/GossiperTest.java | 93 ++++++++++++++++++++
3 files changed, 100 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b479a7f/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 54ed851,4bff88c..6c01e22
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,30 -1,8 +1,31 @@@
-2.1.13
+2.2.5
+ * Avoid over-fetching during the page of range queries (CASSANDRA-8521)
+ * Start L0 STCS-compactions even if there is a L0 -> L1 compaction
+ going (CASSANDRA-10979)
+ * Make UUID LSB unique per process (CASSANDRA-7925)
+ * Avoid NPE when performing sstable tasks (scrub etc.) (CASSANDRA-10980)
+ * Make sure client gets tombstone overwhelmed warning (CASSANDRA-9465)
+ * Fix error streaming section more than 2GB (CASSANDRA-10961)
+ * (cqlsh) Also apply --connect-timeout to control connection
+ timeout (CASSANDRA-10959)
+ * Histogram buckets exposed in jmx are sorted incorrectly (CASSANDRA-10975)
+ * Enable GC logging by default (CASSANDRA-10140)
+ * Optimize pending range computation (CASSANDRA-9258)
+ * Skip commit log and saved cache directories in SSTable version startup check (CASSANDRA-10902)
+ * drop/alter user should be case sensitive (CASSANDRA-10817)
+ * jemalloc detection fails due to quoting issues in regexv (CASSANDRA-10946)
+ * Support counter-columns for native aggregates (sum,avg,max,min) (CASSANDRA-9977)
+ * (cqlsh) show correct column names for empty result sets (CASSANDRA-9813)
+ * Add new types to Stress (CASSANDRA-9556)
+ * Add property to allow listening on broadcast interface (CASSANDRA-9748)
+ * Fix regression in split size on CqlInputFormat (CASSANDRA-10835)
+ * Better handling of SSL connection errors inter-node (CASSANDRA-10816)
+ * Disable reloading of GossipingPropertyFileSnitch (CASSANDRA-9474)
+ * Verify tables in pseudo-system keyspaces at startup (CASSANDRA-10761)
+Merged from 2.1:
+ * Fix bad gossip generation seen in long-running clusters (CASSANDRA-10969)
* Avoid NPE when incremental repair fails (CASSANDRA-10909)
* Unmark sstables compacting once they are done in cleanup/scrub/upgradesstables (CASSANDRA-10829)
- * Revert CASSANDRA-10012 and add more logging (CASSANDRA-10961)
* Allow simultaneous bootstrapping with strict consistency when no vnodes are used (CASSANDRA-11005)
* Log a message when major compaction does not result in a single file (CASSANDRA-10847)
* (cqlsh) fix cqlsh_copy_tests when vnodes are disabled (CASSANDRA-10997)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b479a7f/src/java/org/apache/cassandra/gms/Gossiper.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/gms/Gossiper.java
index 6a91750,ebdd5bd..58d9c3c
--- a/src/java/org/apache/cassandra/gms/Gossiper.java
+++ b/src/java/org/apache/cassandra/gms/Gossiper.java
@@@ -87,9 -87,9 +87,9 @@@ public class Gossiper implements IFailu
public static final long aVeryLongTime = 259200 * 1000; // 3 days
- /** Maximum difference in generation and version values we are willing to accept about a peer */
- private static final long MAX_GENERATION_DIFFERENCE = 86400 * 365;
+ // Maximimum difference between generation value and local time we are willing to accept about a peer
+ static final int MAX_GENERATION_DIFFERENCE = 86400 * 365;
- private long FatClientTimeout;
+ private long fatClientTimeout;
private final Random random = new Random();
private final Comparator<InetAddress> inetcomparator = new Comparator<InetAddress>()
{
@@@ -1101,13 -1107,15 +1101,15 @@@
{
int localGeneration = localEpStatePtr.getHeartBeatState().getGeneration();
int remoteGeneration = remoteState.getHeartBeatState().getGeneration();
+ long localTime = System.currentTimeMillis()/1000;
if (logger.isTraceEnabled())
- logger.trace(ep + "local generation " + localGeneration + ", remote generation " + remoteGeneration);
+ logger.trace("{} local generation {}, remote generation {}", ep, localGeneration, remoteGeneration);
- if (localGeneration != 0 && remoteGeneration > localGeneration + MAX_GENERATION_DIFFERENCE)
+ // We measure generation drift against local time, based on the fact that generation is initialized by time
+ if (remoteGeneration > localTime + MAX_GENERATION_DIFFERENCE)
{
// assume some peer has corrupted memory and is broadcasting an unbelievable generation about another peer (or itself)
- logger.warn("received an invalid gossip generation for peer {}; local generation = {}, received generation = {}", ep, localGeneration, remoteGeneration);
+ logger.warn("received an invalid gossip generation for peer {}; local time = {}, received generation = {}", ep, localTime, remoteGeneration);
}
else if (remoteGeneration > localGeneration)
{