[jira] [Updated] (CASSANDRA-2116) Separate out filesystem errors from generic IOErrors
[ https://issues.apache.org/jira/browse/CASSANDRA-2116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-2116: - Attachment: CASSANDRA-2116.2.patch > Separate out filesystem errors from generic IOErrors > > > Key: CASSANDRA-2116 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2116 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Chris Goffinet >Assignee: Aleksey Yeschenko > Fix For: 1.2 > > Attachments: > 0001-Issue-2116-Replace-some-IOErrors-with-more-informati.patch, > 0001-Separate-out-filesystem-errors-from-generic-IOErrors.patch, 2116-v5.txt, > CASSANDRA-2116-v3.patch, CASSANDRA-2116-v4.patch, CASSANDRA-2116-v6.patch, > CASSANDRA-2116.2.patch > > > We throw IOErrors everywhere today in the codebase. We should separate out > specific errors such as (reading, writing) from filesystem into FSReadError > and FSWriteError. This makes it possible in the next ticket to allow certain > failure modes (kill the server if reads or writes fail to disk). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2116) Separate out filesystem errors from generic IOErrors
[ https://issues.apache.org/jira/browse/CASSANDRA-2116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-2116: - Attachment: CASSANDRA-2116-v6.patch > Separate out filesystem errors from generic IOErrors > > > Key: CASSANDRA-2116 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2116 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Chris Goffinet >Assignee: Aleksey Yeschenko > Fix For: 1.2 > > Attachments: > 0001-Issue-2116-Replace-some-IOErrors-with-more-informati.patch, > 0001-Separate-out-filesystem-errors-from-generic-IOErrors.patch, 2116-v5.txt, > CASSANDRA-2116-v3.patch, CASSANDRA-2116-v4.patch, CASSANDRA-2116-v6.patch > > > We throw IOErrors everywhere today in the codebase. We should separate out > specific errors such as (reading, writing) from filesystem into FSReadError > and FSWriteError. This makes it possible in the next ticket to allow certain > failure modes (kill the server if reads or writes fail to disk). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2116) Separate out filesystem errors from generic IOErrors
[ https://issues.apache.org/jira/browse/CASSANDRA-2116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-2116: -- Attachment: 2116-v5.txt v5 attached. I got up through KeyIterator in the review but got bogged down in the compressed reader code, which needs some deeper fixes. (Still lots of bare IOExceptions being thrown in CM.Writer and CRAR.) Here's the changes I made while going through it: - updated try/catch in CCE.create to wrap the bytesRemaining call specifically - moved StorageService.getCannonicalPath into FileUtils and added overload taking a File - updated CFMD.reload to turn ConfigurationException into RTE instead of IOE - Introduced CorruptSSTableError where we were using RTE. We don't do anything with it, yet, but this will make it much easier if we need to down the road since RTE is used *all* over the place. - added FSWE around setLength in CommitLogSegment - removed extra catches in doCleanupCompaction in favor of the existing catch (Exception) block, extended to Throwable - split FailureDetector RTE into RTE + FSWE - lots of changes to RandomAccessReader, CompressionMetadata, CRAR (incomplete) > Separate out filesystem errors from generic IOErrors > > > Key: CASSANDRA-2116 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2116 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Chris Goffinet >Assignee: Aleksey Yeschenko > Fix For: 1.2 > > Attachments: > 0001-Issue-2116-Replace-some-IOErrors-with-more-informati.patch, > 0001-Separate-out-filesystem-errors-from-generic-IOErrors.patch, 2116-v5.txt, > CASSANDRA-2116-v3.patch, CASSANDRA-2116-v4.patch > > > We throw IOErrors everywhere today in the codebase. We should separate out > specific errors such as (reading, writing) from filesystem into FSReadError > and FSWriteError. This makes it possible in the next ticket to allow certain > failure modes (kill the server if reads or writes fail to disk). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2116) Separate out filesystem errors from generic IOErrors
[ https://issues.apache.org/jira/browse/CASSANDRA-2116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-2116: - Attachment: CASSANDRA-2116-v4.patch I reverted change to the SSTII. Can't reliably throw any FSE from there, from the calling code either. SSTW methods' callers that used to catch IOE and do writer.abort() now catch FSWE and do the same. Any call that wasn't performing any cleanup was left as it was - without the cleanup. And most FSRE were converted to RTE since in most cases you can't be sure that FS was indeed the reason for the IOE. This hast to be all this time. > Separate out filesystem errors from generic IOErrors > > > Key: CASSANDRA-2116 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2116 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Chris Goffinet >Assignee: Aleksey Yeschenko > Fix For: 1.2 > > Attachments: > 0001-Issue-2116-Replace-some-IOErrors-with-more-informati.patch, > 0001-Separate-out-filesystem-errors-from-generic-IOErrors.patch, > CASSANDRA-2116-v3.patch, CASSANDRA-2116-v4.patch > > > We throw IOErrors everywhere today in the codebase. We should separate out > specific errors such as (reading, writing) from filesystem into FSReadError > and FSWriteError. This makes it possible in the next ticket to allow certain > failure modes (kill the server if reads or writes fail to disk). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2116) Separate out filesystem errors from generic IOErrors
[ https://issues.apache.org/jira/browse/CASSANDRA-2116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-2116: - Attachment: CASSANDRA-2116-v3.patch This should do it. > Separate out filesystem errors from generic IOErrors > > > Key: CASSANDRA-2116 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2116 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Chris Goffinet >Assignee: Aleksey Yeschenko > Fix For: 1.2 > > Attachments: > 0001-Issue-2116-Replace-some-IOErrors-with-more-informati.patch, > 0001-Separate-out-filesystem-errors-from-generic-IOErrors.patch, > CASSANDRA-2116-v3.patch > > > We throw IOErrors everywhere today in the codebase. We should separate out > specific errors such as (reading, writing) from filesystem into FSReadError > and FSWriteError. This makes it possible in the next ticket to allow certain > failure modes (kill the server if reads or writes fail to disk). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2116) Separate out filesystem errors from generic IOErrors
[ https://issues.apache.org/jira/browse/CASSANDRA-2116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-2116: - Attachment: (was: 0001-Issue-2116-Replace-some-IOErrors-with-more-informati.patch) > Separate out filesystem errors from generic IOErrors > > > Key: CASSANDRA-2116 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2116 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Chris Goffinet >Assignee: Aleksey Yeschenko > Fix For: 1.2 > > Attachments: > 0001-Issue-2116-Replace-some-IOErrors-with-more-informati.patch, > 0001-Separate-out-filesystem-errors-from-generic-IOErrors.patch > > > We throw IOErrors everywhere today in the codebase. We should separate out > specific errors such as (reading, writing) from filesystem into FSReadError > and FSWriteError. This makes it possible in the next ticket to allow certain > failure modes (kill the server if reads or writes fail to disk). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2116) Separate out filesystem errors from generic IOErrors
[ https://issues.apache.org/jira/browse/CASSANDRA-2116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-2116: - Attachment: 0001-Issue-2116-Replace-some-IOErrors-with-more-informati.patch > Separate out filesystem errors from generic IOErrors > > > Key: CASSANDRA-2116 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2116 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Chris Goffinet >Assignee: Aleksey Yeschenko > Fix For: 1.2 > > Attachments: > 0001-Issue-2116-Replace-some-IOErrors-with-more-informati.patch, > 0001-Issue-2116-Replace-some-IOErrors-with-more-informati.patch, > 0001-Separate-out-filesystem-errors-from-generic-IOErrors.patch > > > We throw IOErrors everywhere today in the codebase. We should separate out > specific errors such as (reading, writing) from filesystem into FSReadError > and FSWriteError. This makes it possible in the next ticket to allow certain > failure modes (kill the server if reads or writes fail to disk). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2116) Separate out filesystem errors from generic IOErrors
[ https://issues.apache.org/jira/browse/CASSANDRA-2116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-2116: -- Reviewer: jbellis (was: yukim) Thanks, Aleksey. This looks like a good start! As a rule of thumb, my expectation would be that most catch (IOException) block should either be removed (and just declare that method to throw IOE) or transform to FSE. Of course there will be exceptions, e.g. IOException from a socket instead of local disk. But a quick inspection shows a lot of places where this still needs to be done. Nit: should CLWE subclass FSError? > Separate out filesystem errors from generic IOErrors > > > Key: CASSANDRA-2116 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2116 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Chris Goffinet >Assignee: Aleksey Yeschenko > Fix For: 1.2 > > Attachments: > 0001-Issue-2116-Replace-some-IOErrors-with-more-informati.patch, > 0001-Separate-out-filesystem-errors-from-generic-IOErrors.patch > > > We throw IOErrors everywhere today in the codebase. We should separate out > specific errors such as (reading, writing) from filesystem into FSReadError > and FSWriteError. This makes it possible in the next ticket to allow certain > failure modes (kill the server if reads or writes fail to disk). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2116) Separate out filesystem errors from generic IOErrors
[ https://issues.apache.org/jira/browse/CASSANDRA-2116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-2116: - Attachment: 0001-Issue-2116-Replace-some-IOErrors-with-more-informati.patch This patch replaces some of the IOErrors with CommitLogWriteErrors or directory-aware FSReadErrors and FSWriteErrors. These will be used in #2118 to mark all keyspaces with durable_writes=true as non-writable (in case of CommitLogWriteError) or to mark affected (directory, keyspace, columnfamily) triples as non-writable (FSWriteError) or non-readable AND non-writable (FSReadError). Some other IOErrors might be replaced during #2118. > Separate out filesystem errors from generic IOErrors > > > Key: CASSANDRA-2116 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2116 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Chris Goffinet >Assignee: Aleksey Yeschenko > Fix For: 1.2 > > Attachments: > 0001-Issue-2116-Replace-some-IOErrors-with-more-informati.patch, > 0001-Separate-out-filesystem-errors-from-generic-IOErrors.patch > > > We throw IOErrors everywhere today in the codebase. We should separate out > specific errors such as (reading, writing) from filesystem into FSReadError > and FSWriteError. This makes it possible in the next ticket to allow certain > failure modes (kill the server if reads or writes fail to disk). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2116) Separate out filesystem errors from generic IOErrors
[ https://issues.apache.org/jira/browse/CASSANDRA-2116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-2116: -- Reviewer: yukim Component/s: Core Priority: Major (was: Minor) Assignee: Aleksey Yeschenko > Separate out filesystem errors from generic IOErrors > > > Key: CASSANDRA-2116 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2116 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Chris Goffinet >Assignee: Aleksey Yeschenko > Fix For: 1.2 > > Attachments: > 0001-Separate-out-filesystem-errors-from-generic-IOErrors.patch > > > We throw IOErrors everywhere today in the codebase. We should separate out > specific errors such as (reading, writing) from filesystem into FSReadError > and FSWriteError. This makes it possible in the next ticket to allow certain > failure modes (kill the server if reads or writes fail to disk). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Updated: (CASSANDRA-2116) Separate out filesystem errors from generic IOErrors
[ https://issues.apache.org/jira/browse/CASSANDRA-2116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Goffinet updated CASSANDRA-2116: -- Attachment: 0001-Separate-out-filesystem-errors-from-generic-IOErrors.patch 2 new classes: FSWriteError and FSReadError. > Separate out filesystem errors from generic IOErrors > > > Key: CASSANDRA-2116 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2116 > Project: Cassandra > Issue Type: Improvement >Reporter: Chris Goffinet >Priority: Minor > Fix For: 0.8 > > Attachments: > 0001-Separate-out-filesystem-errors-from-generic-IOErrors.patch > > > We throw IOErrors everywhere today in the codebase. We should separate out > specific errors such as (reading, writing) from filesystem into FSReadError > and FSWriteError. This makes it possible in the next ticket to allow certain > failure modes (kill the server if reads or writes fail to disk). -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira