cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andreas Schnitzerling (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CASSANDRA-6283) Windows 7 data files keept open / can't be deleted after compaction.
Date Wed, 05 Mar 2014 13:01:48 GMT

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

Andreas Schnitzerling edited comment on CASSANDRA-6283 at 3/5/14 1:00 PM:
--------------------------------------------------------------------------

Hello,
since I don't know all code areas of C*, I describe, what I tested to reproduce: I cleaned
system.log and used again C* 2.0.5-rel with LEAK detection and finalizer-patch in RAR.java.
After starting again C* w/o doing anything I got a lot LEAK messages. I waited until C* finished
his own work (mainly compacting I think). Now I started repair -par. Result are a lot of LEAK
messages. Here the first one:

{panel:title=nodetool repair -par events}
ERROR [Finalizer] 2014-03-05 13:45:25,932 RandomAccessReader.java (line 394) LEAK finalizer
had to clean up 
java.lang.Exception: RAR for D:\Programme\cassandra\data\events\eventsbyproject\events-eventsbyproject-jb-2002-Index.db
allocated
	at org.apache.cassandra.io.util.RandomAccessReader.<init>(RandomAccessReader.java:63)
	at org.apache.cassandra.io.util.RandomAccessReader.open(RandomAccessReader.java:103)
	at org.apache.cassandra.io.util.RandomAccessReader.open(RandomAccessReader.java:90)
	at org.apache.cassandra.io.util.BufferedPoolingSegmentedFile.createReader(BufferedPoolingSegmentedFile.java:45)
	at org.apache.cassandra.io.util.PoolingSegmentedFile.getSegment(PoolingSegmentedFile.java:39)
	at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:162)
	at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:143)
	at org.apache.cassandra.io.sstable.SSTableReader.getPosition(SSTableReader.java:936)
	at org.apache.cassandra.io.sstable.SSTableReader.getPosition(SSTableReader.java:871)
	at org.apache.cassandra.io.sstable.SSTableReader.getPositionsForRanges(SSTableReader.java:783)
	at org.apache.cassandra.io.sstable.SSTableReader.getScanner(SSTableReader.java:1186)
	at org.apache.cassandra.io.sstable.SSTableReader.getScanner(SSTableReader.java:1174)
	at org.apache.cassandra.db.compaction.AbstractCompactionStrategy.getScanners(AbstractCompactionStrategy.java:252)
	at org.apache.cassandra.db.compaction.CompactionManager$ValidationCompactionIterable.<init>(CompactionManager.java:888)
	at org.apache.cassandra.db.compaction.CompactionManager.doValidationCompaction(CompactionManager.java:787)
	at org.apache.cassandra.db.compaction.CompactionManager.access$600(CompactionManager.java:62)
	at org.apache.cassandra.db.compaction.CompactionManager$8.call(CompactionManager.java:397)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
{panel}
{panel:title=neighbor node}
ERROR [Finalizer] 2014-03-05 13:50:54,061 RandomAccessReader.java (line 394) LEAK finalizer
had to clean up 
java.lang.Exception: RAR for D:\Programme\cassandra\data\events\evrangesdevice\events-evrangesdevice-jb-905-Index.db
allocated
	at org.apache.cassandra.io.util.RandomAccessReader.<init>(RandomAccessReader.java:63)
	at org.apache.cassandra.io.util.RandomAccessReader.open(RandomAccessReader.java:103)
	at org.apache.cassandra.io.util.RandomAccessReader.open(RandomAccessReader.java:90)
	at org.apache.cassandra.io.util.BufferedPoolingSegmentedFile.createReader(BufferedPoolingSegmentedFile.java:45)
	at org.apache.cassandra.io.util.PoolingSegmentedFile.getSegment(PoolingSegmentedFile.java:39)
	at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:162)
	at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:143)
	at org.apache.cassandra.io.sstable.SSTableReader.getPosition(SSTableReader.java:936)
	at org.apache.cassandra.io.sstable.SSTableReader.getPosition(SSTableReader.java:871)
	at org.apache.cassandra.io.sstable.SSTableReader.getPositionsForRanges(SSTableReader.java:788)
	at org.apache.cassandra.io.sstable.SSTableReader.getScanner(SSTableReader.java:1186)
	at org.apache.cassandra.io.sstable.SSTableReader.getScanner(SSTableReader.java:1174)
	at org.apache.cassandra.db.compaction.AbstractCompactionStrategy.getScanners(AbstractCompactionStrategy.java:252)
	at org.apache.cassandra.db.compaction.CompactionManager$ValidationCompactionIterable.<init>(CompactionManager.java:888)
	at org.apache.cassandra.db.compaction.CompactionManager.doValidationCompaction(CompactionManager.java:787)
	at org.apache.cassandra.db.compaction.CompactionManager.access$600(CompactionManager.java:62)
	at org.apache.cassandra.db.compaction.CompactionManager$8.call(CompactionManager.java:397)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
{panel}
Repair successfully finished. If I can make more tests, let me know. After Thursday I will
be on holiday for 3 weeks and in office again at Mon, 03/31/2014.


