incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ramzi Rabah <rra...@playdom.com>
Subject Re: Remove not working for me
Date Fri, 09 Oct 2009 01:45:39 GMT
Yeah I wiped out my commitLog files and data files and restarted the
server, and I still ran into this problem.

Thanks
Ray

On Thu, Oct 8, 2009 at 6:37 PM, Jonathan Ellis <jbellis@gmail.com> wrote:
> Yes, that's a bug all right.
>
> Is this reproducible when you start with an empty database?
>
> On Thu, Oct 8, 2009 at 7:53 PM, Ramzi Rabah <rrabah@playdom.com> wrote:
>> Hi Jonathan thanks a lot for the quick response :) here is the error
>> in the server log
>>
>> DEBUG [pool-1-thread-4] 2009-10-08 20:24:17,428 StorageProxy.java
>> (line 515) weakreadlocal reading
>> SliceFromReadCommand(table='Keyspace1', key='user1',
>> column_parent='QueryPath(columnFamilyName='Datastore',
>> superColumnName='[B@1a5e65f', columnName='null')', start='',
>> finish='', reversed=false, count=3)
>> ERROR [pool-1-thread-4] 2009-10-08 20:24:17,430 Cassandra.java (line
>> 657) Internal error processing get_slice
>> java.lang.AssertionError
>>       at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1347)
>>       at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1325)
>>       at org.apache.cassandra.db.Table.getRow(Table.java:590)
>>       at org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:59)
>>       at org.apache.cassandra.service.StorageProxy.weakReadLocal(StorageProxy.java:518)
>>       at org.apache.cassandra.service.StorageProxy.readProtocol(StorageProxy.java:310)
>>       at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:99)
>>       at org.apache.cassandra.service.CassandraServer.getSlice(CassandraServer.java:180)
>>       at org.apache.cassandra.service.CassandraServer.multigetSliceInternal(CassandraServer.java:249)
>>       at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:218)
>>       at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:651)
>>       at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:609)
>>       at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:253)
>>       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>>       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>>       at java.lang.Thread.run(Thread.java:636)
>>
>> On Thu, Oct 8, 2009 at 5:41 PM, Jonathan Ellis <jbellis@gmail.com> wrote:
>>> "Internal error" usually means you found a bug.  Are there any
>>> exceptions in the server log?
>>>
>>> On Thu, Oct 8, 2009 at 7:33 PM, Ramzi Rabah <rrabah@playdom.com> wrote:
>>>> Hello all,
>>>>
>>>> I am trying to test Cassandra for deploying it in production in our
>>>> company, and I am very pleased with the performance of the
>>>> reads/writes on Columns. I did run into an issue with the API though
>>>> while trying to play with supercolumns. Here is my code:
>>>>
>>>> // Creating a supercolumn with name = "key" and columns ("value", "created").
>>>>        long now = System.currentTimeMillis();
>>>>        byte[] keyAsBytes = key.getBytes();
>>>>
>>>>        ColumnOrSuperColumn colOrSuperCol = new ColumnOrSuperColumn();
>>>>        SuperColumn superCol = new SuperColumn();
>>>>        colOrSuperCol.setSuper_column(superCol);
>>>>        superCol.setName(keyAsBytes);
>>>>        List<Column> cols = new ArrayList<Column>();
>>>>
>>>>        // first the key/value pair
>>>>        Column col = new Column();
>>>>        col.setName("value".getBytes());
>>>>        col.setValue(value);
>>>>        cols.add(col);
>>>>
>>>>        // then the time created
>>>>        col = new Column();
>>>>        col.setName("created".getBytes());
>>>>        col.setValue((now + "").getBytes());
>>>>        cols.add(col);
>>>>
>>>>        superCol.setColumns(cols);
>>>>
>>>>        Map<String, List<ColumnOrSuperColumn>> map = new
>>>> HashMap<String, List<ColumnOrSuperColumn>>();
>>>>        List<ColumnOrSuperColumn> list = new ArrayList<ColumnOrSuperColumn>();
>>>>        list.add(colOrSuperCol);
>>>>        map.put(COLUMN_FAMILY_NAME, list);
>>>>
>>>>        client.batch_insert(KEYSPACE_NAME, key, map, ConsistencyLevel.ONE);
>>>>
>>>>
>>>> // The GET of the supercolumn
>>>>        SlicePredicate predicate = new SlicePredicate(null, new
>>>> SliceRange(new byte
>>>> [0], new byte[0], false, 2));
>>>>        ColumnParent parent = new ColumnParent(COLUMN_FAMILY_NAME,
>>>> key.getBytes());
>>>>
>>>>        List<ColumnOrSuperColumn> columns = null;
>>>>            columns = client.get_slice(KEYSPACE_NAME, key,
>>>>                    parent, predicate, ConsistencyLevel.ONE);
>>>>
>>>>
>>>> // delete the supercolumn
>>>>            client.remove(KEYSPACE_NAME, key,new
>>>> ColumnPath(COLUMN_FAMILY_NAME, null, null),
>>>> System.currentTimeMillis(),ConsistencyLevel.ONE);
>>>>
>>>> // Do the get again
>>>>
>>>> When I try to delete the super column and then I try to read it again,
>>>> I get an exception thrown by cassandra
>>>>
>>>> org.apache.thrift.TApplicationException: Internal error processing get_slice
>>>>        at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>>>>        at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:171)
>>>>        at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:150)
>>>>        at com.playdom.cassandra.datastore.CassandraDataStore.testGet(CassandraDataStore.java:233)
>>>>        at com.playdom.cassandra.test.TestCassandraDataStore.testSetAndGetTrial(TestCassandraDataStore.java:58)
>>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>>        at junit.framework.TestCase.runTest(TestCase.java:168)
>>>>        at junit.framework.TestCase.runBare(TestCase.java:134)
>>>>        at junit.framework.TestResult$1.protect(TestResult.java:110)
>>>>        at junit.framework.TestResult.runProtected(TestResult.java:128)
>>>>        at junit.framework.TestResult.run(TestResult.java:113)
>>>>        at junit.framework.TestCase.run(TestCase.java:124)
>>>>        at junit.framework.TestSuite.runTest(TestSuite.java:232)
>>>>        at junit.framework.TestSuite.run(TestSuite.java:227)
>>>>        at junit.textui.TestRunner.doRun(TestRunner.java:116)
>>>>        at com.intellij.rt.execution.junit.IdeaTestRunner.doRun(IdeaTestRunner.java:94)
>>>>        at junit.textui.TestRunner.doRun(TestRunner.java:109)
>>>>        at com.intellij.rt.execution.junit.IdeaTestRunner.startRunnerWithArgs(IdeaTestRunner.java:22)
>>>>        at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:118)
>>>>        at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
>>>>
>>>> I was expecting a NotFoundException() since I thought the read will
>>>> not find anything. Also anytime I try to rerun this after the delete I
>>>> always get an exception in the reads.
>>>>
>>>> Am I doing something seriously wrong? Thanks a lot for your help
>>>>
>>>> Ray
>>>>
>>>
>>
>

Mime
View raw message