[
https://issues.apache.org/jira/browse/CASSANDRA-4021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13425340#comment-13425340
]
Robert Coli commented on CASSANDRA-4021:
----------------------------------------
I don't especially "expect" Cassandra to cope with arbitrary user-created files
in the directories it is supposed to have control over. The purpose of my
comment was primarily to assist any other operator who might have accidentally
created such a file, who would then google the exception and be confused
because this ticket was marked no-repro.
However.. the comment for scrubDataDirectories says the following :
"
* Removes unnecessary files from the cf directory at startup: these
include temp files, orphans, zero-length files
* and compacted sstables. Files that cannot be recognized will be ignored.
"
So it is a goal to "recognize" files properly, and to "ignore" files that are
not "recognized" properly.
Further in the code we see..
"
if (!"snapshots".equals(name) && !"backups".equals(name) &&
!name.contains(".json"))
"
Which suggests that had my file not happened to have had suffix .json, it would
have been "recognized" and at least logged an error about being an invalid
file, even if it were not "ignored," I would have had a chance of reading a
relevant log message ...
I agree that the practice of creating arbitrary files named like sstables, but
with an additional "-" in them should be considered hazardous!
But as we can easily "recognize" that any file with more "-" delimited elements
in them than possible are not sstables, I continue to suggest that the user
might prefer to discover this before Cassandra has tried and failed to treat
such a file as a sstable, and refused to start as a result of trying to scrub
the broken sstable. :D
> CFS.scrubDataDirectories tries to delete nonexistent orphans
> ------------------------------------------------------------
>
> Key: CASSANDRA-4021
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4021
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 0.7 beta 2
> Reporter: Brandon Williams
> Assignee: Brandon Williams
> Priority: Minor
> Labels: datastax_qa
> Attachments: 4021.txt
>
>
> The check only looks for a missing data file, then deletes all other
> components, however it's possible for the data file and another component to
> be missing, causing an error:
> {noformat}
> WARN 17:19:28,765 Removing orphans for
> /var/lib/cassandra/data/system/HintsColumnFamily/system-HintsColumnFamily-hd-24492:
> [Index.db, Filter.db, Digest.sha1, Statistics.db, Data.db]
> ERROR 17:19:28,766 Exception encountered during startup
> java.lang.AssertionError: attempted to delete non-existing file
> system-HintsColumnFamily-hd-24492-Index.db
> at
> org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:49)
> at
> org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:44)
> at
> org.apache.cassandra.db.ColumnFamilyStore.scrubDataDirectories(ColumnFamilyStore.java:357)
> at
> org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:167)
> at
> org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:352)
> at
> org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:105)
> java.lang.AssertionError: attempted to delete non-existing file
> system-HintsColumnFamily-hd-24492-Index.db
> at
> org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:49)
> at
> org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:44)
> at
> org.apache.cassandra.db.ColumnFamilyStore.scrubDataDirectories(ColumnFamilyStore.java:357)
> at
> org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:167)
> at
> org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:352)
> at
> org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:105)
> Exception encountered during startup: attempted to delete non-existing file
> system-HintsColumnFamily-hd-24492-Index.db
> {noformat}
--
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