3

我遇到了这里描述的确切问题https://issues.apache.org/jira/browse/CASSANDRA-4363但使用 Cassandra 1.1.2,cqlsh --cql3。

当我尝试创建列族时,我得到的错误是

Traceback (most recent call last):
  File "./cqlsh", line 1008, in perform_statement
    self.cursor.execute(statement, decoder=decoder)
  File "./../lib/cql-internal-only-1.0.10.zip/cql-1.0.10/cql/cursor.py", line 117, in execute
    response = self.handle_cql_execution_errors(doquery, prepared_q, compress)
  File "./../lib/cql-internal-only-1.0.10.zip/cql-1.0.10/cql/cursor.py", line 132, in handle_cql_execution_errors
    return executor(*args, **kwargs)
  File "./../lib/cql-internal-only-1.0.10.zip/cql-1.0.10/cql/cassandra/Cassandra.py", line 1583, in execute_cql_query
    self.send_execute_cql_query(query, compression)
  File "./../lib/cql-internal-only-1.0.10.zip/cql-1.0.10/cql/cassandra/Cassandra.py", line 1593, in send_execute_cql_query
    self._oprot.trans.flush()
  File "./../lib/thrift-python-internal-only-0.7.0.zip/thrift/transport/TTransport.py", line 293, in flush
    self.__trans.write(buf)
  File "./../lib/thrift-python-internal-only-0.7.0.zip/thrift/transport/TSocket.py", line 117, in write
    plus = self.handle.send(buff)
error: [Errno 32] Broken pipe

有时我只是让 TSocket 读取 0 个字节。

服务器端日志也和 JIRA 票证中提到的一样。

ERROR [Thrift:12] 2012-09-05 12:06:10,999 CustomTThreadPoolServer.java (line 204) Error occurred during processing of message.
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
        at org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:373)
        at org.apache.cassandra.service.MigrationManager.announce(MigrationManager.java:188)
        at org.apache.cassandra.service.MigrationManager.announceNewColumnFamily(MigrationManager.java:139)
        at org.apache.cassandra.cql3.statements.CreateColumnFamilyStatement.announceMigration(CreateColumnFamilyStatement.java:83)
        at org.apache.cassandra.cql3.statements.SchemaAlteringStatement.execute(SchemaAlteringStatement.java:99)
        at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:108)
        at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:121)
        at org.apache.cassandra.thrift.CassandraServer.execute_cql_query(CassandraServer.java:1237)
        at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql_query.getResult(Cassandra.java:3542)
        at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql_query.getResult(Cassandra.java:3530)
        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:186)
        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:662)
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
        at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
        at java.util.concurrent.FutureTask.get(FutureTask.java:83)
        at org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:369)
        ... 15 more
Caused by: java.lang.NullPointerException
        at org.apache.cassandra.utils.ByteBufferUtil.string(ByteBufferUtil.java:167)

我尝试删除 /var/lib/cassandra 目录并重新启动服务器。我仍然得到错误。JIRA 中的此错误已标记为无法重现,已修复版本无。那么我该怎么做才能让我的 cassandra 再次工作呢?

4

1 回答 1

3

https://issues.apache.org/jira/browse/CASSANDRA-4526表明这已在 1.1.3 中修复。我会升级(到 1.1.4,最新版本)。

于 2012-09-05T21:06:22.433 回答