[ 
https://issues.apache.org/jira/browse/HADOOP-12122?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nemanja Matkovic updated HADOOP-12122:
--------------------------------------
    Attachment: HADOOP-12122-HADOOP-11890.9.patch

Important changes:
1. Found one more place in code that uses IPv4 --> BlockPoolSliceStorage.java 
and causes TestRollingUpgrade test case to fail.This one slipped my testing 
before as this test case fails sometimes on "base" build as well :(
Problem with just using IPv6 address is that HDFS doesn't consider ":" in path 
to be valid (see HADOOP-3257)
I don't have good context here on what intention of original naming scheme was, 
there is only one place where this is used so I assume only intention was to be 
able to match path easily.

2. Removed all "preferIPv4" occurrences. On my test servers (both IPv6-only one 
and dual stack one) I only see test case failures identical to failures in base 
build (build off of HADOOP-11890 without any of IPv6 patches). There is one 
test case (TestUmbilicalProtocolWithJobToken) that claims it depends on 
preferIPv4 being set, however on my box it isn't passing in base build either.

Comments not addressed:
DatanodeManager --> Basically comment there was too long and detailed, but code 
is going the right thing so just shortened comment.
Checkpointer --> I think this was intention of previous code, just split on 
last ":" and take whatever is before and after as "host" and "port", hence 
keeping that semantics true even if someone passed in IPv6 (bracketed or not).

Not so important changes:
- Added some more IPv6 specific tests
- Fixed star imports
- Fixed bunch of small things (comments, whitespace, style)
IPCLoggerChannel is not doing stupid stuff anymore

Testing:
Ran all tests locally again on dual stack and IPv6 servers again, ran in IPv6 
cluster teragen/terasort/teravalidate and in IPv6 HBase cluster 
IntegrationTestBigLinkedList, checked locality is working in this test case, 
checked includes/excludes is working well.

> Fix Hadoop should avoid unsafe split and append on fields that might be IPv6 
> literals
> -------------------------------------------------------------------------------------
>
>                 Key: HADOOP-12122
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12122
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: HADOOP-11890
>            Reporter: Nate Edel
>            Assignee: Nemanja Matkovic
>         Attachments: HADOOP-12122-HADOOP-11890.0.patch, 
> HADOOP-12122-HADOOP-11890.3.patch, HADOOP-12122-HADOOP-11890.4.patch, 
> HADOOP-12122-HADOOP-11890.5.patch, HADOOP-12122-HADOOP-11890.6.patch, 
> HADOOP-12122-HADOOP-11890.7.patch, HADOOP-12122-HADOOP-11890.8.patch, 
> HADOOP-12122-HADOOP-11890.9.patch, HADOOP-12122-HADOOP-12122.2.patch, 
> HADOOP-12122-HADOOP-12122.3.patch, HADOOP-12122.0.patch, 
> lets_blow_up_a_lot_of_tests.patch
>
>
> There are a fairly extensive number of locations found via code inspection 
> which use unsafe methods of handling addresses in a dual-stack or IPv6-only 
> world:
> - splits on the first ":" assuming that delimits a host from a port
> - produces a host port pair by appending :port blindly (Java prefers 
> [ipv6]:port which is the standard for IPv6 URIs)
> - depends on the behavior of InetSocketAddress.toString() which produces the 
> above.
> This patch fixes those metaphors that I can find above, and replaces calls to 
> InetSocketAddress.toString() with a wrapper that properly brackets the IPv6 
> address if there is one.



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

Reply via email to