From 31a86f891b00ec0db20fcef4919dce63be7bf31d Mon Sep 17 00:00:00 2001 From: Cameron Zemek Date: Fri, 1 Nov 2019 15:36:03 +1000 Subject: [PATCH] Fix LegacyLayout to have same behavior as 2.x when handling unknown column names patch by Cameron Zemek; reviewed by Mick Semb Wever for CASSANDRA-15081 --- CHANGES.txt | 1 + .../org/apache/cassandra/db/LegacyLayout.java | 8 ++++---- ...ables-legacy_ka_15081-ka-1-CompressionInfo.db | Bin 0 -> 43 bytes .../legacy_tables-legacy_ka_15081-ka-1-Data.db | Bin 0 -> 76 bytes ...egacy_tables-legacy_ka_15081-ka-1-Digest.sha1 | 1 + .../legacy_tables-legacy_ka_15081-ka-1-Filter.db | Bin 0 -> 16 bytes .../legacy_tables-legacy_ka_15081-ka-1-Index.db | Bin 0 -> 18 bytes ...acy_tables-legacy_ka_15081-ka-1-Statistics.db | Bin 0 -> 4438 bytes ...legacy_tables-legacy_ka_15081-ka-1-Summary.db | Bin 0 -> 92 bytes .../legacy_tables-legacy_ka_15081-ka-1-TOC.txt | 8 ++++++++ .../cassandra/io/sstable/LegacySSTableTest.java | 13 ++++++++++++- 11 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-CompressionInfo.db create mode 100644 test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Data.db create mode 100644 test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Digest.sha1 create mode 100644 test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Filter.db create mode 100644 test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Index.db create mode 100644 test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Statistics.db create mode 100644 test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Summary.db create mode 100644 test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-TOC.txt diff --git a/CHANGES.txt b/CHANGES.txt index c1480a44e4..8c52f34b52 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.11.6 + * Fix LegacyLayout to have same behavior as 2.x when handling unknown column names (CASSANDRA-15081) Merged from 3.0: * Minimize clustering values in metadata collector (CASSANDRA-15400) * Avoid over-trimming of results in mixed mode clusters (CASSANDRA-15405) diff --git a/src/java/org/apache/cassandra/db/LegacyLayout.java b/src/java/org/apache/cassandra/db/LegacyLayout.java index bbef11d418..09f9cfabb3 100644 --- a/src/java/org/apache/cassandra/db/LegacyLayout.java +++ b/src/java/org/apache/cassandra/db/LegacyLayout.java @@ -1213,10 +1213,10 @@ public abstract class LegacyLayout // but we don't do this here and re-throw the exception because the calling code sometimes has to know // about this happening. This does mean code calling this method should handle this case properly. if (!metadata.ksName.equals(SchemaConstants.SYSTEM_KEYSPACE_NAME) && metadata.getDroppedColumnDefinition(e.columnName) == null) - throw new IllegalStateException(String.format("Got cell for unknown column %s in sstable of %s.%s: " + - "This suggest a problem with the schema which doesn't list " + - "this column. Even if that column was dropped, it should have " + - "been listed as such", metadata.ksName, metadata.cfName, UTF8Type.instance.compose(e.columnName)), e); + logger.warn(String.format("Got cell for unknown column %s in sstable of %s.%s: " + + "This suggest a problem with the schema which doesn't list " + + "this column. Even if that column was dropped, it should have " + + "been listed as such", metadata.ksName, metadata.cfName, UTF8Type.instance.compose(e.columnName)), e); throw e; } diff --git a/test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-CompressionInfo.db b/test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-CompressionInfo.db new file mode 100644 index 0000000000000000000000000000000000000000..3793e5041727b8de7eac930dd259c3ee13b9dfcc GIT binary patch literal 43 fcmZSJ^@%cZ&d)6;M1%-@w4gAjr(YP{`W4zm@++IS<21E(Z33#LAp}#S}?~qud#( dIXU?X<@rT9DJl%|i7E^%0YD}L!?hq01^_D86+8d{ literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Digest.sha1 b/test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Digest.sha1 new file mode 100644 index 0000000000..60bd60d7f6 --- /dev/null +++ b/test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Digest.sha1 @@ -0,0 +1 @@ +718738748 \ No newline at end of file diff --git a/test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Filter.db b/test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Filter.db new file mode 100644 index 0000000000000000000000000000000000000000..00a88b4c70c08323c828c7192767bf3d8cbf7a7a GIT binary patch literal 16 XcmZQzU|?lnU|?iWVo+dWU|<3O0rCJ% literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Index.db b/test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Index.db new file mode 100644 index 0000000000000000000000000000000000000000..c3b42d852590c138eeebfc87cb56f246e91b25ae GIT binary patch literal 18 QcmZQzVPIfj1Y$S<003hE1^@s6 literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Statistics.db b/test/data/legacy-sstables/ka/legacy_tables/legacy_ka_15081/legacy_tables-legacy_ka_15081-ka-1-Statistics.db new file mode 100644 index 0000000000000000000000000000000000000000..d708358871a2170eb7c67feb30cad891fb4dbd4f GIT binary patch literal 4438 zcmeI$Ye-XJ7zgm3vrV1pa??t!#4Ni=Ov%iIYGo5$1e$iS8@b$2gEY2LW<^o@ManEP z6S@Zy7D?GTsgFN_$033Q0F`;ZO)U^=DtAp zK8bta>ZOdm7<)7JVeHG;kFlJwf^iVzV8#;}Pi7p&coyS%j8hn|WSrx&dtG-j@e0Ou zjIC&nc^=#xCT?bY8_kbnycaEI{=WD)#wE^#BuyGiAPl|cqrI8?^%=mpZwuPbjvift zR-Q(WU4ss7Lx)GBr=CKqGSTrT(22LuX=Bh?A!ySwbg2$q&E#*32IKZHFcow*!+ z0`rrzzkoQO;m*6^-TVWzIP(e2mq;-GCC?r~Tzanz?De$6`?QGNKlW6K+1{`}5&;3bRj`c{Y9Ain9d61*q17F^Xo z7i_tM>(g$5_2hg5dgy#koxC5sJK{X}VN(n>KkWv5U-_f*=QJ)3Erk3K*ROYe`~Nga zp=`k)2m|RlE8MSFL0%z^ds}S1)G|%dcj{4L4e&nsXDVB1JV2~%rVfmcgnS++?>|Q4 z<1ZZgNIhwG$`$HqFIUZ@j&9ApM4gbe>m;@2b<8U2^i!MTsIw!lFQnf3)4z+l>~2jm z^@WV82CIMUQFMAt|sjUeg8Sf5jlPTd4sLvCOMw(yttr< zSZwBOhlwRqo+`D}eSJIW^O622ub{sl-ZKKb7LoZrm6waI68ol}X*Lr3Z7BOf?_d5( z@sZxY;#o?alFT2YE8RkW4?@nX8&o77cE3wWpVyS`WNj&l&s<@Tr1d~t?5AcqiL0&e z8@3TIJzjf}Ue8*4LLANK{B%uqIhkL)(bCdMeDY2Et!m=iXV2Br>$NpSwZ)IbIpw}b zzY>YHn|cQJj#y-Jjqw}&cMZlf^E@>dSwvy@uQiwZD4KK5eHHG2tFL2hMSE&4Tn|sp z1?%CdxuRh`JT=!Wx*ndI>;G#m;eQrGZD>8EC5