You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Stefan Miklosovic (Jira)" <ji...@apache.org> on 2025/02/05 20:50:00 UTC

[jira] [Commented] (CASSANDRA-20289) Skip check for DirectIO when initializing tools

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

Stefan Miklosovic commented on CASSANDRA-20289:
-----------------------------------------------

+1 great, thanks.

> Skip check for DirectIO when initializing tools
> -----------------------------------------------
>
>                 Key: CASSANDRA-20289
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20289
>             Project: Apache Cassandra
>          Issue Type: Improvement
>          Components: Tool/sstable
>            Reporter: Jon Meredith
>            Assignee: Jon Meredith
>            Priority: Normal
>             Fix For: 5.0.x, 5.x
>
>         Attachments: ci_summary.html
>
>
> After CASSANDRA-19812 using sstabledump throws exceptions on startup in deployments
> where the conf file is not relative to {{path/to/cassandra/tools/bin}} or with a process that does not have permissions to create the commit log directory or files within it. It presumably applies to other offline tools, but I haven't tested yet.
> The new block size check for DirectIO makes the dirs/files, but isn't needed for tools, so can be skipped on tool initialization.
> Elided exception
> {code}
> $ path/to/cassandra/tools/bin/sstabledump system/tbl-uuid/sstable-Data.db
> Exception in thread "main" FSWriteError in /path/to/cassandra/tools/bin/../../data/commitlog
>        at org.apache.cassandra.io.util.PathUtils.propagateUnchecked(PathUtils.java)
>        at org.apache.cassandra.io.util.PathUtils.propagateUnchecked(PathUtils.java)
>        at org.apache.cassandra.io.util.PathUtils.ifNotExists(PathUtils.java)
>        at org.apache.cassandra.io.util.PathUtils.createDirectoriesIfNotExists(PathUtils.java)
>        at org.apache.cassandra.config.DatabaseDescriptor.resolveCommitLogWriteDiskAccessMode(DatabaseDescriptor.java)
>        at org.apache.cassandra.config.DatabaseDescriptor.initializeCommitLogDiskAccessMode(DatabaseDescriptor.java)
>        at org.apache.cassandra.config.DatabaseDescriptor.applySimpleConfig(DatabaseDescriptor.java)
>        at org.apache.cassandra.config.DatabaseDescriptor.toolInitialization(DatabaseDescriptor.java)
>        at org.apache.cassandra.tools.SSTableExport.<clinit>(SSTableExport.java)
> Caused by: java.nio.file.AccessDeniedException: path/to/cassandra/tools/bin/../../data
>        at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java)
>        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java)
>        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java)
>        at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java)
>        at java.base/java.nio.file.Files.createDirectory(Files.java)
>        at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java)
>        at java.base/java.nio.file.Files.createDirectories(Files.java)
>        at org.apache.cassandra.io.util.PathUtils.lambda$createDirectoriesIfNotExists$5(PathUtils.java)
>        at org.apache.cassandra.io.util.PathUtils.ifNotExists(PathUtils.java)
>        ... 6 more
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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