Open loretoparisi opened 13 years ago
I just realized that the problem is in the interface also:
In 0.6 you have
ColumnOrSuperColumn get(1:required string keyspace, 2:required string key, 3:required ColumnPath column_path, 4:required ConsistencyLevel consistency_level=ONE) throws (1:InvalidRequestException ire, 2:NotFoundException nfe, 3:UnavailableException ue, 4:TimedOutException te),
In 0.7 you have
ColumnOrSuperColumn get(1:required binary key, 2:required ColumnPath column_path, 3:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) throws (1:InvalidRequestException ire, 2:NotFoundException nfe, 3:UnavailableException ue, 4:TimedOutExceptionte),
Anyway it's possible to test Cassandra 0.7.0 with Pandra 0.2.1 using the unframed transport:
thrift_framed_transport_size_in_mb: 0 // cassandra.yaml, default was 15
I successfully upgraded Pandra 0.2.1 to the new Thrift 0.5. It works with Cassandra 0.6.5.
Cassandra 0.7.0 comes with a framed transport, so it's not compatible with Thrift < 0.5. I tried to upgrade Cassandra as-it-is with Pandra 0.2.1 + Thrift 0.5, but it hangs on.
I'm not sure what's happing inside Pandra, because I have no error log fro my side apparently.
Before upgrading Thrift to 0.5, I had this error:
telling us that the client was too old (Thrift <0.5).
PS. I just realized that downgrading to Cassandra 0.6.5 I have also an error on Cassandra startup, that prevents server to start:
Gemini:~ loretoparisi$ java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.substring(String.java:1937) at org.apache.cassandra.dht.RandomPartitioner.convertFromDiskFormat(RandomPartitioner.java:50) at org.apache.cassandra.io.SSTableReader.loadIndexFile(SSTableReader.java:259) at org.apache.cassandra.io.SSTableReader.open(SSTableReader.java:121) at org.apache.cassandra.io.SSTableReader.open(SSTableReader.java:110) at org.apache.cassandra.db.ColumnFamilyStore.(ColumnFamilyStore.java:178)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:248)
at org.apache.cassandra.db.Table.(Table.java:338)
at org.apache.cassandra.db.Table.open(Table.java:199)
at org.apache.cassandra.db.SystemTable.checkHealth(SystemTable.java:124)
at org.apache.cassandra.thrift.CassandraDaemon.setup(CassandraDaemon.java:97)
at org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:214)
I'm reporting this strange behavior to guys at Cassandra.
I guess that PandraCore and some other classes are involved in calling the Socket transport as I did some modifications to PandraCore calling the Socket before. Am I right? Anyone know a possible point of failure of Pandra with Thrift 0.5 connecting to Cassandra 0.7.0?