Vovodroid created CASSANDRA-8945:
------------------------------------

             Summary: Error log is written on client malformed request
                 Key: CASSANDRA-8945
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8945
             Project: Cassandra
          Issue Type: Improvement
          Components: Core
         Environment: 2.1.3
            Reporter: Vovodroid
            Priority: Minor


When client sends  wrong or malformed request error log is printed, though it's 
not Cassandra bug or problem.

{code:title=Message.java|borderStyle=solid}
 @Override
public boolean apply(Throwable exception)
.......................................
// Anything else is probably a bug in server of client binary protocol handling
logger.error(message, exception);
......................................
{code}

Assume public Cassandra server (for instance accepting connection from widely 
distributed application, e.g. mobile). Badly written or hostile applications 
can flood Cassandra log.

I discovered two possible scenarios so far:

1. Connect with telnet to Cassandra and send any string.
*exception* is _io.netty.handler.codec.DecoderException_
*cause* is _org.apache.cassandra.transport.ProtocolException_
*message* is _Invalid or unsupported protocol version_

2. Connect to Cassandra with password authentication with client that doesn't 
recognize that (sending request as reply to AuthResponse)
*exception* is _java.lang.AssertionError_
*cause* is _org.apache.cassandra.exceptions.InvalidRequestException_
*message* is _Protocol error: Unexpected message QUERY, expecting SASL_RESPONSE_


Thus I suggest that way to distinguish between Cassandra originated exception 
and bad clients should be found not to print log in latter cases.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to