You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@brooklyn.apache.org by "Aled Sage (Jira)" <ji...@apache.org> on 2020/05/12 09:49:00 UTC
[jira] [Commented] (BROOKLYN-626) jmxmp broken: ClassCastException:
javax.management.remote.message.HandshakeBeginMessage cannot be cast to
javax.management.remote.message.Message
[ https://issues.apache.org/jira/browse/BROOKLYN-626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17105291#comment-17105291 ]
Aled Sage commented on BROOKLYN-626:
------------------------------------
Note that when Brooklyn tries to talk to Tomcat over jmxmp, this exception message from Brooklyn is sent across the wire to Tomcat and gets logged there. The `ClassCastException` is *not* being thrown on the Tomcat server!
> jmxmp broken: ClassCastException: javax.management.remote.message.HandshakeBeginMessage cannot be cast to javax.management.remote.message.Message
> -------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: BROOKLYN-626
> URL: https://issues.apache.org/jira/browse/BROOKLYN-626
> Project: Brooklyn
> Issue Type: Bug
> Affects Versions: 1.1.0-SNAPSHOT
> Reporter: Aled Sage
> Priority: Major
>
> (Since upgrading to Karaf 4.2.8; bug will hopefully never be in a GA release of Brooklyn!).
> When using jmxmp (e.g. in `Tomcat8Server` entity), Brooklyn fails with the exception like that below:When using jmxmp (e.g. in `Tomcat8Server` entity), Brooklyn fails with the exception like that below:
>
> {noformat}
> unable to re-connect to JMX url (repeated failure): service:jmx:jmxmp://34.78.32.213:31001: {}unable to re-connect to JMX url (repeated failure): service:jmx:jmxmp://34.78.32.213:31001: {}
> java.lang.ClassCastException: javax.management.remote.message.HandshakeBeginMessage cannot be cast to javax.management.remote.message.Message
> at com.sun.jmx.remote.socket.SocketConnection.readMessage(SocketConnection.java:251) ~[opendmk_jmxremote_optional_jar-1.0-b01-ea.jar:?]
> at com.sun.jmx.remote.opt.security.AdminClient.connectionOpen(AdminClient.java:97) ~[opendmk_jmxremote_optional_jar-1.0-b01-ea.jar:?]
> at com.sun.jmx.remote.generic.ClientSynchroMessageConnectionImpl.connect(ClientSynchroMessageConnectionImpl.java:112) ~[opendmk_jmxremote_optional_jar-1.0-b01-ea.jar:?]
> at javax.management.remote.generic.GenericConnector.connect(GenericConnector.java:217) ~[!/:?]
> at javax.management.remote.jmxmp.JMXMPConnector.connect(JMXMPConnector.java:159) ~[!/:?]
> at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:270) ~[?:1.8.0_232]
> at org.apache.brooklyn.feed.jmx.JmxHelper.newConnector(JmxHelper.java:318) ~[!/:1.1.0-SNAPSHOT]
> at org.apache.brooklyn.feed.jmx.JmxHelper.connect(JmxHelper.java:277) ~[!/:1.1.0-SNAPSHOT]
> at org.apache.brooklyn.feed.jmx.JmxHelper.reconnect(JmxHelper.java:252) [!/:1.1.0-SNAPSHOT]
> at org.apache.brooklyn.feed.jmx.JmxHelper.reconnectWithRetryDampened(JmxHelper.java:245) [!/:1.1.0-SNAPSHOT]
> at org.apache.brooklyn.feed.jmx.JmxHelper.invokeWithReconnect(JmxHelper.java:494) [!/:1.1.0-SNAPSHOT]
> at org.apache.brooklyn.feed.jmx.JmxHelper.findMBeans(JmxHelper.java:522) [!/:1.1.0-SNAPSHOT]
> at org.apache.brooklyn.feed.jmx.JmxHelper.findMBean(JmxHelper.java:530) [!/:1.1.0-SNAPSHOT]
> at org.apache.brooklyn.feed.jmx.JmxHelper.toLiteralObjectName(JmxHelper.java:514) [!/:1.1.0-SNAPSHOT]
> at org.apache.brooklyn.feed.jmx.JmxHelper.getAttribute(JmxHelper.java:639) [!/:1.1.0-SNAPSHOT]
> at org.apache.brooklyn.feed.jmx.JmxFeed$7.call(JmxFeed.java:373) [!/:1.1.0-SNAPSHOT] at org.apache.brooklyn.core.feed.Poller$PollJob$1.run(Poller.java:76) [!/:1.1.0-SNAPSHOT]
> at org.apache.brooklyn.core.feed.Poller$1.call(Poller.java:158) [!/:1.1.0-SNAPSHOT] at org.apache.brooklyn.core.feed.Poller$1.call(Poller.java:151) [!/:1.1.0-SNAPSHOT]
> at org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:364) [!/:1.1.0-SNAPSHOT]
> at org.apache.brooklyn.util.core.task.BasicExecutionManager$ScheduledTaskCallable$1.call(BasicExecutionManager.java:476) [!/:1.1.0-SNAPSHOT]
> at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:565) [!/:1.1.0-SNAPSHOT]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_232]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_232]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_232]
> at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232]{noformat}
>
> All comms over jmxmp fail, so the `JmxFeed` doesn't get its sensor values. This can cause entities (such as `Tomcat8Server`) to show as failing to start.
> Here's a simple blueprint to reproduce:
> {noformat}
> location: centos7_aws_useast1
> services:
> - type: org.apache.brooklyn.entity.webapp.tomcat.Tomcat8Server
> id: tomcat
> brooklyn.config:
> webapp.enabledProtocols:
> - http
> - https
> jmx.enabled: true
> jmx.password: <snip>
> webapp.https.ssl:
> keystorePassword: password
> keyAlias: tomcat
> keystoreUrl: https://github.com/brooklyncentral/brooklyn-tomcat-8-server/raw/master/sample-keystore{noformat}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)