You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2020/05/15 14:35:19 UTC
[cassandra] branch trunk updated: Ninja-follow-up to
CASSANDRA-15727 (move code slightly)
This is an automated email from the ASF dual-hosted git repository.
aleksey pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/trunk by this push:
new 17caa28 Ninja-follow-up to CASSANDRA-15727 (move code slightly)
17caa28 is described below
commit 17caa288c311e0364f81f78a85831c36f0f4917e
Author: Aleksey Yeshchenko <al...@apache.org>
AuthorDate: Fri May 15 15:34:35 2020 +0100
Ninja-follow-up to CASSANDRA-15727 (move code slightly)
---
.../apache/cassandra/net/OutboundConnection.java | 36 ++++++++++------------
1 file changed, 17 insertions(+), 19 deletions(-)
diff --git a/src/java/org/apache/cassandra/net/OutboundConnection.java b/src/java/org/apache/cassandra/net/OutboundConnection.java
index 315d086..d7ebcd8 100644
--- a/src/java/org/apache/cassandra/net/OutboundConnection.java
+++ b/src/java/org/apache/cassandra/net/OutboundConnection.java
@@ -1084,25 +1084,7 @@ public class OutboundConnection
if (hasPending())
{
Promise<Result<MessagingSuccess>> result = new AsyncPromise<>(eventLoop);
- state = new Connecting(state.disconnected(),
- result,
- eventLoop.schedule(() ->
- {
- // Re-evaluate messagingVersion before re-attempting the connection in case
- // endpointToVersion were updated. This happens if the outbound connection
- // is made before the endpointToVersion table is initially constructed or out
- // of date (e.g. if outbound connections are established for gossip
- // as a result of an inbound connection) and can result in the wrong outbound
- // port being selected if configured with enable_legacy_ssl_storage_port=true.
- int maybeUpdatedVersion = template.endpointToVersion().get(template.to);
- if (maybeUpdatedVersion != messagingVersion)
- {
- logger.trace("Endpoint version changed from {} to {} since connection initialized, updating.",
- messagingVersion, maybeUpdatedVersion);
- messagingVersion = maybeUpdatedVersion;
- }
- attempt(result);
- }, max(100, retryRateMillis), MILLISECONDS));
+ state = new Connecting(state.disconnected(), result, eventLoop.schedule(() -> attempt(result), max(100, retryRateMillis), MILLISECONDS));
retryRateMillis = min(1000, retryRateMillis * 2);
}
else
@@ -1194,6 +1176,22 @@ public class OutboundConnection
{
++connectionAttempts;
+ /*
+ * Re-evaluate messagingVersion before re-attempting the connection in case
+ * endpointToVersion were updated. This happens if the outbound connection
+ * is made before the endpointToVersion table is initially constructed or out
+ * of date (e.g. if outbound connections are established for gossip
+ * as a result of an inbound connection) and can result in the wrong outbound
+ * port being selected if configured with enable_legacy_ssl_storage_port=true.
+ */
+ int knownMessagingVersion = messagingVersion();
+ if (knownMessagingVersion != messagingVersion)
+ {
+ logger.trace("Endpoint version changed from {} to {} since connection initialized, updating.",
+ messagingVersion, knownMessagingVersion);
+ messagingVersion = knownMessagingVersion;
+ }
+
settings = template;
if (messagingVersion > settings.acceptVersions.max)
messagingVersion = settings.acceptVersions.max;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org