You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/08/01 01:09:00 UTC
[jira] [Commented] (GEODE-3292) Embedded PULSE Connection Failure
When jmx-manager-bind-address != localhost
[ https://issues.apache.org/jira/browse/GEODE-3292?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16108237#comment-16108237 ]
ASF GitHub Bot commented on GEODE-3292:
---------------------------------------
Github user jaredjstewart commented on the issue:
https://github.com/apache/geode/pull/664
Hi Juan,
Thanks for your contribution! Your changes look good to me, but our [Criteria for Code Submissions](https://cwiki.apache.org/confluence/display/GEODE/Criteria+for+Code+Submissions) require having tests for the behavior that is being changed. In this case, it would be good to add a test to make sure that GEODE-3292 has been fixed and will not reoccur. Typically I would point you towards an existing test to use as a guide, but since your changes appear to be in an area of the code that is not particularly well-tested, let me know if you don't feel confident in writing such a test and I can help.
> Embedded PULSE Connection Failure When jmx-manager-bind-address != localhost
> ----------------------------------------------------------------------------
>
> Key: GEODE-3292
> URL: https://issues.apache.org/jira/browse/GEODE-3292
> Project: Geode
> Issue Type: Bug
> Components: pulse
> Reporter: Juan José Ramos Cassella
> Assignee: Juan José Ramos Cassella
> Priority: Minor
>
> The PULSE webApp (embedded mode) fails to connect to the jmx-manager when a non-default {{jmx-manager-bind-address}} is configured. The app tries to connect by default to {{service:jmx:rmi://localhost/jndi/rmi://localhost:17991/jmxrmi}} whenever it detects it's running in embedded mode, instead of getting the local hostname through {{InetAddress.getLocalHost().getCanonicalHostName()}} as it used to do before.
> The problem was introduced by [GEODE-2927|https://issues.apache.org/jira/browse/GEODE-2927], commit [0f978a6df711d04e0c7c1926fb1e297d07c21aa3|https://git-wip-us.apache.org/repos/asf?p=geode.git;h=0f978a6].
> Steps to reproduce:
> {code:none}
> $ export JAVA_ARGS="-Dgfsh.log-level=config -Dgfsh.log-dir=$(pwd)"
> $ gfsh start locator --name=locator1 --force=true --connect=false \
> --J=-Dpulse.Log-Level=debug --J=-Dpulse.Log-File-Name=pulse.log --J=-Dpulse.Log-FileLocation=$(pwd) \
> --J=-Dgemfire.jmx-manager=true --J=-Dgemfire.jmx-manager-start=true --J=-Dgemfire.jmx-manager-port=17991 \
> --J=-Dgemfire.jmx-manager-bind-address=$(ipconfig getifaddr en0)
> $ gfsh start pulse
> {code}
> At this point, and after a successful login to PULSE, the application doesn't show any cluster data and the exception can be seen (both in the logs and in the PULSE screen).
> The easiest solution would be to revert back some lines of the changes made by commit [0f978a6df711d04e0c7c1926fb1e297d07c21aa3|https://git-wip-us.apache.org/repos/asf?p=geode.git;h=0f978a6], as follows:
> {code:title=PulseAppListener.java|borderStyle=solid}
> @Override
> public void contextInitialized(ServletContextEvent event) {
> (...)
> boolean sysIsEmbedded = Boolean.getBoolean(PulseConstants.SYSTEM_PROPERTY_PULSE_EMBEDDED);
> if (sysIsEmbedded) {
> // jmx connection parameters
> logger.info(resourceBundle.getString("LOG_MSG_APP_RUNNING_EMBEDDED_MODE"));
> repository.setJmxUseLocator(false);
> //----------------------------------------------------------------------------------------
> String sysPulseHost;
> try {
> // Get host name of machine running pulse in embedded mode
> sysPulseHost = InetAddress.getLocalHost().getCanonicalHostName();
> } catch (Exception e) {
> logger.debug(resourceBundle.getString("LOG_MSG_JMX_CONNECTION_UNKNOWN_HOST"), e);
> // Set default host name
> sysPulseHost = PulseConstants.GEMFIRE_DEFAULT_HOST;
> }
> repository.setHost(sysPulseHost);
> //----------------------------------------------------------------------------------------
> repository.setPort(System.getProperty(PulseConstants.SYSTEM_PROPERTY_PULSE_PORT,
> PulseConstants.GEMFIRE_DEFAULT_PORT));
> // SSL, all the other system properties are already set in the embedded VM
> repository.setUseSSLManager(
> Boolean.valueOf(System.getProperty(PulseConstants.SYSTEM_PROPERTY_PULSE_USESSL_MANAGER)));
> repository.setUseSSLLocator(
> Boolean.valueOf(System.getProperty(PulseConstants.SYSTEM_PROPERTY_PULSE_USESSL_LOCATOR)));
> (...)
> }
> {code}
> I can make the changes and submit a PR if someone assigns me this ticket.
> Cheers.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)