[ 
https://issues.apache.org/jira/browse/CASSANDRA-5692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13691630#comment-13691630
 ] 

Cathy Daw commented on CASSANDRA-5692:
--------------------------------------

[~sbtourist]
i can apply patch 001 or 004 successfully, but not able to apply 001 + 004.   
Do I need both?

{noformat}
# via git apply
$ git reset --hard HEAD
HEAD is now at 0f7c7dc Merge pull request #15 from riptano/CASSANDRA-5476

$ git apply --whitespace=fix 5692-0001.patch 5692-0004.patch
5692-0001.patch:37: trailing whitespace.

5692-0004.patch:89: trailing whitespace.

5692-0004.patch:133: trailing whitespace.

5692-0004.patch:138: trailing whitespace.

5692-0004.patch:143: trailing whitespace.

error: patch failed: 
src/java/org/apache/cassandra/net/OutboundTcpConnection.java:278
error: src/java/org/apache/cassandra/net/OutboundTcpConnection.java: patch does 
not apply

# via unix patch
$ git reset --hard HEAD
HEAD is now at 0f7c7dc Merge pull request #15 from riptano/CASSANDRA-5476

$ patch -l -p1 < 5692-0001.patch
patching file src/java/org/apache/cassandra/net/OutboundTcpConnection.java

$ patch -l -p1 < 5692-0004.patch
patching file src/java/org/apache/cassandra/net/MessagingService.java
patching file src/java/org/apache/cassandra/net/OutboundTcpConnection.java
Hunk #1 FAILED at 278.
1 out of 1 hunk FAILED -- saving rejects to file 
src/java/org/apache/cassandra/net/OutboundTcpConnection.java.rej

$ cat src/java/org/apache/cassandra/net/OutboundTcpConnection.java.rej
***************
*** 278,284 ****
          if (logger.isDebugEnabled())
              logger.debug("attempting to connect to " + 
poolReference.endPoint());

-         targetVersion = 
MessagingService.instance().getVersion(poolReference.endPoint());

          long start = System.currentTimeMillis();
          while (System.currentTimeMillis() < start + 
DatabaseDescriptor.getRpcTimeout())
--- 278,284 ----
          if (logger.isDebugEnabled())
              logger.debug("attempting to connect to " + 
poolReference.endPoint());

+         targetVersion = 
MessagingService.instance().getVersion(poolReference.endPoint(), true);

          long start = System.currentTimeMillis();
          while (System.currentTimeMillis() < start + 
DatabaseDescriptor.getRpcTimeout())
{noformat} 
                
> Race condition in detecting version on a mixed 1.1/1.2 cluster
> --------------------------------------------------------------
>
>                 Key: CASSANDRA-5692
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5692
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.1.9, 1.2.5
>            Reporter: Sergio Bossa
>            Priority: Minor
>         Attachments: 5692-0001.patch, 5692-0004.patch
>
>
> On a mixed 1.1 / 1.2 cluster, starting 1.2 nodes fires sometimes a race 
> condition in version detection, where the 1.2 node wrongly detects version 6 
> for a 1.1 node.
> It works as follows:
> 1) The just started 1.2 node quickly opens an OutboundTcpConnection toward a 
> 1.1 node before receiving any messages from the latter.
> 2) Given the version is correctly detected only when the first message is 
> received, the version is momentarily set at 6.
> 3) This opens an OutboundTcpConnection from 1.2 to 1.1 at version 6, which 
> gets stuck in the connect() method.
> Later, the version is correctly fixed, but all outbound connections from 1.2 
> to 1.1 are stuck at this point.
> Evidence from 1.2 logs:
> TRACE 13:48:31,133 Assuming current protocol version for /127.0.0.2
> DEBUG 13:48:37,837 Setting version 5 for /127.0.0.2

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to