hmsonline / cassandra-triggers

52 stars 13 forks source link

Error in porting on Cassandra 1.2.3 #52

Open hero78119 opened 11 years ago

hero78119 commented 11 years ago

Hi

Following the instruction we run successfully on 1.1.2 but after migrating to 1.2.3 and fire the log, we got the error massage:

java.lang.AssertionError at org.apache.cassandra.thrift.ThriftSessionManager.currentSession(ThriftSessionManager.java:51) at org.apache.cassandra.thrift.CassandraServer.state(CassandraServer.java:88) at org.apache.cassandra.thrift.CassandraServer.validateLogin(CassandraServer.java:881) at org.apache.cassandra.thrift.CassandraServer.set_keyspace(CassandraServer.java:1492) at com.hmsonline.cassandra.triggers.dao.CassandraStore.getConnection(CassandraStore.java:42) at com.hmsonline.cassandra.triggers.dao.ConfigurationStore.getConfiguration(ConfigurationStore.java:76) at com.hmsonline.cassandra.triggers.dao.ConfigurationStore.isCommitLogEnabled(ConfigurationStore.java:44) at com.hmsonline.cassandra.triggers.TriggerTask.run(TriggerTask.java:47) at java.lang.Thread.run(Thread.java:636)

Keyspace-triggers and CF-Configuration, Triggers has been created in database,

So is this a configuration problem, or the Thrift API implementation has been changed?

thanks

hero78119 commented 11 years ago

After referring from other examples, try to hack some parts in the source code, the original error seems gone.

But we got the following error:

org.apache.cassandra.exceptions.InvalidRequestException: no keyspace has been specified at org.apache.cassandra.service.ClientState.getKeyspace(ClientState.java:104) at org.apache.cassandra.thrift.CassandraServer.doInsert_aroundBody2(CassandraServer.java:855) at org.apache.cassandra.thrift.CassandraServer$AjcClosure3.run(CassandraServer.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:221) at com.hmsonline.cassandra.triggers.CassandraServerTriggerAspect.writeToCommitLog(CassandraServerTriggerAspect.java:35) at org.apache.cassandra.thrift.CassandraServer.doInsert(CassandraServer.java:854) at org.apache.cassandra.thrift.CassandraServer.doInsert_aroundBody0(CassandraServer.java:848) at org.apache.cassandra.thrift.CassandraServer$AjcClosure1.run(CassandraServer.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:221) at com.hmsonline.cassandra.triggers.CassandraServerTriggerAspect.writeToCommitLog(CassandraServerTriggerAspect.java:35) at org.apache.cassandra.thrift.CassandraServer.doInsert(CassandraServer.java:848) at org.apache.cassandra.thrift.CassandraServer.internal_insert(CassandraServer.java:624) at org.apache.cassandra.thrift.CassandraServer.insert(CassandraServer.java:645) at org.apache.cassandra.thrift.Cassandra$Processor$insert.getResult(Cassandra.java:3526) at org.apache.cassandra.thrift.Cassandra$Processor$insert.getResult(Cassandra.java:3514) at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32) at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34) at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:199) 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)

boneill42 commented 11 years ago

Yeah, I would expect there may be issues attempting to use the triggers on 1.2. I know for sure that changes coming in through the CQL channel wouldn't be captured in the AOP, since it is tied to the thrift interface. For now, we are staying w/ 1.1 in production until the new triggers functionality is available. (hopefully in the upcoming release) https://issues.apache.org/jira/browse/CASSANDRA-1311