reef-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From 이산하 <sanhaleeh...@gmail.com>
Subject Re: Sharing Wake LocalAddressProvider issue
Date Tue, 06 Jun 2017 03:54:03 GMT
With pleasure!
Here is the issue.
https://issues.apache.org/jira/browse/REEF-1808

Thanks!

2017-06-05 21:55 GMT+09:00 Gyewon Lee <strayyyyyy@gmail.com>:

> Hi.
>
> Thank you for reporting this issue - it seems that some people using Mac
> experienced this issue before. Is there anyone who experienced this issue
> on Linux or Windows?
>
> In my humble opinion, it would better to fix LocalAddressProvider than
> using LegacyLocalAdressProvider. Could you report this issue through JIRA?
>
> Thanks!
> Gyewon
>
> 2017-06-05 18:44 GMT+09:00 이산하 <sanhaleehana@gmail.com>:
>
> > Hello reefers,
> >
> > I'd like to share an issue related with Wake I've experienced, and seek
> > your opinion.
> > I'm working on a project that runs on REEF, and it occasionally spitted
> > some exception saying there is no available TCP port. Full message was
> like
> > below.
> >
> > Caused by: java.lang.RuntimeException:
> > org.apache.reef.tang.exceptions.InjectionException: Could not invoke
> > constructor: new NettyMessagingTransport(String HostAddress =
> > ##UNKNOWN##, Integer Port = 0, EStage RemoteClientStage =
> > org.apache.reef.wake.remote.impl.OrderedRemoteReceiverStage@47523643,
> > EStage RemoteServerStage =
> > org.apache.reef.wake.remote.impl.OrderedRemoteReceiverStage@47523643,
> > Integer NumberOfTries = 3, Integer RetryTimeout = 10000,
> > [ClassNodeImpl 'org.apache.reef.wake.remote.ports.TcpPortProvider']:
> > = RangeTcpPortProvider{portRangeBegin=10000, portRangeCount=10000,
> > portRangeTryCount=1000}, LocalAddressProvider = new
> > HostnameBasedLocalAddressProvider())
> >         at org.apache.reef.wake.remote.transport.netty.
> > MessagingTransportFactory.newInstance(MessagingTransportFactory.
> java:135)
> >         at org.apache.reef.wake.remote.impl.
> DefaultRemoteManagerImplementa
> > tion.<init>(DefaultRemoteManagerImplementation.java:89)
> >         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)
> >         ... 50 more
> > Caused by: org.apache.reef.tang.exceptions.InjectionException: Could
> > not invoke constructor: new NettyMessagingTransport(String HostAddress
> > = ##UNKNOWN##, Integer Port = 0, EStage RemoteClientStage =
> > org.apache.reef.wake.remote.impl.OrderedRemoteReceiverStage@47523643,
> > EStage RemoteServerStage =
> > org.apache.reef.wake.remote.impl.OrderedRemoteReceiverStage@47523643,
> > Integer NumberOfTries = 3, Integer RetryTimeout = 10000,
> > [ClassNodeImpl 'org.apache.reef.wake.remote.ports.TcpPortProvider']:
> > = RangeTcpPortProvider{portRangeBegin=10000, portRangeCount=10000,
> > portRangeTryCount=1000}, LocalAddressProvider = new
> > HostnameBasedLocalAddressProvider())
> >         at org.apache.reef.tang.implementation.java.
> > InjectorImpl.injectFromPlan(InjectorImpl.java:654)
> >         at org.apache.reef.tang.implementation.java.
> > InjectorImpl.getInstance(InjectorImpl.java:515)
> >         at org.apache.reef.tang.implementation.java.
> > InjectorImpl.getInstance(InjectorImpl.java:533)
> >         at org.apache.reef.wake.remote.transport.netty.
> > MessagingTransportFactory.newInstance(MessagingTransportFactory.
> java:133)
> >         ... 56 more
> > Caused by: org.apache.reef.wake.remote.transport.exception.
> > TransportRuntimeException:
> > tcpPortProvider failed to return free ports.
> >         at org.apache.reef.wake.remote.transport.netty.
> > NettyMessagingTransport.<init>(NettyMessagingTransport.java:183)
> >         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)
> >         ... 59 more
> > Caused by: java.lang.IllegalStateException: tcpPortProvider cannot
> > find a free port.
> >         at org.apache.reef.wake.remote.transport.netty.
> > NettyMessagingTransport.<init>(NettyMessagingTransport.java:167)
> >         ... 64 more
> >
> > This error was caused by NettyMessagingTransport when it failed to find
> > available TCP port in the local address provided by LocalAddressProvider.
> > Because of this, this error occurred selectively depending on the network
> > environment.
> >
> > I've resolved it by changing LegacyLocalAddressProvider as the default
> > implementation of LocalAddressProvider, which sorts the available local
> > addresses and find minimum one.
> > It seems to have been deprecated because it is slow, but it worked for
> me.
> > For now, I added a custom Wake jar to my project for this.
> >
> > So, isn't there anyone who has experienced this issue?
> > If is so, what do you think about changing the default implementation of
> > LocalAddressProvider?
> > I'm seeking your opinions.
> >
> > Best regards,
> > Sanha Lee.
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message