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 2014/12/19 12:40:13 UTC

[jira] [Updated] (CASSANDRA-8513) SSTableScanner may not acquire reference, but will still release it when closed

     [ https://issues.apache.org/jira/browse/CASSANDRA-8513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benedict updated CASSANDRA-8513:
--------------------------------
    Attachment: 8513.txt

Attaching simplest patch that at least fixes this problem; a follow up ticket can perhaps rearrange this code to ensure if a reference is expected to be acquired it is done so.

> SSTableScanner may not acquire reference, but will still release it when closed
> -------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-8513
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8513
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Benedict
>             Fix For: 2.1.3
>
>         Attachments: 8513.txt
>
>
> getRangeSlice and related methods do not require a reference to perform a safe read, so during one it is possible for SSTableScanner to fail to acquire a reference to the table it's being created on. In this case it doesn't fail, but it also doesn't log that no reference was acquired; on close, it still releases the reference that it never held.
> We can fix this one of two ways: we can tell the scanner if we require a reference to be acquired; or we can track if one was obtained. The former is a bit more invasive but probably better, since we probably care if we fail to grab one in cases where we need it, and probably don't want to grab one otherwise.



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