We're aware of the potential for races during schema change but it looks like we missed this one. Can you create a ticket?
On Wed, Mar 16, 2011 at 11:55 PM, Jeffrey Wang <jw...@palantir.com> wrote: > Hey all, > > > > I’m running 0.7.0 on a cluster of 5 machines. When I create a new column > family after I run nodetool compact (but before it finishes), I see the > error below. Seems like StorageService.getValidColumnFamilies() should make > a copy of the set of column families in the case where cfNames.length == 0. > Incidentally, the interaction of schema changes with forcing > compaction/flush/etc seems like it could be the source of many race > conditions (e.g. CF is deleted before the compaction gets to it). Any > thoughts? > > > > -Jeffrey > > > > java.util.ConcurrentModificationException > > at java.util.HashMap$HashIterator.nextEntry(Unknown Source) > > at java.util.HashMap$ValueIterator.next(Unknown Source) > > at java.util.Collections$UnmodifiableCollection$1.next(Unknown > Source) > > at > org.apache.cassandra.service.StorageService.forceTableCompaction(StorageService.java:1140) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > > at java.lang.reflect.Method.invoke(Unknown Source) > > at > com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(Unknown Source) > > at > com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(Unknown Source) > > at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(Unknown Source) > > at com.sun.jmx.mbeanserver.PerInterface.invoke(Unknown Source) > > at com.sun.jmx.mbeanserver.MBeanSupport.invoke(Unknown Source) > > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown Source) > > at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source) > > at javax.management.remote.rmi.RMIConnectionImpl.doOperation(Unknown > Source) > > at javax.management.remote.rmi.RMIConnectionImpl.access$200(Unknown > Source) > > at > javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(Unknown > Source) > > at > javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(Unknown > Source) > > at javax.management.remote.rmi.RMIConnectionImpl.invoke(Unknown > Source) > > at sun.reflect.GeneratedMethodAccessor84.invoke(Unknown Source) > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > > at java.lang.reflect.Method.invoke(Unknown Source) > > at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) > > at sun.rmi.transport.Transport$1.run(Unknown Source) > > at java.security.AccessController.doPrivileged(Native Method) > > at sun.rmi.transport.Transport.serviceCall(Unknown Source) > > at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) > > at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown > Source) > > at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown > Source) > > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown > Source) > > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown > Source) > > at java.lang.Thread.run(Unknown Source) -- Jonathan Ellis Project Chair, Apache Cassandra co-founder of DataStax, the source for professional Cassandra support http://www.datastax.com