You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Aleksey Yeschenko (Jira)" <ji...@apache.org> on 2020/08/03 15:37:00 UTC
[jira] [Updated] (CASSANDRA-15928) Throw FSWriteError upon write
failures in order to apply DiskFailurePolicy
[ https://issues.apache.org/jira/browse/CASSANDRA-15928?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Yeschenko updated CASSANDRA-15928:
------------------------------------------
Status: Ready to Commit (was: Review In Progress)
> Throw FSWriteError upon write failures in order to apply DiskFailurePolicy
> --------------------------------------------------------------------------
>
> Key: CASSANDRA-15928
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15928
> Project: Cassandra
> Issue Type: Bug
> Components: Local/Other
> Reporter: Yifan Cai
> Assignee: Yifan Cai
> Priority: Normal
> Attachments: intellij_custom_insepction.xml
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Active handling of FSError in AbstractLocalAwareExecutorService was introduced in CASSANDRA-14993.
>
> However, in the current code base, there are places that catch the IOException but not wrap it with FSError, hence not triggering the DiskFailurePolicy. Especially when the bad disk no longer permits write operations, it could leads to the mutation stage backup. Therefore I propose to fix the IOException handling in those cases.
>
> From the code inspection, those 6 places are current not re-throwing an IOException with FSWriteError.
> # org.apache.cassandra.triggers.CustomClassLoader#addClassPath throws IOError. Invoked in TriggerExecutor's constructor
> # org.apache.cassandra.io.util.FileUtils#renameWithConfirm throws RuntimeException
> # org.apache.cassandra.io.util.FileUtils#truncate throws RuntimeException
> # org.apache.cassandra.io.util.FileUtils#write throws RuntimeException
> # org.apache.cassandra.db.compaction.LeveledManifest#sendBackToL0 throws RuntimeException. Invokes rewriteSSTableMetadata
> # org.apache.cassandra.io.sstable.SSTableHeaderFix#writeNewMetadata throws RuntimeException. Invokes rewriteSSTableMetadata
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org