[ https://issues.apache.org/jira/browse/CASSANDRA-13669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16478683#comment-16478683 ]
ZhaoYang commented on CASSANDRA-13669: -------------------------------------- Thanks for the review, I have included your branch. Resubmitted CI. > Error when starting cassandra: Unable to make UUID from 'aa' (SASI index) > ------------------------------------------------------------------------- > > Key: CASSANDRA-13669 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13669 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: Tested on: > * macOS Sierra 10.12.5 > * Ubuntu 14.04.5 LTS > Reporter: Lukasz Biedrycki > Assignee: ZhaoYang > Priority: Critical > Labels: sasi > Fix For: 3.11.x > > > Recently I experienced a problem that prevents me to restart cassandra. > I narrowed it down to SASI Index when added on uuid field. > Steps to reproduce: > 1. start cassandra (./bin/cassandra -f) > 2. create keyspace, table, index and add data: > {noformat} > CREATE KEYSPACE testkeyspace > WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} > AND durable_writes = true; > use testkeyspace ; > CREATE TABLE testtable ( > col1 uuid, > col2 uuid, > ts timeuuid, > col3 uuid, > PRIMARY KEY((col1, col2), ts) ) with clustering order by (ts desc); > CREATE CUSTOM INDEX col3_testtable_idx ON testtable(col3) > USING 'org.apache.cassandra.index.sasi.SASIIndex' > WITH OPTIONS = {'analyzer_class': > 'org.apache.cassandra.index.sasi.analyzer.StandardAnalyzer', 'mode': > 'PREFIX'}; > INSERT INTO testtable(col1, col2, ts, col3) > VALUES(898e0014-6161-11e7-b9b7-238ea83bd70b, > 898e0014-6161-11e7-b9b7-238ea83bd70b, > now(), 898e0014-6161-11e7-b9b7-238ea83bd70b); > {noformat} > 3. restart cassandra > It crashes with an error (sorry it's huge): > {noformat} > DEBUG 09:09:20 Writing Memtable-testtable@1005362073(0.075KiB serialized > bytes, 1 ops, 0%/0% of on/off-heap limit), flushed range = > (min(-9223372036854775808), max(9223372036854775807)] > ERROR 09:09:20 Exception in thread > Thread[PerDiskMemtableFlushWriter_0:1,5,main] > org.apache.cassandra.serializers.MarshalException: Unable to make UUID from > 'aa' > at > org.apache.cassandra.db.marshal.UUIDType.fromString(UUIDType.java:118) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzer.hasNext(StandardAnalyzer.java:168) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.index.sasi.disk.PerSSTableIndexWriter$Index.add(PerSSTableIndexWriter.java:208) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.index.sasi.disk.PerSSTableIndexWriter.lambda$nextUnfilteredCluster$0(PerSSTableIndexWriter.java:132) > ~[apache-cassandra-3.9.jar:3.9] > at java.util.Collections$SingletonSet.forEach(Collections.java:4767) > ~[na:1.8.0_131] > at > org.apache.cassandra.index.sasi.disk.PerSSTableIndexWriter.nextUnfilteredCluster(PerSSTableIndexWriter.java:119) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.ColumnIndex.lambda$add$1(ColumnIndex.java:233) > ~[apache-cassandra-3.9.jar:3.9] > at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_131] > at org.apache.cassandra.db.ColumnIndex.add(ColumnIndex.java:233) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.ColumnIndex.buildRowIndex(ColumnIndex.java:107) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.io.sstable.format.big.BigTableWriter.append(BigTableWriter.java:169) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.io.sstable.SimpleSSTableMultiWriter.append(SimpleSSTableMultiWriter.java:48) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:458) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.Memtable$FlushRunnable.call(Memtable.java:493) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.Memtable$FlushRunnable.call(Memtable.java:380) > ~[apache-cassandra-3.9.jar:3.9] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[na:1.8.0_131] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > ~[na:1.8.0_131] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > [na:1.8.0_131] > at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] > Exception (java.lang.RuntimeException) encountered during startup: > java.util.concurrent.ExecutionException: java.lang.RuntimeException: > java.util.concurrent.ExecutionException: > org.apache.cassandra.serializers.MarshalException: Unable to make UUID from > 'aa' > java.lang.RuntimeException: java.util.concurrent.ExecutionException: > java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.serializers.MarshalException: Unable to make UUID from > 'aa' > at org.apache.cassandra.utils.Throwables.maybeFail(Throwables.java:51) > ERROR 09:09:20 Exception encountered during startup > java.lang.RuntimeException: java.util.concurrent.ExecutionException: > java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.serializers.MarshalException: Unable to make UUID from > 'aa' > at org.apache.cassandra.utils.Throwables.maybeFail(Throwables.java:51) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:391) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.commitlog.CommitLogReplayer.blockForWrites(CommitLogReplayer.java:168) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.commitlog.CommitLog.recoverFiles(CommitLog.java:188) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.commitlog.CommitLog.recoverSegmentsOnDisk(CommitLog.java:167) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:323) > [apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:601) > [apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:730) > [apache-cassandra-3.9.jar:3.9] > Caused by: java.util.concurrent.ExecutionException: > java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.serializers.MarshalException: Unable to make UUID from > 'aa' > at java.util.concurrent.FutureTask.report(FutureTask.java:122) > ~[na:1.8.0_131] > at java.util.concurrent.FutureTask.get(FutureTask.java:192) > ~[na:1.8.0_131] > at > org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:384) > ~[apache-cassandra-3.9.jar:3.9] > ... 6 common frames omitted > Caused by: java.lang.RuntimeException: > java.util.concurrent.ExecutionException: > org.apache.cassandra.serializers.MarshalException: Unable to make UUID from > 'aa' > at org.apache.cassandra.utils.Throwables.maybeFail(Throwables.java:51) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:391) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.ColumnFamilyStore$Flush.flushMemtable(ColumnFamilyStore.java:1122) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1084) > ~[apache-cassandra-3.9.jar:3.9] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > ~[na:1.8.0_131] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > ~[na:1.8.0_131] > at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_131] > Caused by: java.util.concurrent.ExecutionException: > org.apache.cassandra.serializers.MarshalException: Unable to make UUID from > 'aa' > at java.util.concurrent.FutureTask.report(FutureTask.java:122) > ~[na:1.8.0_131] > at java.util.concurrent.FutureTask.get(FutureTask.java:192) > ~[na:1.8.0_131] > at > org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:384) > ~[apache-cassandra-3.9.jar:3.9] > ... 5 common frames omitted > Caused by: org.apache.cassandra.serializers.MarshalException: Unable to make > UUID from 'aa' > at > org.apache.cassandra.db.marshal.UUIDType.fromString(UUIDType.java:118) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzer.hasNext(StandardAnalyzer.java:168) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.index.sasi.disk.PerSSTableIndexWriter$Index.add(PerSSTableIndexWriter.java:208) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.index.sasi.disk.PerSSTableIndexWriter.lambda$nextUnfilteredCluster$0(PerSSTableIndexWriter.java:132) > ~[apache-cassandra-3.9.jar:3.9] > at java.util.Collections$SingletonSet.forEach(Collections.java:4767) > ~[na:1.8.0_131] > at > org.apache.cassandra.index.sasi.disk.PerSSTableIndexWriter.nextUnfilteredCluster(PerSSTableIndexWriter.java:119) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.ColumnIndex.lambda$add$1(ColumnIndex.java:233) > ~[apache-cassandra-3.9.jar:3.9] > at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_131] > at org.apache.cassandra.db.ColumnIndex.add(ColumnIndex.java:233) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.ColumnIndex.buildRowIndex(ColumnIndex.java:107) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.io.sstable.format.big.BigTableWriter.append(BigTableWriter.java:169) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.io.sstable.SimpleSSTableMultiWriter.append(SimpleSSTableMultiWriter.java:48) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:458) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.Memtable$FlushRunnable.call(Memtable.java:493) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.Memtable$FlushRunnable.call(Memtable.java:380) > ~[apache-cassandra-3.9.jar:3.9] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[na:1.8.0_131] > ... 3 common frames omitted > at org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:391) > at > org.apache.cassandra.db.commitlog.CommitLogReplayer.blockForWrites(CommitLogReplayer.java:168) > at > org.apache.cassandra.db.commitlog.CommitLog.recoverFiles(CommitLog.java:188) > at > org.apache.cassandra.db.commitlog.CommitLog.recoverSegmentsOnDisk(CommitLog.java:167) > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:323) > at > org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:601) > at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:730) > Caused by: java.util.concurrent.ExecutionException: > java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.serializers.MarshalException: Unable to make UUID from > 'aa' > at java.util.concurrent.FutureTask.report(FutureTask.java:122) > at java.util.concurrent.FutureTask.get(FutureTask.java:192) > at org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:384) > ... 6 more > Caused by: java.lang.RuntimeException: > java.util.concurrent.ExecutionException: > org.apache.cassandra.serializers.MarshalException: Unable to make UUID from > 'aa' > at org.apache.cassandra.utils.Throwables.maybeFail(Throwables.java:51) > at org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:391) > at > org.apache.cassandra.db.ColumnFamilyStore$Flush.flushMemtable(ColumnFamilyStore.java:1122) > at > org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1084) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.util.concurrent.ExecutionException: > org.apache.cassandra.serializers.MarshalException: Unable to make UUID from > 'aa' > at java.util.concurrent.FutureTask.report(FutureTask.java:122) > at java.util.concurrent.FutureTask.get(FutureTask.java:192) > at org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:384) > ... 5 more > Caused by: org.apache.cassandra.serializers.MarshalException: Unable to make > UUID from 'aa' > at org.apache.cassandra.db.marshal.UUIDType.fromString(UUIDType.java:118) > at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzer.hasNext(StandardAnalyzer.java:168) > at > org.apache.cassandra.index.sasi.disk.PerSSTableIndexWriter$Index.add(PerSSTableIndexWriter.java:208) > at > org.apache.cassandra.index.sasi.disk.PerSSTableIndexWriter.lambda$nextUnfilteredCluster$0(PerSSTableIndexWriter.java:132) > at java.util.Collections$SingletonSet.forEach(Collections.java:4767) > at > org.apache.cassandra.index.sasi.disk.PerSSTableIndexWriter.nextUnfilteredCluster(PerSSTableIndexWriter.java:119) > at org.apache.cassandra.db.ColumnIndex.lambda$add$1(ColumnIndex.java:233) > at java.lang.Iterable.forEach(Iterable.java:75) > at org.apache.cassandra.db.ColumnIndex.add(ColumnIndex.java:233) > at org.apache.cassandra.db.ColumnIndex.buildRowIndex(ColumnIndex.java:107) > at > org.apache.cassandra.io.sstable.format.big.BigTableWriter.append(BigTableWriter.java:169) > at > org.apache.cassandra.io.sstable.SimpleSSTableMultiWriter.append(SimpleSSTableMultiWriter.java:48) > at > org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:458) > at org.apache.cassandra.db.Memtable$FlushRunnable.call(Memtable.java:493) > at org.apache.cassandra.db.Memtable$FlushRunnable.call(Memtable.java:380) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ... 3 more > {noformat} > When I do "nodetool flush" I also get: > {noformat} > $ ./bin/nodetool flush > objc[35941]: Class JavaLaunchHelper is implemented in both > /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/bin/java > (0x1052a34c0) and > /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/libinstrument.dylib > (0x10536b4e0). One of the two will be used. Which one is undefined. > error: Unable to make UUID from 'aa' > -- StackTrace -- > org.apache.cassandra.serializers.MarshalException: Unable to make UUID from > 'aa' > at org.apache.cassandra.db.marshal.UUIDType.fromString(UUIDType.java:118) > at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzer.hasNext(StandardAnalyzer.java:168) > at > org.apache.cassandra.index.sasi.disk.PerSSTableIndexWriter$Index.add(PerSSTableIndexWriter.java:208) > at > org.apache.cassandra.index.sasi.disk.PerSSTableIndexWriter.lambda$nextUnfilteredCluster$0(PerSSTableIndexWriter.java:132) > at java.util.Collections$SingletonSet.forEach(Collections.java:4767) > at > org.apache.cassandra.index.sasi.disk.PerSSTableIndexWriter.nextUnfilteredCluster(PerSSTableIndexWriter.java:119) > at org.apache.cassandra.db.ColumnIndex.lambda$add$1(ColumnIndex.java:233) > at java.lang.Iterable.forEach(Iterable.java:75) > at org.apache.cassandra.db.ColumnIndex.add(ColumnIndex.java:233) > at org.apache.cassandra.db.ColumnIndex.buildRowIndex(ColumnIndex.java:107) > at > org.apache.cassandra.io.sstable.format.big.BigTableWriter.append(BigTableWriter.java:169) > at > org.apache.cassandra.io.sstable.SimpleSSTableMultiWriter.append(SimpleSSTableMultiWriter.java:48) > at > org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:458) > at org.apache.cassandra.db.Memtable$FlushRunnable.call(Memtable.java:493) > at org.apache.cassandra.db.Memtable$FlushRunnable.call(Memtable.java:380) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:748) > {noformat} > Any ideas how to solve it? > I can keep col3 as text, I figured it out, but I already have bunch of data > on production and I basically can't do anything with any of nodes, because I > won't be able to start them again. > Thanks, > Lukasz -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org