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

Paulo Motta commented on CASSANDRA-19902:
-----------------------------------------

Pushed rebased 5.0 PR that initializes StorageService JMX bean just before 
bootstrap on {{StorageService::init}} and add a regression test: 
[https://github.com/apache/cassandra/pull/3717] 
- this essentially gets us back to 4.1 state where JMX is available again 
during bootstrap, but doesn't ensure all commands will work since this is a 
more involved refactoring effort.
 - 5.0 CI: 
[https://ci-cassandra.apache.org/view/patches/job/Cassandra-devbranch-5/324/]

For trunk the regression test is failing differently, JMX is available during 
bootstrap but the returned node state is {{STARTING}} instead of {{JOINING}} 
which is a behavior change, not sure if's expected: 
[https://github.com/apache/cassandra/pull/3716]
 - trunk CI: 
[https://ci-cassandra.apache.org/view/patches/job/Cassandra-devbranch-5/325/]

I don't have time to address trunk now and would like to unblock the 5.0 patch 
so I will mark the trunk regression test as ignored and create a new ticket to 
address separately.

Trunk regression test is failing with
{noformat}
[junit-timeout] Testcase: 
testStorageServiceMBeanIsPublishedOnJMXDuringBootstrap(org.apache.cassandra.distributed.test.ring.BootstrapTest)-_jdk11:
      Caused an ERROR
[junit-timeout] java.lang.AssertionError: Should not fail to connect via JMX 
before bootstrap is completed.
[junit-timeout] java.util.concurrent.ExecutionException: 
java.lang.AssertionError: Should not fail to connect via JMX before bootstrap 
is completed.
[junit-timeout]         at 
java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
[junit-timeout]         at 
java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
[junit-timeout]         at 
org.apache.cassandra.distributed.test.ring.BootstrapTest.testStorageServiceMBeanIsPublishedOnJMXDuringBootstrap(BootstrapTest.java:348)
[junit-timeout]         at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[junit-timeout]         at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[junit-timeout]         at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[junit-timeout] Caused by: java.lang.AssertionError: Should not fail to connect 
via JMX before bootstrap is completed.
[junit-timeout]         at 
org.apache.cassandra.distributed.test.ring.BootstrapTest.lambda$testStorageServiceMBeanIsPublishedOnJMXDuringBootstrap$10(BootstrapTest.java:331)
[junit-timeout]         at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[junit-timeout]         at 
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[junit-timeout]         at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[junit-timeout]         at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[junit-timeout]         at java.base/java.lang.Thread.run(Thread.java:829)
[junit-timeout]         at 
org.apache.cassandra.distributed.test.ring.BootstrapTest.lambda$testStorageServiceMBeanIsPublishedOnJMXDuringBootstrap$10(BootstrapTest.java:327)
{noformat}

> StorageService JMX mbean is not available during bootstrap
> ----------------------------------------------------------
>
>                 Key: CASSANDRA-19902
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19902
>             Project: Apache Cassandra
>          Issue Type: Bug
>          Components: Tool/nodetool
>            Reporter: Paulo Motta
>            Assignee: Paulo Motta
>            Priority: Normal
>             Fix For: 5.0.x, 5.x
>
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> Looks like the seemingly harmless cosmetic patch from CASSANDRA-11537 causes 
> the StorageServiceMBean to not be available during bootstrap. This causes 
> commands like "nodetool nestats/status/etc" to not be available on the 
> boostrapping node with the following error:
> {code:none}
> - StackTrace --
> javax.management.InstanceNotFoundException: 
> org.apache.cassandra.db:type=StorageService
>         at 
> java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1083)
>         at 
> java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:637)
> {code}
> This ticket is just to revert CASSANDRA-11537, we can re-add the improvement 
> of that ticket later.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to