[ https://issues.apache.org/jira/browse/CASSANDRA-6283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13904634#comment-13904634 ]
Joshua McKenzie commented on CASSANDRA-6283: -------------------------------------------- A couple of thoughts - linux allows you to delete a file even though another process has a handle to it, keeping a reference in the /proc filesystem (http://archive09.linux.com/articles/58142) until application shutdown. I'm thinking it's possible that on linux FileUtils.deleteWithConfirm is deleting a file that another thread has a handle to and we're none the wiser. Commenting out the thrown exception in that function removes all LEAK messages and other errors for me when running nodetool.bat repair without -par, and after a run I have snapshot files laying around that can't be deleted but don't show up in the handle search in process explorer. Stopping java makes them deletable so it's clearly a JVM handle thing... > Windows 7 data files keept open / can't be deleted after compaction. > -------------------------------------------------------------------- > > Key: CASSANDRA-6283 > URL: https://issues.apache.org/jira/browse/CASSANDRA-6283 > Project: Cassandra > Issue Type: Bug > Components: Core > Environment: Windows 7 (32) / Java 1.7.0.45 > Reporter: Andreas Schnitzerling > Assignee: Joshua McKenzie > Labels: compaction > Fix For: 2.0.6 > > Attachments: leakdetect.patch, screenshot-1.jpg, system.log > > > Files cannot be deleted, patch CASSANDRA-5383 (Win7 deleting problem) doesn't > help on Win-7 on Cassandra 2.0.2. Even 2.1 Snapshot is not running. The cause > is: Opened file handles seem to be lost and not closed properly. Win 7 > blames, that another process is still using the file (but its obviously > cassandra). Only restart of the server makes the files deleted. But after > heavy using (changes) of tables, there are about 24K files in the data folder > (instead of 35 after every restart) and Cassandra crashes. I experiminted and > I found out, that a finalizer fixes the problem. So after GC the files will > be deleted (not optimal, but working fine). It runs now 2 days continously > without problem. Possible fix/test: > I wrote the following finalizer at the end of class > org.apache.cassandra.io.util.RandomAccessReader: > {code:title=RandomAccessReader.java|borderStyle=solid} > @Override > protected void finalize() throws Throwable { > deallocate(); > super.finalize(); > } > {code} > Can somebody test / develop / patch it? Thx. -- This message was sent by Atlassian JIRA (v6.1.5#6160)