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 <[email protected]> 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 <[email protected]> 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='[...@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 <[email protected]> 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 <[email protected]> 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 >>>> >>> >> >
