FAQ
Incorrect exit codes for "dfs -chown", "dfs -chgrp" when input is given in wildcard format.
--------------------------------------------------------------------------------------------

Key: HADOOP-6702
URL: https://issues.apache.org/jira/browse/HADOOP-6702
Project: Hadoop Common
Issue Type: Bug
Components: fs
Affects Versions: 0.20.2, 0.20.1, 0.20.0, 0.19.1
Reporter: Ravi Phulari
Assignee: Ravi Phulari
Priority: Minor
Fix For: 0.20.3, 0.21.0, 0.22.0


Currently incorrect exit codes are given for "dfs -chown", "dfs -chgrp" when input is given in wildcard format.

This bug is due to missing update of errors count in {{FsShell.java}}.

{code:title=FsShell.java|borderStyle=solid}
int runCmdHandler(CmdHandler handler, String[] args,
int startIndex, boolean recursive)
throws IOException {
int errors = 0;

for (int i=startIndex; i<args.length; i++) {
Path srcPath = new Path(args[i]);
FileSystem srcFs = srcPath.getFileSystem(getConf());
Path[] paths = FileUtil.stat2Paths(srcFs.globStatus(srcPath), srcPath);
for(Path path : paths) {
try {
FileStatus file = srcFs.getFileStatus(path);
if (file == null) {
System.err.println(handler.getName() +
": could not get status for '" + path + "'");
errors++;
} else {
errors += runCmdHandler(handler, file, srcFs, recursive);
}
} catch (IOException e) {
String msg = (e.getMessage() != null ? e.getLocalizedMessage() :
(e.getCause().getMessage() != null ?
e.getCause().getLocalizedMessage() : "null"));
System.err.println(handler.getName() + ": could not get status for '"
+ path + "': " + msg.split("\n")[0]);
errors++;
}
}
}
{code}

If there are no files on HDFS matching to wildcard input then {{srcFs.globStatus(srcpath)}} returns 0.
{{ Path[] paths = FileUtil.stat2Paths(srcFs.globStatus(srcPath), srcPath);}}

Resulting no increment in {{errors}} and command exits with 0 even though file/directory does not exist.

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

Search Discussions

  • Ravi Phulari (JIRA) at May 10, 2010 at 10:18 pm
    [ https://issues.apache.org/jira/browse/HADOOP-6702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

    Ravi Phulari resolved HADOOP-6702.
    ----------------------------------

    Resolution: Fixed

    HADOOP-6701 Fixes this issue.
    Incorrect exit codes for "dfs -chown", "dfs -chgrp" when input is given in wildcard format.
    --------------------------------------------------------------------------------------------

    Key: HADOOP-6702
    URL: https://issues.apache.org/jira/browse/HADOOP-6702
    Project: Hadoop Common
    Issue Type: Bug
    Components: fs
    Affects Versions: 0.19.1, 0.20.0, 0.20.1, 0.20.2
    Reporter: Ravi Phulari
    Assignee: Ravi Phulari
    Priority: Minor
    Fix For: 0.20.3, 0.21.0, 0.22.0


    Currently incorrect exit codes are given for "dfs -chown", "dfs -chgrp" when input is given in wildcard format.
    This bug is due to missing update of errors count in {{FsShell.java}}.
    {code:title=FsShell.java|borderStyle=solid}
    int runCmdHandler(CmdHandler handler, String[] args,
    int startIndex, boolean recursive)
    throws IOException {
    int errors = 0;

    for (int i=startIndex; i<args.length; i++) {
    Path srcPath = new Path(args[i]);
    FileSystem srcFs = srcPath.getFileSystem(getConf());
    Path[] paths = FileUtil.stat2Paths(srcFs.globStatus(srcPath), srcPath);
    for(Path path : paths) {
    try {
    FileStatus file = srcFs.getFileStatus(path);
    if (file == null) {
    System.err.println(handler.getName() +
    ": could not get status for '" + path + "'");
    errors++;
    } else {
    errors += runCmdHandler(handler, file, srcFs, recursive);
    }
    } catch (IOException e) {
    String msg = (e.getMessage() != null ? e.getLocalizedMessage() :
    (e.getCause().getMessage() != null ?
    e.getCause().getLocalizedMessage() : "null"));
    System.err.println(handler.getName() + ": could not get status for '"
    + path + "': " + msg.split("\n")[0]);
    errors++;
    }
    }
    }
    {code}
    If there are no files on HDFS matching to wildcard input then {{srcFs.globStatus(srcpath)}} returns 0.
    {{ Path[] paths = FileUtil.stat2Paths(srcFs.globStatus(srcPath), srcPath);}}
    Resulting no increment in {{errors}} and command exits with 0 even though file/directory does not exist.
    --
    This message is automatically generated by JIRA.
    -
    You can reply to this email to add a comment to the issue online.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupcommon-dev @
categorieshadoop
postedApr 13, '10 at 9:10p
activeMay 10, '10 at 10:18p
posts2
users1
websitehadoop.apache.org...
irc#hadoop

1 user in discussion

Ravi Phulari (JIRA): 2 posts

People

Translate

site design / logo © 2023 Grokbase