[ 
https://issues.apache.org/jira/browse/FLINK-2821?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15712791#comment-15712791
 ] 

ASF GitHub Bot commented on FLINK-2821:
---------------------------------------

Github user StephanEwen commented on the issue:

    https://github.com/apache/flink/pull/2917
  
    It's a cool fix to help Flink run in container environments.
    
    There is one concern I have with the code, though: Previously, we decided 
explicitly to encode IP addresses in the Akka URLs, because Akka requires an 
exact match of the host in the URL.
    
    That has two problems:
    
      - All nodes need to agree to use either hostname or address. Enforcing to 
use the address was possible, enforcing to use the hostname not.
    
      - More importantly: IPv6 has multiple valid representations of the same 
address. If different nodes have the same address but represent it as a string 
differently, the messages would not arrive. That's why we have a "normalizing" 
encoding step that makes sure all URLs would be the same. That step relied on 
translating 
    
    I see two dangers now that may occur:
      - If different parts of the code or the JDK do a subtle change of 
behavior (i.e. resolve the InetAddress), then some nodes may have a hostname in 
the URL, others an address.
    
      - If two machines have a slightly different network configuration 
(especially concerning preferences to represent/encode IPv6 addresses) and the 
users set the IP address as the JobManager host, then they might create 
different Akka URLs and the machines cannot talk to each other again.
    
    I am a bit unsure how to proceed from here. Is there any way we can keep 
using IP addresses in the Akka URLs? Or does that just inherently not make 
sense with "dynamic hostnames" as they are used in container environments?


> Change Akka configuration to allow accessing actors from different URLs
> -----------------------------------------------------------------------
>
>                 Key: FLINK-2821
>                 URL: https://issues.apache.org/jira/browse/FLINK-2821
>             Project: Flink
>          Issue Type: Bug
>          Components: Distributed Coordination
>            Reporter: Robert Metzger
>            Assignee: Maximilian Michels
>
> Akka expects the actor's URL to be exactly matching.
> As pointed out here, cases where users were complaining about this: 
> http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Error-trying-to-access-JM-through-proxy-td3018.html
>   - Proxy routing (as described here, send to the proxy URL, receiver 
> recognizes only original URL)
>   - Using hostname / IP interchangeably does not work (we solved this by 
> always putting IP addresses into URLs, never hostnames)
>   - Binding to multiple interfaces (any local 0.0.0.0) does not work. Still 
> no solution to that (but seems not too much of a restriction)
> I am aware that this is not possible due to Akka, so it is actually not a 
> Flink bug. But I think we should track the resolution of the issue here 
> anyways because its affecting our user's satisfaction.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to