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

eBugs in Cloud Systems updated CASSANDRA-15114:
-----------------------------------------------
    Description: 
Dear Cassandra developers, we are developing a tool to detect exception-related 
bugs in Java. Our prototype has spotted the following two {{throw}} statements 
whose exception class and error message seem to indicate different error 
conditions.

 

Version: Cassandra-3.11 (commit: 123113f7b887370a248669ee0db6fdf13df0146e) 

File: 
CASSANDRA-ROOT/src/java/org/apache/cassandra/db/compaction/writers/CompactionAwareWriter.java

Line: 222 & 231

Class: {{RuntimeException}}

Error messages:
 # {{"Not enough space to write %s to %s (%s available)"}}
 # {{"Not enough disk space to store %s"}}

 

{{RuntimeException}} is usually used to represent errors in the program logic 
(think of one of its subclasses, {{NullPointerException}}), while the error 
messages indicate that the Cassandra node is running out of disk space. Will 
this mismatch be a problem? For example, the callers may miss the possibility 
that {{getWriteDirectory()}} can run out of disk space because it does not 
throw any {{IOException}}. Or, the callers trying to handle other 
{{RuntimeException}} may accidentally (and incorrectly) handle the out of disk 
space scenario.

A similar scenario can be found in CASSANDRA-11448.

  was:
Dear Cassandra developers, we are developing a tool to detect exception-related 
bugs in Java. Our prototype has spotted the following two {{throw}} statements 
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/db/compaction/writers/CompactionAwareWriter.java

Line: 222 & 231

Class: {{RuntimeException}}

Error messages:
 # {{"Not enough space to write %s to %s (%s available)"}}
 # {{"Not enough disk space to store %s"}}

Reason: {{RuntimeException}} is usually used to represent errors in the program 
logic (think of one of its subclasses, {{NullPointerException}}), while the 
error messages indicate that the Cassandra node is running out of disk space. 
Will this mismatch be a problem? For example, will the callers miss the 
possibility that {{getWriteDirectory()}} can run out of disk space because it 
does not throw any {{IOException}}? Or, will the callers trying to handle other 
{{RuntimeException}} accidentally (and incorrectly) handle the out of disk 
space scenario?

A similar scenario can be found in CASSANDRA-11448.


> CompactionAwareWriter.getWriteDirectory() throws RuntimeException when 
> running out of disk space
> ------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-15114
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15114
>             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 two 
> {{throw}} statements whose exception class and error message seem to indicate 
> different error conditions.
>  
> Version: Cassandra-3.11 (commit: 123113f7b887370a248669ee0db6fdf13df0146e) 
> File: 
> CASSANDRA-ROOT/src/java/org/apache/cassandra/db/compaction/writers/CompactionAwareWriter.java
> Line: 222 & 231
> Class: {{RuntimeException}}
> Error messages:
>  # {{"Not enough space to write %s to %s (%s available)"}}
>  # {{"Not enough disk space to store %s"}}
>  
> {{RuntimeException}} is usually used to represent errors in the program logic 
> (think of one of its subclasses, {{NullPointerException}}), while the error 
> messages indicate that the Cassandra node is running out of disk space. Will 
> this mismatch be a problem? For example, the callers may miss the possibility 
> that {{getWriteDirectory()}} can run out of disk space because it does not 
> throw any {{IOException}}. Or, the callers trying to handle other 
> {{RuntimeException}} may accidentally (and incorrectly) handle the out of 
> disk space scenario.
> A similar scenario can be found in CASSANDRA-11448.



--
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