[ 
https://issues.apache.org/jira/browse/CASSANDRA-13692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16154343#comment-16154343
 ] 

Dimitar Dimitrov edited comment on CASSANDRA-13692 at 9/5/17 9:50 PM:
----------------------------------------------------------------------

I ended up rebasing the 3.0, 3.11, and trunk versions of the change, and the 
results are as follows:
* No more consistency_test.TestConsistency.test_13747 failures for the 3.0 and 
3.11 changes. Small differences between actual and expected dtest failures, 
which seem to be flaking out.
* The trunk changes are still hitting what seems to be an existing problem 
plaguing cassci.datastax.com trunk dtest jobs for the last 10 days or so (see 
https://cassci.datastax.com/job/trunk_dtest/).
** The problem is currently being investigated.

Now it looks like the 2.2, 3.0, and 3.11 changes can be accepted as passing the 
testall and dtest criteria, only the trunk changes need to be verified, after 
the problem affecting trunk gets resolved. I'll post an update once this 
happens, but in the meantime, it's possible to mark this as ready for review.


was (Author: dimitarndimitrov):
I ended up rebasing the 3.0, 3.11, and trunk versions of the change, and the 
results are as follows:
* No more consistency_test.TestConsistency.test_13747 failures for the 3.0 and 
3.11 changes. Small differences between actual and expected dtest failures, 
which seem to be flaking out.
* The trunk changes are still hitting what seems to be an existing problem 
plaguing cassci.datastax.com trunk dtest jobs for the last 10 days or so (see 
https://cassci.datastax.com/job/trunk_dtest/).
** The problem is currently being investigated.

Now it looks like the 2.2, 3.0, and 3.11 changes can be accepted as passing the 
testall and dtest criteria, only the trunk changes need to be verified, after 
the problem affecting trunk gets resolved. I'll post an update once this 
happens, but in the meantime, I'd assume it's safe to mark this as "Awaiting 
Feedback".

> CompactionAwareWriter_getWriteDirectory throws incompatible exceptions
> ----------------------------------------------------------------------
>
>                 Key: CASSANDRA-13692
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13692
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Compaction
>            Reporter: Hao Zhong
>            Assignee: Dimitar Dimitrov
>              Labels: lhf
>         Attachments: c13692-2.2-dtest-results.PNG, 
> c13692-2.2-testall-results.PNG, c13692-3.0-dtest-results.PNG, 
> c13692-3.0-testall-results.PNG, c13692-3.11-dtest-results.PNG, 
> c13692-3.11-testall-results.PNG, c13692-dtest-results.PNG, 
> c13692-testall-results.PNG
>
>
> The CompactionAwareWriter_getWriteDirectory throws RuntimeException:
> {code}
> public Directories.DataDirectory getWriteDirectory(Iterable<SSTableReader> 
> sstables, long estimatedWriteSize)
>     {
>         File directory = null;
>         for (SSTableReader sstable : sstables)
>         {
>             if (directory == null)
>                 directory = sstable.descriptor.directory;
>             if (!directory.equals(sstable.descriptor.directory))
>             {
>                 logger.trace("All sstables not from the same disk - putting 
> results in {}", directory);
>                 break;
>             }
>         }
>         Directories.DataDirectory d = 
> getDirectories().getDataDirectoryForFile(directory);
>         if (d != null)
>         {
>             long availableSpace = d.getAvailableSpace();
>             if (availableSpace < estimatedWriteSize)
>                 throw new RuntimeException(String.format("Not enough space to 
> write %s to %s (%s available)",
>                                                          
> FBUtilities.prettyPrintMemory(estimatedWriteSize),
>                                                          d.location,
>                                                          
> FBUtilities.prettyPrintMemory(availableSpace)));
>             logger.trace("putting compaction results in {}", directory);
>             return d;
>         }
>         d = getDirectories().getWriteableLocation(estimatedWriteSize);
>         if (d == null)
>             throw new RuntimeException(String.format("Not enough disk space 
> to store %s",
>                                                      
> FBUtilities.prettyPrintMemory(estimatedWriteSize)));
>         return d;
>     }
> {code}
> However, the thrown exception does not  trigger the failure policy. 
> CASSANDRA-11448 fixed a similar problem. The buggy code is:
> {code}
> protected Directories.DataDirectory getWriteDirectory(long writeSize)
>     {
>         Directories.DataDirectory directory = 
> getDirectories().getWriteableLocation(writeSize);
>         if (directory == null)
>             throw new RuntimeException("Insufficient disk space to write " + 
> writeSize + " bytes");
>         return directory;
>     }
> {code}
> The fixed code is:
> {code}
> protected Directories.DataDirectory getWriteDirectory(long writeSize)
>     {
>         Directories.DataDirectory directory = 
> getDirectories().getWriteableLocation(writeSize);
>         if (directory == null)
>             throw new FSWriteError(new IOException("Insufficient disk space 
> to write " + writeSize + " bytes"), "");
>         return directory;
>     }
> {code}
> The fixed code throws FSWE and triggers the failure policy.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to