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

Reply via email to