[ https://issues.apache.org/jira/browse/CASSANDRA-7332?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Shuler updated CASSANDRA-7332: -------------------------------------- Assignee: Ryan McGuire Looks like repro steps would be create table w/index, write some data, drop index, nodetool cleanup (or thereabouts). > NPE in SecondaryIndexManager.deleteFromIndexes > ---------------------------------------------- > > Key: CASSANDRA-7332 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7332 > Project: Cassandra > Issue Type: Bug > Components: Core > Environment: C* 2.0.7, x86-64 ubuntu 12.04 > Reporter: Duncan Sands > Assignee: Ryan McGuire > Priority: Minor > > When trying to run "nodetool cleanup", I get this exception on the node: > ERROR [CompactionExecutor:1363] 2014-05-31 11:55:45,708 CassandraDaemon.java > (line 198) Exception in thread Thread[CompactionExecutor:1363,1,RMI Runtime] > java.lang.NullPointerException > at > org.apache.cassandra.db.index.SecondaryIndexManager.deleteFromIndexes(SecondaryIndexManager.java:460) > at > org.apache.cassandra.db.compaction.CompactionManager$CleanupStrategy$Full.cleanup(CompactionManager.java:719) > at > org.apache.cassandra.db.compaction.CompactionManager.doCleanupCompaction(CompactionManager.java:579) > at > org.apache.cassandra.db.compaction.CompactionManager.access$400(CompactionManager.java:62) > at > org.apache.cassandra.db.compaction.CompactionManager$5.perform(CompactionManager.java:274) > at > org.apache.cassandra.db.compaction.CompactionManager$2.call(CompactionManager.java:222) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:744) > Nodetool itself got this: > Error occurred during cleanup > java.util.concurrent.ExecutionException: java.lang.NullPointerException > at java.util.concurrent.FutureTask.report(FutureTask.java:122) > at java.util.concurrent.FutureTask.get(FutureTask.java:188) > at > org.apache.cassandra.db.compaction.CompactionManager.performAllSSTableOperation(CompactionManager.java:227) > at > org.apache.cassandra.db.compaction.CompactionManager.performCleanup(CompactionManager.java:265) > at > org.apache.cassandra.db.ColumnFamilyStore.forceCleanup(ColumnFamilyStore.java:1105) > at > org.apache.cassandra.service.StorageService.forceKeyspaceCleanup(StorageService.java:2215) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) > at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) > at > com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112) > at > com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46) > at > com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) > at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138) > at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) > at > com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) > at > javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487) > at > javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97) > at > javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328) > at > javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420) > at > javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848) > at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) > at sun.rmi.transport.Transport$1.run(Transport.java:177) > at sun.rmi.transport.Transport$1.run(Transport.java:174) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:173) > at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:744) > Caused by: java.lang.NullPointerException > at > org.apache.cassandra.db.index.SecondaryIndexManager.deleteFromIndexes(SecondaryIndexManager.java:460) > at > org.apache.cassandra.db.compaction.CompactionManager$CleanupStrategy$Full.cleanup(CompactionManager.java:719) > at > org.apache.cassandra.db.compaction.CompactionManager.doCleanupCompaction(CompactionManager.java:579) > at > org.apache.cassandra.db.compaction.CompactionManager.access$400(CompactionManager.java:62) > at > org.apache.cassandra.db.compaction.CompactionManager$5.perform(CompactionManager.java:274) > at > org.apache.cassandra.db.compaction.CompactionManager$2.call(CompactionManager.java:222) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > ... 3 more > I suspect it is related to this table which used to have another index, which > I dropped: > CREATE TABLE positions ( > syd int, > broker uuid, > engine uuid, > confirmed bigint, > open_buy bigint, > open_sell bigint, > PRIMARY KEY (syd, broker, engine) > ) WITH > bloom_filter_fp_chance=0.000100 AND > caching='KEYS_ONLY' AND > comment='' AND > dclocal_read_repair_chance=0.000000 AND > gc_grace_seconds=864000 AND > index_interval=128 AND > read_repair_chance=0.010000 AND > replicate_on_write='true' AND > populate_io_cache_on_flush='false' AND > default_time_to_live=0 AND > speculative_retry='99.0PERCENTILE' AND > memtable_flush_period_in_ms=0 AND > compaction={'class': 'SizeTieredCompactionStrategy'} AND > compression={'sstable_compression': 'LZ4Compressor'}; > CREATE INDEX engine_positions ON positions (engine); > The other index was: CREATE INDEX broker_positions ON positions (broker); > Curiously, a day or so after dropping it, it had come back! I noticed this > when trying to understand why I got this cleanup exception. I then dropped > it again, and it appears to have gone but the exception still occurs. -- This message was sent by Atlassian JIRA (v6.2#6252)