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

Benedict commented on CASSANDRA-9580:
-------------------------------------

bq. This seems hacky. cc/ Benedict

It is, and I was torn at the time between this and modifying the Descriptor 
equality and doing my best to ensure that didn't break stuff. Fortunately it 
will be going away with CASSANDRA-7066

bq. So here's a patch for ignoring sstables opened for non-normal reasons

There's already a facility for this, by calling 
ColumnFamilyStore.CANONICAL_SSTABLES on a DataTracker.View, but since I thought 
we'd caught all of the problematic codepaths that could use an early open file 
and switched them to this already, perhaps we should make the choice absolutely 
explicit. i.e. hide the sstables set in View, and require that the accessors 
stipulate to a function call which set they want. Happy to do that myself, in 
another ticket, though.

> Cardinality check broken during incremental compaction re-opening
> -----------------------------------------------------------------
>
>                 Key: CASSANDRA-9580
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9580
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: T Jake Luciani
>            Assignee: T Jake Luciani
>            Priority: Minor
>             Fix For: 2.1.x
>
>         Attachments: lcstest.yaml
>
>
> While testing LCS I found cfstats sometimes crashes during compaction 
> It looks to be related to the incremental re-opening not having metadata.
> {code}
> ----------------
> Keyspace: stresscql
>       Read Count: 0
>       Read Latency: NaN ms.
>       Write Count: 6590571
>       Write Latency: 0.026910956273743198 ms.
>       Pending Flushes: 0
>               Table: ycsb
>               SSTable count: 69
>               SSTables in each level: [67/4, 1, 0, 0, 0, 0, 0, 0, 0]
>               Space used (live): 3454857914
>               Space used (total): 3454857914
>               Space used by snapshots (total): 0
>               Off heap memory used (total): 287361
>               SSTable Compression Ratio: 0.0
> error: 
> /home/jake/workspace/cassandra/./bin/../data/data/stresscql/ycsb-ff399910104911e5a797a18c989fb6f2/stresscql-ycsb-tmplink-ka-125-Data.db
> -- StackTrace --
> java.lang.AssertionError: 
> /home/jake/workspace/cassandra/./bin/../data/data/stresscql/ycsb-ff399910104911e5a797a18c989fb6f2/stresscql-ycsb-tmplink-ka-125-Data.db
>       at 
> org.apache.cassandra.io.sstable.SSTableReader.getApproximateKeyCount(SSTableReader.java:270)
>       at 
> org.apache.cassandra.metrics.ColumnFamilyMetrics$9.value(ColumnFamilyMetrics.java:296)
>       at 
> org.apache.cassandra.metrics.ColumnFamilyMetrics$9.value(ColumnFamilyMetrics.java:290)
>       at 
> com.yammer.metrics.reporting.JmxReporter$Gauge.getValue(JmxReporter.java:63)
>       at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:483)
>       at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
>       at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:483)
>       at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
>       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.getAttribute(PerInterface.java:83)
>       at 
> com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:206)
>       at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:647)
>       at 
> com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678)
>       at 
> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1443)
>       at 
> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
>       at 
> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307)
>       at 
> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1399)
>       at 
> javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:637)
>       at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:483)
>       at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)
>       at sun.rmi.transport.Transport$1.run(Transport.java:178)
>       at sun.rmi.transport.Transport$1.run(Transport.java:175)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at sun.rmi.transport.Transport.serviceCall(Transport.java:174)
>       at 
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:557)
>       at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:812)
>       at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:671)
>       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:745)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to