Hi, I've been testing an in-place upgrade of a 1.2.11 cluster to 2.0.9. The 1.2.11 nodes all have a schema defined through CQL with existing data before I perform the rolling upgrade. While the upgrade is in progress, services are continuing to read and write data to the cluster (strictly using protocol version 1). I drain each node one at a time, upgrade the configuration files, upgrade cassandra, then start the node back up. The cassandra logs show no errors or exceptions during startup and appear to join properly with the other nodes in the cluster.
On our service side, everything goes smoothly except for queries against a few of our tables. On some of the tables with timestamp columns (not all), we will get an error from the Datastax java-driver when binding PreparedStatements or trying to process ResultSets: com.datastax.driver.core.exceptions.InvalidTypeException: Invalid type for value 2 of CQL type 'org.apache.cassandra.db.marshal.DateType', expecting class java.nio.ByteBuffer but class java.util.Date provided at com.datastax.driver.core.BoundStatement.bind(BoundStatement.java:190) at com.datastax.driver.core.DefaultPreparedStatement.bind(DefaultPreparedStatement.java:103) I traced the code on the driver side, and I see it has to do with bad DataType information coming back from a table metadata query. The 2.0.9 nodes will return protocol ID "0" instead of "11" for some timestamp column definitions. The protocol ID "0" maps to a custom type, and the 2.0.9 nodes specify "org.apache.cassandra.db.marshal.DateType" as the custom type name. The 1.2.11 nodes, however, continue to send "11" for their protocol ID, which gets properly mapped to the timestamp data type. Strangely not all our tables with timestamp columns have this issue. If I bring up an entirely new 2.0.9 cluster (no existing data), and provision our schema, then there are no issues. The proper protocol ID, "11", gets sent for all our tables with timestamp columns. I have tried doing nodetool upgradesstables and nodetool scrub on the nodes, but neither fixes the issue. Any suggestions on what is going on or how to fix it?