You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benedict (JIRA)" <ji...@apache.org> on 2015/01/27 13:04:34 UTC

[jira] [Created] (CASSANDRA-8691) SSTableReader.getPosition() does not correctly filter out queries that exceed its bounds

Benedict created CASSANDRA-8691:
-----------------------------------

             Summary: SSTableReader.getPosition() does not correctly filter out queries that exceed its bounds
                 Key: CASSANDRA-8691
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8691
             Project: Cassandra
          Issue Type: Bug
          Components: Core
            Reporter: Benedict
             Fix For: 2.1.3


This has been true for some time, but I worry about including it before 2.1 in case we depend on the brokenness somehow. In getPosition, we test:

{code}
        if (first.compareTo(key) > 0 || last.compareTo(key) < 0)
        {
            if (op == Operator.EQ && updateCacheAndStats)
                bloomFilterTracker.addFalsePositive();

            if (op.apply(1) < 0)
            {
                Tracing.trace("Check against min and max keys allows skipping sstable {}", descriptor.generation);
                return null;
            }
        }
{code}

However, op.apply(1) always returns >= 0 unless op == Operation.EQ



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