incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clint Kelly <clint.ke...@gmail.com>
Subject Re: Error "evicting cold readers" when launching an EmbeddedCassandraService for a second time
Date Fri, 02 May 2014 17:41:22 GMT
Hi Duy Hai,

I was just trying to be extra-paranoid and to make sure that any screw up
in one unit test did not at all affect the environment for my other unit
tests.

What do you mean by truncating tables BTW?

Best regards,
Clint




On Thu, May 1, 2014 at 11:05 AM, DuyHai Doan <doanduyhai@gmail.com> wrote:

> 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