question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

1.4.1 doesn't repair Cassandra 1.2.19/2.0 anymore

See original GitHub issue

Hi again,

I’ve just bumped reaper to version 1.4.1 and just discovered that it doesn’t repair my cluster on Cassandra 1.2.19 anymore (yeah I know, pretty old version…).

Here are the logs:

WARN   [2019-03-18 15:09:54,207] [staging-cluster:00000000-0000-0076-0000-000000000000:00000000-0000-16ed-0000-000000000000] i.c.s.SegmentRunner - Failed to connect to a coordinator node for segment 00000000-0000-16ed-0000-00000000
0000 
java.lang.reflect.UndeclaredThrowableException: null
        at com.sun.proxy.$Proxy56.getCompactionParameters(Unknown Source)
        at io.cassandrareaper.jmx.JmxProxyImpl.getTablesForKeyspace(JmxProxyImpl.java:406)
        at io.cassandrareaper.service.RepairUnitService.getTablesToRepair(RepairUnitService.java:94)
        at io.cassandrareaper.service.SegmentRunner.runRepair(SegmentRunner.java:269)
        at io.cassandrareaper.service.SegmentRunner.run(SegmentRunner.java:143)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111)
        at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:58)
        at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75)
        at com.codahale.metrics.InstrumentedScheduledExecutorService$InstrumentedRunnable.run(InstrumentedScheduledExecutorService.java:241)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: javax.management.AttributeNotFoundException: No such attribute: CompactionParameters
        at com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:81)
        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:1464)
        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.getAttribute(RMIConnectionImpl.java:657)
        at sun.reflect.GeneratedMethodAccessor5.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$2.run(Transport.java:202)
        at sun.rmi.transport.Transport$2.run(Transport.java:199)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:198)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access$400(TCPTransport.java:619)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:684)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:681)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

At a very quick glance it’s coming from https://github.com/thelastpickle/cassandra-reaper/blob/1.4/src/server/src/main/java/io/cassandrareaper/jmx/JmxProxyImpl.java#L404-L407 . Seems that commit dfa792f5a9f65d0a21173701d0c87579f1a1a42f (to fix #577) introduced this regression.

I’ll try to find some time to dig into it more & hopefully submit a PR. I’m anyway wondering, do you have any plan to officially support 1.2 versions or should I consider to keep a working version and not upgrade reaper without upgrading my clusters first?

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:6 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
michaelsembwevercommented, Mar 19, 2019

Would travis config be enough to increase integration tests coverage @michaelsembwever ?

Yes. Duplicating the three lines, just changing the CASSANDRA_VERSION value, will add the extra test runs in travis.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Repair | Apache Cassandra Documentation
The repair command only repairs token ranges on the node being repaired, it doesn't repair the whole cluster. By default, repair will operate...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found