Due to Sun bug 4665037 (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4665037) rmi in linux may not work if the name resolution is not properly configured. The problem is that under linux the jmeter server in rmi will be bound to ip 127.0.0.1 instead of the real (externally reachable) ip address of the machine. So although the jmeter master will be able to locate the "JMeterEngine" instances via the RMI registry. It will not be able to connect to the actual instances. Actually JMeter will not complain when this happens it doesn't tell you anything when launching jmeter-server ( not even in logs) and it will silently fail when trying to start the remote instances (no trace in the logs). It's very easy to include a check in RemoteJMeterEngineImpl.java to check InetAddress.getLocalHost().isLoopbackAddress() and raise an exception or at least log it. Also it would be very convenient to add log statements in the catch java.rmi.xxxxException blocks in the ClientJMeterEngine.java. } catch (java.rmi.ConnectException e) { log.error("rmi exception", e); because otherwise this kind of failures go unnoticed.
Created attachment 19207 [details] Path to detect if the system is trying to register a loopback address to the rmi registry This patch detects if the the address we are binding to the rmiregistry is a loopback address and throws an exception if this is the case.
Thanks for the patch. Implemented in SVN r604072.
This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/1830