Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Normal
Description
In BulkLoader.ExternalClient, we use the Thrift execute_cql3_query() method to read the system schema tables. Because it's a Thrift connection, we use the v2 protocol format for serializing data. However, when we later read the results with CFMetadata.fromThriftCqlRow(), we use the v3 protocol format to deserialize the results. If there are any collections in the results, such as entries in dropped_columns, the following error will occur:
Caused by: java.lang.IllegalArgumentException: null at java.nio.Buffer.limit(Buffer.java:275) ~[na:1.8.0_45-internal] at org.apache.cassandra.utils.ByteBufferUtil.readBytes(ByteBufferUtil.java:543) ~[cassandra-all-2.1.11.jar:2.1.11] at org.apache.cassandra.serializers.CollectionSerializer.readValue(CollectionSerializer.java:124) ~[cassandra-all-2.1.1 1.jar:2.1.11] at org.apache.cassandra.serializers.MapSerializer.deserializeForNativeProtocol(MapSerializer.java:101) ~[cassandra-all- 2.1.11.jar:2.1.11] at org.apache.cassandra.serializers.MapSerializer.deserializeForNativeProtocol(MapSerializer.java:30) ~[cassandra-all-2 .1.11.jar:2.1.11] at org.apache.cassandra.serializers.CollectionSerializer.deserialize(CollectionSerializer.java:50) ~[cassandra-all-2.1. 11.jar:2.1.11] at org.apache.cassandra.db.marshal.AbstractType.compose(AbstractType.java:68) ~[cassandra-all-2.1.11.jar:2.1.11] at org.apache.cassandra.cql3.UntypedResultSet$Row.getMap(UntypedResultSet.java:287) ~[cassandra-all-2.1.11.jar:2.1.11] at org.apache.cassandra.config.CFMetaData.fromSchemaNoTriggers(CFMetaData.java:1833) ~[cassandra-all-2.1.11.jar:2.1.11] at org.apache.cassandra.config.CFMetaData.fromThriftCqlRow(CFMetaData.java:1126) ~[cassandra-all-2.1.11.jar:2.1.11] at org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:330) ~[cassandra-all-2.1.11.jar:na] ... 7 common frames omitted
I believe this only affects 2.1 due to the re-working of BulkLoader/sstableloader in 2.2 and 3.0, but I haven't confirmed that.
Attachments
Issue Links
- is duplicated by
-
CASSANDRA-11562 "Could not retrieve endpoint ranges" for sstableloader
- Resolved
-
CASSANDRA-11572 SStableloader does not stream data if the Cassandra table was altered to drop some column
- Resolved