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

Reply via email to