You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Brandon Williams (JIRA)" <ji...@apache.org> on 2014/04/21 19:32:15 UTC

[jira] [Commented] (CASSANDRA-7064) snapshot creation for non-system keyspaces is broken

    [ https://issues.apache.org/jira/browse/CASSANDRA-7064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13975756#comment-13975756 ] 

Brandon Williams commented on CASSANDRA-7064:
---------------------------------------------

Yuki pointed out that the snapshots are in the flush directory.  This is unfortunate though, since we're hoisting multiple directory snapshot management on single directory users.  Since a separate flush directory is unlikely to be immediately useful to upgraders, maybe we should point it at the data directory by default and let those who can take advantage of it change it.

> snapshot creation for non-system keyspaces is broken
> ----------------------------------------------------
>
>                 Key: CASSANDRA-7064
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7064
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Brandon Williams
>            Priority: Blocker
>             Fix For: 2.1 beta2
>
>
> {noformat}
> root@bw-3:/srv/cassandra-dtest# ../cassandra/bin/nodetool snapshot -t testsnapshot
> Requested creating snapshot(s) for [all keyspaces] with snapshot name [testsnapshot]
> Snapshot directory: testsnapshot
> root@bw-3:/srv/cassandra-dtest# ls /var/lib/cassandra/data/
> foo  system  system_traces
> root@bw-3:/srv/cassandra-dtest# ls /var/lib/cassandra/data/foo/
> bar-c5e32c10c96b11e39f8d3b546d897db7
> root@bw-3:/srv/cassandra-dtest# ../cassandra/bin/nodetool snapshot
> Requested creating snapshot(s) for [all keyspaces] with snapshot name [1398095603827]
> Snapshot directory: 1398095603827
> root@bw-3:/srv/cassandra-dtest# ls /var/lib/cassandra/data/
> foo/           system/        system_traces/ 
> root@bw-3:/srv/cassandra-dtest# ls /var/lib/cassandra/data/foo/
> bar-c5e32c10c96b11e39f8d3b546d897db7
> root@bw-3:/srv/cassandra-dtest# ../cassandra/bin/nodetool snapshot foo
> Requested creating snapshot(s) for [foo] with snapshot name [1398095800752]
> Snapshot directory: 1398095800752
> root@bw-3:/srv/cassandra-dtest# ls /var/lib/cassandra/data/foo/
> bar-c5e32c10c96b11e39f8d3b546d897db7
> root@bw-3:/srv/cassandra-dtest# ../cassandra/bin/nodetool snapshot foo -cf bar -t testsnapshot
> Requested creating snapshot(s) for [foo] with snapshot name [testsnapshot]
> error: Snapshot testsnapshot already exists.
> -- StackTrace --
> java.io.IOException: Snapshot testsnapshot already exists.
>  at org.apache.cassandra.service.StorageService.takeColumnFamilySnapshot(StorageService.java:2315)
>  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.GeneratedMethodAccessor2.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.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.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)
> root@bw-3:/srv/cassandra-dtest# ls /var/lib/cassandra/data/foo/
> bar-c5e32c10c96b11e39f8d3b546d897db7
> root@bw-3:/srv/cassandra-dtest# ls -R /var/lib/cassandra/data/foo/|grep testsnap
> root@bw-3:/srv/cassandra-dtest# ls -R /var/lib/cassandra/data/|grep testsnap
> testsnapshot
> /var/lib/cassandra/data/system/local-7ad54392bcdd35a684174e047860b377/snapshots/testsnapshot:
> root@bw-3:/srv/cassandra-dtest# ../cassandra/bin/nodetool snapshot foo -cf bar -t testsnapshot2
> Requested creating snapshot(s) for [foo] with snapshot name [testsnapshot2]
> Snapshot directory: testsnapshot2
> root@bw-3:/srv/cassandra-dtest# ls -R /var/lib/cassandra/data/|grep testsnap
> testsnapshot
> /var/lib/cassandra/data/system/local-7ad54392bcdd35a684174e047860b377/snapshots/testsnapshot:
> root@bw-3:/srv/cassandra-dtest# 
> {noformat}
> As shown above, snapshots for the 'foo' keyspace are never created, but it does seem to think it created them since I can't use the same name twice.



--
This message was sent by Atlassian JIRA
(v6.2#6252)