[
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)