cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Yeschenko (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-6869) Broken 1.2 sstables support in 2.1
Date Sun, 30 Mar 2014 00:36:14 GMT


Aleksey Yeschenko commented on CASSANDRA-6869:

    static boolean hasHintsBefore(int messagingVersion)
        for (UntypedResultSet.Row row : QueryProcessor.processInternal(String.format("SELECT
* FROM system.%s")))

Besides missing a String#format() argument, this looks extremely dangerous to me when unpaged
- it *will* blow up C* with a decent number of hints accumulated.

That said, as noted in CASSANDRA-6931 comments, we might not be able to get rid of that code
just yet. Gotta wait until 3.0 :\

> Broken 1.2 sstables support in 2.1
> ----------------------------------
>                 Key: CASSANDRA-6869
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Aleksey Yeschenko
>            Assignee: Sylvain Lebresne
>             Fix For: 2.1 beta2
>         Attachments: 0001-Drop-support-for-pre-2.0-sstables.txt, 0002-Check-for-remaining-1.2-hints-when-upgrading-to-2.1.txt,
> CASSANDRA-5417 has broken 1.2 (ic) sstables support in at least two ways.
> 1. CFMetaData.getOnDiskSerializer(), used by SSTableNamesIterator and IndexedSliceReader,
doesn't account for pre-2.0 supercolumn sstables
> 2. More importantly, ACCNT.CompositeDeserializer doesn't handle ic tables' cell counts,
and maybeReadNext() might throw EOFException while expecting the partition end marker. SimpleDeserializer
is likely just as broken.
> I'd expect more issues like this, but less obvious, in the code, and thus am torn between
forcing people to run upgradesstables on 2.0 and actually fixing these issues, and hoping
that we haven't missed anything.
> Implementing a supercolumn aware AtomDeserializer is not hard, fixing CompositeDeserializer
and SimpleDeserializer isn't very hard either, but I really am worried about stuff that's
less obvious. Plus, if we drop that support, we can get rid of some legacy supercolumn code
in 2.1. Minus, obviously, is a bit of extra pain for 2.0->2.1 upgraders still having 1.2-
sstables around.

This message was sent by Atlassian JIRA

View raw message