Streaming code relies on sockets being bound to the correct address
(InetAddress.anyLocalAddress() is bad)
----------------------------------------------------------------------------------------------------------
Key: CASSANDRA-737
URL: https://issues.apache.org/jira/browse/CASSANDRA-737
Project: Cassandra
Issue Type: Bug
Affects Versions: 0.6
Environment: Mac OS X.
Reporter: Gary Dusbabek
Assignee: Gary Dusbabek
Priority: Minor
Fix For: 0.6
I came across this while testing streaming locally. The new streaming code
makes use of the remote socket address supplied by the socket. This means that
it will return whatever address the socket is bound to, which is not
necessarily the address configured for cassandra. This confuses
StreamContextManager when data comes streaming in from addresses that it
doesn't recognize.
Two solutions will work.
1. bind outgoing sockets to the correct interface.
2. Include the local address in StreamContexts that get sent.
I opted for 1 since it required less code. 2 was easy enough but would have
required changing the format of the message to make the source address more
easily accessible (the constructor for IncomingStreamReader wants to know the
source host to create the stream context at the destination).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.