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

eBugs in Cloud Systems updated CASSANDRA-15113:
-----------------------------------------------
    Description: 
Dear Cassandra developers, we are developing a tool to detect exception-related 
bugs in Java. Our prototype has spotted the following {{throw}} statement whose 
exception class and error message seem to indicate different error conditions. 
Since we are not very familiar with Cassandra's internal work flow, could you 
please help us verify if this is a bug, i.e., will the callers have trouble 
handling the exception, and will the users/admins have trouble diagnosing the 
failure?

 

Version: Cassandra-3.11 (commit: 123113f7b887370a248669ee0db6fdf13df0146e) 

File: CASSANDRA-ROOT/src/java/org/apache/cassandra/service/StorageService.java

Line: 4008

Class: {{RuntimeException}}

Error message: {{"Node interrupted while decommissioning"}}

Reason: {{RuntimeException}} is usually used to represent errors in the program 
logic (think of one of its subclasses, {{NullPointerException}}), while the 
error message indicates that an interrupt has occurred. Will this mismatch be a 
problem? For example, will the callers miss the possibility that 
{{StorageService.decommission()}} can be interrupted because it does not throw 
any {{InterruptedException}}? Or, will the callers trying to handle other 
{{RuntimeException}} accidentally (and incorrectly) handle the interrupt?

  was:
Dear Cassandra developers, we are developing a tool to detect exception-related 
bugs in Java. Our prototype has spotted the following {{throw}} statement whose 
exception class and error message seem to indicate different error conditions. 
Since we are not very familiar with Cassandra's internal work flow, could you 
please help us verify if this is a bug, i.e., will the callers have trouble 
handling the exception, and will the users/admins have trouble diagnosing the 
failure?

 

Version: Cassandra-3.11 (commit: 123113f7b887370a248669ee0db6fdf13df0146e) 

File: CASSANDRA-ROOT/src/java/org/apache/cassandra/service/StorageService.java

Line: 4008

Class: {{RuntimeException}}

Error message: {{"Node interrupted while decommissioning"}}

Reason: {{RuntimeException}} is usually used to represent errors in the program 
logic (think of one of its subclasses, {{NullPointerException}}), while the 
error message indicates that an interrupt has occurred. Will this mismatch be a 
problem? For example, will the callers miss the possibility that 
{{StorageService.decommission()}} can be interrupted because it does not throw 
any {{InterruptedException}}? Or, will the callers try to handle other 
{{RuntimeException}} accidentally (and incorrectly) handle the interrupt?


> StorageService.decommission() throws RuntimeException when interrupted
> ----------------------------------------------------------------------
>
>                 Key: CASSANDRA-15113
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15113
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: eBugs in Cloud Systems
>            Priority: Normal
>
> Dear Cassandra developers, we are developing a tool to detect 
> exception-related bugs in Java. Our prototype has spotted the following 
> {{throw}} statement whose exception class and error message seem to indicate 
> different error conditions. Since we are not very familiar with Cassandra's 
> internal work flow, could you please help us verify if this is a bug, i.e., 
> will the callers have trouble handling the exception, and will the 
> users/admins have trouble diagnosing the failure?
>  
> Version: Cassandra-3.11 (commit: 123113f7b887370a248669ee0db6fdf13df0146e) 
> File: CASSANDRA-ROOT/src/java/org/apache/cassandra/service/StorageService.java
> Line: 4008
> Class: {{RuntimeException}}
> Error message: {{"Node interrupted while decommissioning"}}
> Reason: {{RuntimeException}} is usually used to represent errors in the 
> program logic (think of one of its subclasses, {{NullPointerException}}), 
> while the error message indicates that an interrupt has occurred. Will this 
> mismatch be a problem? For example, will the callers miss the possibility 
> that {{StorageService.decommission()}} can be interrupted because it does not 
> throw any {{InterruptedException}}? Or, will the callers trying to handle 
> other {{RuntimeException}} accidentally (and incorrectly) handle the 
> interrupt?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to