[
https://issues.apache.org/jira/browse/HDFS-10684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15455957#comment-15455957
]
John Zhuge commented on HDFS-10684:
-----------------------------------
To support mixed versions of NNs and DNs in webhdfs, we have to make sure
{{null str}} is handled in {{XxxxxParam(final String str)}} constructors,
either passing {{DEFAULT}} to superclass, or superclass already handling {{null
str}}:
{code}
public XxxxxParam(final String str) {
super(DOMAIN, DOMAIN.parse(str == null ? DEFAULT : str));
}
{code}
A quick survey between 2.7 and branch-2.8 yields the following new params:
* CreateFlagParam
* NoRedirectParam
* StartAfterParam
* CreateParentParam, not new, but its usage expanded to {{CREATE}}
No new param added between branch-2.8 and trunk.
I don't know whether there is any other case like {{CreateParentParam}} where
an existing param was expanded in its usage. If anybody comes across one,
please let me know or file an JIRA.
> WebHDFS DataNode calls fail without parameter createparent
> ----------------------------------------------------------
>
> Key: HDFS-10684
> URL: https://issues.apache.org/jira/browse/HDFS-10684
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: webhdfs
> Affects Versions: 2.7.1
> Reporter: Samuel Low
> Assignee: John Zhuge
>
> Optional boolean parameters that are not provided in the URL cause the
> WebHDFS create file command to fail.
> curl -i -X PUT
> "http://hadoop-primarynamenode:50070/webhdfs/v1/tmp/test1234?op=CREATE&overwrite=false"
> Response:
> HTTP/1.1 307 TEMPORARY_REDIRECT
> Cache-Control: no-cache
> Expires: Fri, 15 Jul 2016 04:10:13 GMT
> Date: Fri, 15 Jul 2016 04:10:13 GMT
> Pragma: no-cache
> Expires: Fri, 15 Jul 2016 04:10:13 GMT
> Date: Fri, 15 Jul 2016 04:10:13 GMT
> Pragma: no-cache
> Content-Type: application/octet-stream
> Location:
> http://hadoop-datanode1:50075/webhdfs/v1/tmp/test1234?op=CREATE&namenoderpcaddress=hadoop-primarynamenode:8020&overwrite=false
> Content-Length: 0
> Server: Jetty(6.1.26)
> Following the redirect:
> curl -i -X PUT -T MYFILE
> "http://hadoop-datanode1:50075/webhdfs/v1/tmp/test1234?op=CREATE&namenoderpcaddress=hadoop-primarynamenode:8020&overwrite=false"
> Response:
> HTTP/1.1 100 Continue
> HTTP/1.1 400 Bad Request
> Content-Type: application/json; charset=utf-8
> Content-Length: 162
> Connection: close
>
> {"RemoteException":{"exception":"IllegalArgumentException","javaClassName":"java.lang.IllegalArgumentException","message":"Failed
> to parse \"null\" to Boolean."}}
> The problem can be circumvented by providing both "createparent" and
> "overwrite" parameters.
> However, this is not possible when I have no control over the WebHDFS calls,
> e.g. Ambari and Hue have errors due to this.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]