cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dimitar Dimitrov (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CASSANDRA-13692) CompactionAwareWriter_getWriteDirectory throws incompatible exceptions
Date Thu, 14 Sep 2017 11:29:00 GMT

    [ 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/14/17 11:28 AM:
------------------------------------------------------------------------

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, it's possible to
mark this as ready for review.

> 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-dtest-results-updated.PNG, c13692-3.0-testall-results.PNG, c13692-3.11-dtest-results.PNG,
c13692-3.11-dtest-results-updated.PNG, c13692-3.11-testall-results.PNG, c13692-dtest-results.PNG,
c13692-dtest-results-updated.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-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


Mime
View raw message