yunseong opened a new pull request #165: [NEMO-221] Confusing error messages for a failure at the client-side … URL: https://github.com/apache/incubator-nemo/pull/165 …initialization JIRA: [NEMO-221: Confusing error messages for a failure at the client-side initialization](https://issues.apache.org/jira/projects/NEMO/issues/NEMO-221) **Major changes:** - Throw a separate Exception if failed to create an RPC connection between Nemo client and REEF Driver (currently the IOException is swallowed by Tang's Injection Exception). This way, we can find the actual reason for the failure, although the beginning of the stack trace is still pretty lengthy with the network failure. An example is as follows: ``` Exception in thread "main" java.lang.RuntimeException: java.lang.Exception: Thread main threw an uncaught exception. at org.apache.nemo.client.JobLauncher.main(JobLauncher.java:180) Caused by: java.lang.Exception: Thread main threw an uncaught exception. at org.apache.reef.runtime.common.launch.REEFUncaughtExceptionHandler.uncaughtException(REEFUncaughtExceptionHandler.java:68) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1057) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1052) at java.lang.Thread.dispatchUncaughtException(Thread.java:1959) Caused by: java.lang.RuntimeException: Unable to configure and start REEFEnvironment. at org.apache.reef.runtime.common.REEFLauncher.fatal(REEFLauncher.java:202) at org.apache.reef.runtime.common.REEFLauncher.main(REEFLauncher.java:183) Caused by: java.lang.RuntimeException: org.apache.reef.tang.exceptions.InjectionException: Could not invoke constructor: new ClientRPC(TransportFactory = [ClassNodeImpl 'org.apache.reef.wake.remote.transport.netty.MessagingTransportFactory']: org.apache.reef.wake.remote.transport.netty.MessagingTransportFactory(org.apache.reef.wake.remote.address.LocalAddressProvider), = org.apache.reef.wake.remote.transport.netty.MessagingTransportFactory@6bb4dd34, LocalAddressProvider = [ClassNodeImpl 'org.apache.reef.wake.remote.address.HostnameBasedLocalAddressProvider']: org.apache.reef.wake.remote.address.HostnameBasedLocalAddressProvider(), = org.apache.reef.wake.remote.address.HostnameBasedLocalAddressProvider@7d9f158f, String ClientSideRPCServerHost = 127.0.0.1, Integer ClientSideRPCServerPort = 19888) ... (25 lines) ... at org.apache.reef.runtime.common.REEFEnvironment.fromConfiguration(REEFEnvironment.java:69) at org.apache.reef.runtime.common.REEFLauncher.main(REEFLauncher.java:180) Caused by: org.apache.reef.tang.exceptions.InjectionException: Could not invoke constructor: new ClientRPC(TransportFactory = [ClassNodeImpl 'org.apache.reef.wake.remote.transport.netty.MessagingTransportFactory']: org.apache.reef.wake.remote.transport.netty.MessagingTransportFactory(org.apache.reef.wake.remote.address.LocalAddressProvider), = org.apache.reef.wake.remote.transport.netty.MessagingTransportFactory@6bb4dd34, LocalAddressProvider = [ClassNodeImpl 'org.apache.reef.wake.remote.address.HostnameBasedLocalAddressProvider']: org.apache.reef.wake.remote.address.HostnameBasedLocalAddressProvider(), = org.apache.reef.wake.remote.address.HostnameBasedLocalAddressProvider@7d9f158f, String ClientSideRPCServerHost = 127.0.0.1, Integer ClientSideRPCServerPort = 19888) at org.apache.reef.tang.implementation.java.InjectorImpl.injectFromPlan(InjectorImpl.java:654) ... (10 lines) ... at org.apache.reef.tang.implementation.java.InjectorImpl.getNamedInstance(InjectorImpl.java:546) at org.apache.reef.tang.InjectionFuture.get(InjectionFuture.java:116) ... 26 more Caused by: java.lang.IllegalStateException: Failed to setup an RPC connection to the Client. A failure at the client-side is suspected. at org.apache.nemo.runtime.master.ClientRPC.<init>(ClientRPC.java:68) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.reef.tang.implementation.java.InjectorImpl.injectFromPlan(InjectorImpl.java:637) ... 37 more ``` **Minor changes to note:** - **Tests for the changes:** - **Other comments:** - Closes #GITHUB_PR_NUMBER
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services