You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Ariel Weisberg (JIRA)" <ji...@apache.org> on 2017/01/27 21:51:24 UTC

[jira] [Updated] (CASSANDRA-13163) NPE in StorageService.excise

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

Ariel Weisberg updated CASSANDRA-13163:
---------------------------------------
    Description: 
{code}
    private void excise(Collection<Token> tokens, InetAddress endpoint)
    {
        logger.info("Removing tokens {} for {}", tokens, endpoint);

        if (tokenMetadata.isMember(endpoint))
            HintsService.instance.excise(tokenMetadata.getHostId(endpoint));

{code}

The check for TMD.isMember() is not enough to guarantee that TMD.getHostId() will not return null. If HintsService.excise() is called with null you get an NPE in a map lookup.

  was:
{code}
    private void excise(Collection<Token> tokens, InetAddress endpoint)
    {
        logger.info("Removing tokens {} for {}", tokens, endpoint);

        if (tokenMetadata.isMember(endpoint))
            HintsService.instance.excise(tokenMetadata.getHostId(endpoint));

{code}

The check for TMD.isMember() is not enough to guarantee that TMD.getHodtId() will not return null. If HintsService.excise() is called with null you get an NPE in a map lookup.


> NPE in StorageService.excise
> ----------------------------
>
>                 Key: CASSANDRA-13163
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13163
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Ariel Weisberg
>            Assignee: Ariel Weisberg
>             Fix For: 3.0.x, 3.x, 4.x
>
>
> {code}
>     private void excise(Collection<Token> tokens, InetAddress endpoint)
>     {
>         logger.info("Removing tokens {} for {}", tokens, endpoint);
>         if (tokenMetadata.isMember(endpoint))
>             HintsService.instance.excise(tokenMetadata.getHostId(endpoint));
> {code}
> The check for TMD.isMember() is not enough to guarantee that TMD.getHostId() will not return null. If HintsService.excise() is called with null you get an NPE in a map lookup.



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