was (Author: andie78):
Hello,
since I don't know all code areas of C*, I describe, what I tested to reproduce: I cleaned
system.log and used again C* 2.0.5-rel with LEAK detection and finalizer-patch in RAR.java.
After starting again C* w/o doing anything I got a lot LEAK messages. I waited until C* finished
his own work (mainly compacting I think). Now I started repair -par. Result are a lot of LEAK
messages. Here the first one:

{panel:title=nodetool repair -par events}
ERROR [Finalizer] 2014-03-05 13:45:25,932 RandomAccessReader.java (line 394) LEAK finalizer
had to clean up 
java.lang.Exception: RAR for D:\Programme\cassandra\data\events\eventsbyproject\events-eventsbyproject-jb-2002-Index.db
allocated
	at org.apache.cassandra.io.util.RandomAccessReader.<init>(RandomAccessReader.java:63)
	at org.apache.cassandra.io.util.RandomAccessReader.open(RandomAccessReader.java:103)
	at org.apache.cassandra.io.util.RandomAccessReader.open(RandomAccessReader.java:90)
	at org.apache.cassandra.io.util.BufferedPoolingSegmentedFile.createReader(BufferedPoolingSegmentedFile.java:45)
	at org.apache.cassandra.io.util.PoolingSegmentedFile.getSegment(PoolingSegmentedFile.java:39)
	at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:162)
	at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:143)
	at org.apache.cassandra.io.sstable.SSTableReader.getPosition(SSTableReader.java:936)
	at org.apache.cassandra.io.sstable.SSTableReader.getPosition(SSTableReader.java:871)
	at org.apache.cassandra.io.sstable.SSTableReader.getPositionsForRanges(SSTableReader.java:783)
	at org.apache.cassandra.io.sstable.SSTableReader.getScanner(SSTableReader.java:1186)
	at org.apache.cassandra.io.sstable.SSTableReader.getScanner(SSTableReader.java:1174)
	at org.apache.cassandra.db.compaction.AbstractCompactionStrategy.getScanners(AbstractCompactionStrategy.java:252)
	at org.apache.cassandra.db.compaction.CompactionManager$ValidationCompactionIterable.<init>(CompactionManager.java:888)
	at org.apache.cassandra.db.compaction.CompactionManager.doValidationCompaction(CompactionManager.java:787)
	at org.apache.cassandra.db.compaction.CompactionManager.access$600(CompactionManager.java:62)
	at org.apache.cassandra.db.compaction.CompactionManager$8.call(CompactionManager.java:397)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
{panel}
{panel:title=neighbor node}
ERROR [Finalizer] 2014-03-05 13:50:54,061 RandomAccessReader.java (line 394) LEAK finalizer
had to clean up 
java.lang.Exception: RAR for D:\Programme\cassandra\data\events\evrangesdevice\events-evrangesdevice-jb-905-Index.db
allocated
	at org.apache.cassandra.io.util.RandomAccessReader.<init>(RandomAccessReader.java:63)
	at org.apache.cassandra.io.util.RandomAccessReader.open(RandomAccessReader.java:103)
	at org.apache.cassandra.io.util.RandomAccessReader.open(RandomAccessReader.java:90)
	at org.apache.cassandra.io.util.BufferedPoolingSegmentedFile.createReader(BufferedPoolingSegmentedFile.java:45)
	at org.apache.cassandra.io.util.PoolingSegmentedFile.getSegment(PoolingSegmentedFile.java:39)
	at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:162)
	at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:143)
	at org.apache.cassandra.io.sstable.SSTableReader.getPosition(SSTableReader.java:936)
	at org.apache.cassandra.io.sstable.SSTableReader.getPosition(SSTableReader.java:871)
	at org.apache.cassandra.io.sstable.SSTableReader.getPositionsForRanges(SSTableReader.java:788)
	at org.apache.cassandra.io.sstable.SSTableReader.getScanner(SSTableReader.java:1186)
	at org.apache.cassandra.io.sstable.SSTableReader.getScanner(SSTableReader.java:1174)
	at org.apache.cassandra.db.compaction.AbstractCompactionStrategy.getScanners(AbstractCompactionStrategy.java:252)
	at org.apache.cassandra.db.compaction.CompactionManager$ValidationCompactionIterable.<init>(CompactionManager.java:888)
	at org.apache.cassandra.db.compaction.CompactionManager.doValidationCompaction(CompactionManager.java:787)
	at org.apache.cassandra.db.compaction.CompactionManager.access$600(CompactionManager.java:62)
	at org.apache.cassandra.db.compaction.CompactionManager$8.call(CompactionManager.java:397)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
{panel}
If I can make more tests, let me know. After Thursday I will be on holiday for 3 weeks and
in office again at Mon, 03/31/2014.

> 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: 6283_StreamWriter_patch.txt, 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.2#6252)

Mime
View raw message