[
https://issues.apache.org/jira/browse/HDFS-2685?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mitesh Singh Jat updated HDFS-2685:
-----------------------------------
Description:
_hadoop fs -ls_ command gives exit code for globbed input path, which is the
exit code for the last resolved absolute path. Whereas _ls_ command always give
same exit code regardless of position of non-existent path in globbing.
{code}$ hadoop fs -mkdir input/20110{1,2,3}/{A,B,C,D}/{1,2} {code}
Since directory 'input/201104/' is not present, the following command gives 255
as exit code.
{code}$ hadoop fs -ls input/20110{1,2,3,4}/ ; echo $? {code}
{noformat}
Found 4 items
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/A
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/B
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/C
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/D
Found 4 items
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/A
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/B
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/C
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/D
Found 4 items
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/A
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/B
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/C
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/D
ls: Cannot access input/201104/: No such file or directory.
255
{noformat}
The directory 'input/201104/' is not present but given as second last parameter
in globbing.
The following command gives 0 as exit code, because directory 'input/201103/'
is present.
{code}$ hadoop fs -ls input/20110{1,2,4,3}/ ; echo $? {code}
{noformat}
Found 4 items
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/A
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/B
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/C
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/D
Found 4 items
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/A
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/B
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/C
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/D
ls: Cannot access input/201104/: No such file or directory.
Found 4 items
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/A
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/B
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/C
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/D
0
{noformat}
Whereas, on Linux, ls command gives non-zero(2) as exit code, irrespective of
position of non-existent path in globbing.
{code}$ mkdir -p input/20110{1,2,3,4}/{A,B,C,D}/{1,2} {code}
{code}$ ls input/20110{1,2,4,3}/ ; echo $? {code}
{noformat}
/bin/ls: input/201104/: No such file or directory
input/201101/:
./ ../ A/ B/ C/ D/
input/201102/:
./ ../ A/ B/ C/ D/
input/201103/:
./ ../ A/ B/ C/ D/
2
{noformat}
{code}$ ls input/20110{1,2,3,4}/ ; echo $? {code}
{noformat}
/bin/ls: input/201104/: No such file or directory
input/201101/:
./ ../ A/ B/ C/ D/
input/201102/:
./ ../ A/ B/ C/ D/
input/201103/:
./ ../ A/ B/ C/ D/
2
{noformat}
was:
_hadoop fs -ls_ command gives exit code for globbed input path, which is the
exit code for the last resolved absolute path. Whereas _ls_ command always give
same exit code regardless of position of non-existent path in globbing.
{code:bash}$ hadoop fs -mkdir input/20110{1,2,3}/{A,B,C,D}/{1,2} {code}
Since directory 'input/201104/' is not present, the following command gives 255
as exit code.
{code:bash}$ hadoop fs -ls input/20110{1,2,3,4}/ ; echo $? {code}
{noformat}
Found 4 items
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/A
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/B
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/C
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/D
Found 4 items
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/A
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/B
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/C
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/D
Found 4 items
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/A
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/B
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/C
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/D
ls: Cannot access input/201104/: No such file or directory.
{noformat}
{color:red}255{color}
The directory 'input/201104/' is not present but given as second last parameter
in globbing.
The following command gives 0 as exit code, because directory 'input/201103/'
is present.
{code:bash}$ hadoop fs -ls input/20110{1,2,4,3}/ ; echo $? {code}
{noformat}
Found 4 items
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/A
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/B
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/C
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201101/D
Found 4 items
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/A
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/B
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/C
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201102/D
ls: Cannot access input/201104/: No such file or directory.
Found 4 items
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/A
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/B
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/C
drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
/user/mitesh/input/201103/D
{noformat}
{color:green}0{color}
Whereas, on Linux, ls command gives non-zero(2) as exit code, irrespective of
position of non-existent path in globbing.
{code:bash}$ mkdir -p input/20110{1,2,3,4}/{A,B,C,D}/{1,2} {code}
{code:bash}$ ls input/20110{1,2,4,3}/ ; echo $? {code}
{noformat}
/bin/ls: input/201104/: No such file or directory
input/201101/:
./ ../ A/ B/ C/ D/
input/201102/:
./ ../ A/ B/ C/ D/
input/201103/:
./ ../ A/ B/ C/ D/
{noformat}
{color:red}2{color}
{code:bash}$ ls input/20110{1,2,3,4}/ ; echo $? {code}
{noformat}
/bin/ls: input/201104/: No such file or directory
input/201101/:
./ ../ A/ B/ C/ D/
input/201102/:
./ ../ A/ B/ C/ D/
input/201103/:
./ ../ A/ B/ C/ D/
{noformat}
{color:red}2{color}
> hadoop fs -ls globbing gives inconsistent exit code
> ---------------------------------------------------
>
> Key: HDFS-2685
> URL: https://issues.apache.org/jira/browse/HDFS-2685
> Project: Hadoop HDFS
> Issue Type: Bug
> Affects Versions: 0.20.2, 0.20.204.0, 0.20.205.0
> Reporter: Mitesh Singh Jat
>
> _hadoop fs -ls_ command gives exit code for globbed input path, which is the
> exit code for the last resolved absolute path. Whereas _ls_ command always
> give same exit code regardless of position of non-existent path in globbing.
> {code}$ hadoop fs -mkdir input/20110{1,2,3}/{A,B,C,D}/{1,2} {code}
> Since directory 'input/201104/' is not present, the following command gives
> 255 as exit code.
> {code}$ hadoop fs -ls input/20110{1,2,3,4}/ ; echo $? {code}
> {noformat}
> Found 4 items
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201101/A
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201101/B
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201101/C
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201101/D
> Found 4 items
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201102/A
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201102/B
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201102/C
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201102/D
> Found 4 items
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201103/A
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201103/B
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201103/C
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201103/D
> ls: Cannot access input/201104/: No such file or directory.
> 255
> {noformat}
> The directory 'input/201104/' is not present but given as second last
> parameter in globbing.
> The following command gives 0 as exit code, because directory 'input/201103/'
> is present.
> {code}$ hadoop fs -ls input/20110{1,2,4,3}/ ; echo $? {code}
> {noformat}
> Found 4 items
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201101/A
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201101/B
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201101/C
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201101/D
> Found 4 items
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201102/A
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201102/B
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201102/C
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201102/D
> ls: Cannot access input/201104/: No such file or directory.
> Found 4 items
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201103/A
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201103/B
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201103/C
> drwxr-xr-x - mitesh supergroup 0 2011-12-15 11:51
> /user/mitesh/input/201103/D
> 0
> {noformat}
> Whereas, on Linux, ls command gives non-zero(2) as exit code, irrespective of
> position of non-existent path in globbing.
> {code}$ mkdir -p input/20110{1,2,3,4}/{A,B,C,D}/{1,2} {code}
> {code}$ ls input/20110{1,2,4,3}/ ; echo $? {code}
> {noformat}
> /bin/ls: input/201104/: No such file or directory
> input/201101/:
> ./ ../ A/ B/ C/ D/
> input/201102/:
> ./ ../ A/ B/ C/ D/
> input/201103/:
> ./ ../ A/ B/ C/ D/
> 2
> {noformat}
> {code}$ ls input/20110{1,2,3,4}/ ; echo $? {code}
> {noformat}
> /bin/ls: input/201104/: No such file or directory
> input/201101/:
> ./ ../ A/ B/ C/ D/
> input/201102/:
> ./ ../ A/ B/ C/ D/
> input/201103/:
> ./ ../ A/ B/ C/ D/
> 2
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira