You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Juan José Ramos Cassella (JIRA)" <ji...@apache.org> on 2017/07/25 14:15:00 UTC
[jira] [Created] (GEODE-3292) Embedded PULSE Connection Failure
When jmx-manager-bind-address != localhost
Juan José Ramos Cassella created GEODE-3292:
-----------------------------------------------
Summary: 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
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)