incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From DuyHai Doan <doanduy...@gmail.com>
Subject Re: Error "evicting cold readers" when launching an EmbeddedCassandraService for a second time
Date Thu, 01 May 2014 18:05:28 GMT
Hello Clint

 Why do you need to remove all SSTables or dropping keyspace between tests
? Truncating tables is not enough to have clean and repeatable tests ?

 Regards

 Duy Hai DOAN


On Thu, May 1, 2014 at 5:54 PM, Clint Kelly <clint.kelly@gmail.com> wrote:

> Hi,
>
> I am deleting all of the directories for SSTables, etc. between tests.  My
> goal is for each test to start off with a completely blank-slate Cassandra
> install.
>
> I can more-or-less get what I want by just keeping the same
> EmbeddedCassandraSession active through *all* of my unit tests and then
> just creating and dropping keyspaces every test, but I'd like to know how
> to totally start over if I'd like to.
>
> Thanks!
>
> Best regards,
> Clint
>
>
>
>
> On Thu, May 1, 2014 at 2:15 AM, DuyHai Doan <doanduyhai@gmail.com> wrote:
>
>> Hello Clint
>>
>>  Just one question, are you sure that nothing from your code remove the
>> SSTables between tests ? I'm using extensively the same infrastructure than
>> the EmbeddedCassandraService with Achilles and I have no such issue so far
>>
>>  Regards
>>
>>
>>
>> On Wed, Apr 30, 2014 at 8:43 PM, Clint Kelly <clint.kelly@gmail.com>wrote:
>>
>>> Hi all,
>>>
>>> I have a unit test framework for a Cassandra project that I'm working
>>> on.  For every one of my test classes, I delete all of the data file,
>>> commit log, and saved cache locations, start an EmbeddedCassandraService,
>>> and populate a keyspace and tables from scratch.
>>>
>>> Currently, the unit tests that run in my first test class work fine, but
>>> those in my second class die with this error:
>>>
>>>     java.io.FileNotFoundException:
>>> /Users/clint/work/external-repos/cassandra2-hadoop2/target/cassandra/data/system/local/system-local-jb-5-Data.db
>>> (No such file or directory)
>>>
>>> This error happens immediately after I call
>>> EmbeddedCassandraService.start();
>>>
>>> I turned on debugging and traced through the code, and I see this right
>>> before the error message:
>>>
>>> 14/04/30 11:22:47 DEBUG org.apache.cassandra.service.FileCacheService:
>>> Evicting cold readers for
>>> /Users/clint/work/external-repos/cassandra2-hadoop2/target/cassandra/data/system/local/system-local-jb-5-Data.db
>>>
>>> This seems to happen in a callback when a value (in this case, a file
>>> reader) is evicted from a Guava cache.
>>>
>>> I assume that the problem that I have is something like the following:
>>>
>>>    - There is some kind of reading thread associated with
>>>    target/cassandra/data/system/local/system-local-jb-5-Data.db
>>>    - Even after I stop my EmbeddedCassandraService and blow away all of
>>>    the data file, commit log, and saved cache locations from my first unit
>>>    test, the information about the reader for the now-deleted data file still
>>>    exists.
>>>    - Later when this reference expires in the cache and Cassandra goes
>>>    to notify the reader, the error occurs because the file no longer exists.
>>>
>>> Does anyone have any suggestions on how to deal with this?
>>>
>>> Best regards,
>>> Clint
>>>
>>
>>
>

Mime
View raw message