Chao Sun created SPARK-58719:
--------------------------------

             Summary: IPv6 RPC address normalization fails for hexadecimal 
addresses and driver pod IPs
                 Key: SPARK-58719
                 URL: https://issues.apache.org/jira/browse/SPARK-58719
             Project: Spark
          Issue Type: Bug
          Components: Kubernetes, Spark Core
    Affects Versions: 4.2.0
            Reporter: Chao Sun


h2. Problem

Spark's RpcAddress normalization recognizes IPv6 addresses only when their 
characters are decimal digits and colons. Normal IPv6 literals containing 
hexadecimal letters therefore bypass normalization and are embedded in Spark 
RPC URLs without the brackets required by URI syntax.

For example:

{code}
RpcAddress("2001:db8::dead:beef", 7077).toSparkURL
{code}

Currently produces:

{code}
spark://2001:db8::dead:beef:7077
{code}

Expected:

{code}
spark://[2001:db8::dead:beef]:7077
{code}

h2. Root cause

SPARK-42173 introduced IPv6 address canonicalization but its matcher accepts 
only [0-9:] in the address body and [0-9] in the final segment. Existing tests 
cover ::1, ::0:1, and 2600::, but none contains hexadecimal letters.

h2. Kubernetes impact

When spark.kubernetes.executor.useDriverPodIP is enabled, 
BasicExecutorFeatureStep constructs the executor driver RPC URL from the raw 
driver pod IP. An IPv6 address such as 2001:DB8:0:0::BEEF therefore produces an 
invalid unbracketed URL and can prevent executors from connecting. This option 
is enabled by default on current Spark master.

h2. Proposed fix

Recognize uppercase and lowercase hexadecimal digits in both parts of the 
existing IPv6 matcher while preserving address canonicalization, IPv4/hostname 
behavior, and RpcAddress equality. Add RpcAddress regression coverage for raw, 
bracketed, uppercase, zero-padded, and trailing-hexadecimal IPv6 literals, plus 
a Kubernetes driver-pod-IP regression test.

Related historical reports and fixes: SPARK-22077, SPARK-39457, and SPARK-42173.




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to