You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Oleg Mürk <ol...@gmail.com> on 2010/03/24 15:28:49 UTC
NullPointerException in DatabaseDescriptor.getComparator
Hello,
I am having the following problem with Cassandra. When I first start
Cassandra, it works fine and I insert some data, but when I kill cassandra
and then start it again, it starts throwing NullPointerException (into
log4j). When I restart Cassandra once more, it doesn't throw the exception
(usually), but when I query for previously inserted data, it is gone.
I am using out-of-the box Cassandra 0.5.1 on a single node (Java 6 / OS X
10.5.8). My schema is as follows:
------------------------------------------------
<Keyspace Name="zclosure">
<KeysCachedFraction>0.01</KeysCachedFraction>
<ColumnFamily CompareWith="UTF8Type" Name="url-item"/>
<ColumnFamily CompareWith="UTF8Type" Name="url-item-headers"/>
</Keyspace>
------------------------------------------------
and the exception log is below. Any ideas?
Thank You,
Oleg Mürk
-----------------------------------------------
.......
INFO - Log replay complete
INFO - Saved Token found: 93658780503831948900522797887764765383
INFO - Starting up server gossip
DEBUG - Starting to listen on localhost/127.0.0.1
DEBUG - Binding thrift service to localhost/127.0.0.1:9160
INFO - Cassandra starting up...
DEBUG - Disseminating load info ...
DEBUG - get_count
DEBUG - get_slice
DEBUG - strongread reading data for SliceFromReadCommand(table='zclosure',
key='http://paulgraham.com/kate.html',
column_parent='QueryPath(columnFamilyName='url-item',
superColumnName='null', col
umnName='null')', start='', finish='', reversed=false, count=2147483647)
from 29@localhost/127.0.0.1
ERROR - Error in ThreadPoolExecutor
java.lang.NullPointerException
at
org.apache.cassandra.config.DatabaseDescriptor.getComparator(DatabaseDescriptor.java:914)
at
org.apache.cassandra.io.SSTableReader.getColumnComparator(SSTableReader.java:414)
at
org.apache.cassandra.db.filter.SSTableSliceIterator.<init>(SSTableSliceIterator.java:54)
at
org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:63)
at
org.apache.cassandra.db.ColumnFamilyStore.getColumnFamilyInternal(ColumnFamilyStore.java:1245)
at
org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1203)
at
org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1172)
at org.apache.cassandra.db.Table.getRow(Table.java:415)
at
org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:59)
at
org.apache.cassandra.db.ReadVerbHandler.doVerb(ReadVerbHandler.java:79)
at
org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:38)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:637)
ERROR - Fatal exception in thread Thread[ROW-READ-STAGE:1,5,main]
java.lang.NullPointerException
at
org.apache.cassandra.config.DatabaseDescriptor.getComparator(DatabaseDescriptor.java:914)
at
org.apache.cassandra.io.SSTableReader.getColumnComparator(SSTableReader.java:414)
at
org.apache.cassandra.db.filter.SSTableSliceIterator.<init>(SSTableSliceIterator.java:54)
at
org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:63)
at
org.apache.cassandra.db.ColumnFamilyStore.getColumnFamilyInternal(ColumnFamilyStore.java:1245)
at
org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1203)
at
org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1172)
at org.apache.cassandra.db.Table.getRow(Table.java:415)
at
org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:59)
at
org.apache.cassandra.db.ReadVerbHandler.doVerb(ReadVerbHandler.java:79)
at
org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:38)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:637)
Re: NullPointerException in DatabaseDescriptor.getComparator
Posted by Oleg Mürk <ol...@gmail.com>.
Thanks! This has solved the problem!
On Wed, Mar 24, 2010 at 5:50 PM, gabriele renzi <rf...@gmail.com> wrote:
> On Wed, Mar 24, 2010 at 3:36 PM, Oleg Mürk <ol...@gmail.com> wrote:
> > Hi Jonathan,
> >
> > On Wed, Mar 24, 2010 at 4:32 PM, Jonathan Ellis <jb...@gmail.com>
> wrote:
> >>
> >> probably 0.5.1 is allowing an invalid query and erroring out when it
> >> actually runs it.
> >
> > I am pretty sure that the same query works OK when I initially start
> > Cassandra.
> > The problems occur after restarting.
>
>
> this seems the error addressed by CASSANDRA-915 , as I was saying in
> comments to CASSANDRA-914, cassandra manages column family with names
> the first time it's started but fails later (I guess when a new file
> was already written and it is trying to reopen it)
>
>
> Try making the CFs UrlItem and UrlItemHeaders and it should go away.
>
> --
> blog en: http://www.riffraff.info
> blog it: http://riffraff.blogsome.com
>
Re: NullPointerException in DatabaseDescriptor.getComparator
Posted by Jonathan Ellis <jb...@gmail.com>.
Ah, you're right.
So it is a validation problem that 0.6 catches, just not the one I
thought at first. :)
On Wed, Mar 24, 2010 at 10:50 AM, gabriele renzi <rf...@gmail.com> wrote:
> On Wed, Mar 24, 2010 at 3:36 PM, Oleg Mürk <ol...@gmail.com> wrote:
>> Hi Jonathan,
>>
>> On Wed, Mar 24, 2010 at 4:32 PM, Jonathan Ellis <jb...@gmail.com> wrote:
>>>
>>> probably 0.5.1 is allowing an invalid query and erroring out when it
>>> actually runs it.
>>
>> I am pretty sure that the same query works OK when I initially start
>> Cassandra.
>> The problems occur after restarting.
>
>
> this seems the error addressed by CASSANDRA-915 , as I was saying in
> comments to CASSANDRA-914, cassandra manages column family with names
> the first time it's started but fails later (I guess when a new file
> was already written and it is trying to reopen it)
>
>
> Try making the CFs UrlItem and UrlItemHeaders and it should go away.
>
> --
> blog en: http://www.riffraff.info
> blog it: http://riffraff.blogsome.com
>
Re: NullPointerException in DatabaseDescriptor.getComparator
Posted by gabriele renzi <rf...@gmail.com>.
On Wed, Mar 24, 2010 at 3:36 PM, Oleg Mürk <ol...@gmail.com> wrote:
> Hi Jonathan,
>
> On Wed, Mar 24, 2010 at 4:32 PM, Jonathan Ellis <jb...@gmail.com> wrote:
>>
>> probably 0.5.1 is allowing an invalid query and erroring out when it
>> actually runs it.
>
> I am pretty sure that the same query works OK when I initially start
> Cassandra.
> The problems occur after restarting.
this seems the error addressed by CASSANDRA-915 , as I was saying in
comments to CASSANDRA-914, cassandra manages column family with names
the first time it's started but fails later (I guess when a new file
was already written and it is trying to reopen it)
Try making the CFs UrlItem and UrlItemHeaders and it should go away.
--
blog en: http://www.riffraff.info
blog it: http://riffraff.blogsome.com
Re: NullPointerException in DatabaseDescriptor.getComparator
Posted by Oleg Mürk <ol...@gmail.com>.
Hi Jonathan,
On Wed, Mar 24, 2010 at 4:32 PM, Jonathan Ellis <jb...@gmail.com> wrote:
> probably 0.5.1 is allowing an invalid query and erroring out when it
> actually runs it.
I am pretty sure that the same query works OK when I initially start
Cassandra.
The problems occur after restarting.
Oleg
Re: NullPointerException in DatabaseDescriptor.getComparator
Posted by Jonathan Ellis <jb...@gmail.com>.
probably 0.5.1 is allowing an invalid query and erroring out when it
actually runs it. 0.6 beta3 should catch the problem earlier.
On Wed, Mar 24, 2010 at 9:28 AM, Oleg Mürk <ol...@gmail.com> wrote:
> Hello,
> I am having the following problem with Cassandra. When I first start
> Cassandra, it works fine and I insert some data, but when I kill cassandra
> and then start it again, it starts throwing NullPointerException (into
> log4j). When I restart Cassandra once more, it doesn't throw the exception
> (usually), but when I query for previously inserted data, it is gone.
> I am using out-of-the box Cassandra 0.5.1 on a single node (Java 6 / OS X
> 10.5.8). My schema is as follows:
> ------------------------------------------------
> <Keyspace Name="zclosure">
> <KeysCachedFraction>0.01</KeysCachedFraction>
> <ColumnFamily CompareWith="UTF8Type" Name="url-item"/>
> <ColumnFamily CompareWith="UTF8Type" Name="url-item-headers"/>
> </Keyspace>
> ------------------------------------------------
> and the exception log is below. Any ideas?
> Thank You,
> Oleg Mürk
> -----------------------------------------------
> .......
> INFO - Log replay complete
> INFO - Saved Token found: 93658780503831948900522797887764765383
> INFO - Starting up server gossip
> DEBUG - Starting to listen on localhost/127.0.0.1
> DEBUG - Binding thrift service to localhost/127.0.0.1:9160
> INFO - Cassandra starting up...
> DEBUG - Disseminating load info ...
> DEBUG - get_count
> DEBUG - get_slice
> DEBUG - strongread reading data for SliceFromReadCommand(table='zclosure',
> key='http://paulgraham.com/kate.html',
> column_parent='QueryPath(columnFamilyName='url-item',
> superColumnName='null', col
> umnName='null')', start='', finish='', reversed=false, count=2147483647)
> from 29@localhost/127.0.0.1
> ERROR - Error in ThreadPoolExecutor
> java.lang.NullPointerException
> at
> org.apache.cassandra.config.DatabaseDescriptor.getComparator(DatabaseDescriptor.java:914)
> at
> org.apache.cassandra.io.SSTableReader.getColumnComparator(SSTableReader.java:414)
> at
> org.apache.cassandra.db.filter.SSTableSliceIterator.<init>(SSTableSliceIterator.java:54)
> at
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:63)
> at
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamilyInternal(ColumnFamilyStore.java:1245)
> at
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1203)
> at
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1172)
> at org.apache.cassandra.db.Table.getRow(Table.java:415)
> at
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:59)
> at
> org.apache.cassandra.db.ReadVerbHandler.doVerb(ReadVerbHandler.java:79)
> at
> org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:38)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:637)
> ERROR - Fatal exception in thread Thread[ROW-READ-STAGE:1,5,main]
> java.lang.NullPointerException
> at
> org.apache.cassandra.config.DatabaseDescriptor.getComparator(DatabaseDescriptor.java:914)
> at
> org.apache.cassandra.io.SSTableReader.getColumnComparator(SSTableReader.java:414)
> at
> org.apache.cassandra.db.filter.SSTableSliceIterator.<init>(SSTableSliceIterator.java:54)
> at
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:63)
> at
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamilyInternal(ColumnFamilyStore.java:1245)
> at
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1203)
> at
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1172)
> at org.apache.cassandra.db.Table.getRow(Table.java:415)
> at
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:59)
> at
> org.apache.cassandra.db.ReadVerbHandler.doVerb(ReadVerbHandler.java:79)
> at
> org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:38)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:637)
>