[ 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