diff --git a/CHANGES.txt b/CHANGES.txt index 03fd1916d8..b01a49b070 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -63,6 +63,9 @@ Trunk (unreleased changes) HADOOP-7112. Issue a warning when GenericOptionsParser libjars are not on local filesystem. (tomwhite) + HADOOP-7114. FsShell should dump all exceptions at DEBUG level. + (todd via tomwhite) + OPTIMIZATIONS BUG FIXES diff --git a/src/java/org/apache/hadoop/fs/FsShell.java b/src/java/org/apache/hadoop/fs/FsShell.java index 7eb99ad67c..6d70f94a61 100644 --- a/src/java/org/apache/hadoop/fs/FsShell.java +++ b/src/java/org/apache/hadoop/fs/FsShell.java @@ -26,6 +26,8 @@ import java.util.*; import java.util.zip.GZIPInputStream; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; @@ -49,6 +51,8 @@ /** Provide command line access to a FileSystem. */ @InterfaceAudience.Private public class FsShell extends Configured implements Tool { + + static final Log LOG = LogFactory.getLog(FsShell.class); protected FileSystem fs; private Trash trash; @@ -952,6 +956,7 @@ void rename(String srcf, String dstf) throws IOException { try { dstFstatus = fs.getFileStatus(dst); } catch(IOException e) { + LOG.debug("Error getting file status of " + dst, e); } if((srcFstatus!= null) && (dstFstatus!= null)) { if (srcFstatus.isDirectory() && !dstFstatus.isDirectory()) { @@ -999,6 +1004,7 @@ private int rename(String argv[], Configuration conf) throws IOException { // rename(argv[i], dest); } catch (RemoteException e) { + LOG.debug("Error renaming " + argv[i], e); // // This is a error returned by hadoop server. Print // out the first line of the error mesage. @@ -1013,6 +1019,7 @@ private int rename(String argv[], Configuration conf) throws IOException { ex.getLocalizedMessage()); } } catch (IOException e) { + LOG.debug("Error renaming " + argv[i], e); // // IO exception encountered locally. // @@ -1083,6 +1090,7 @@ private int copy(String argv[], Configuration conf) throws IOException { // copy(argv[i], dest, conf); } catch (RemoteException e) { + LOG.debug("Error copying " + argv[i], e); // // This is a error returned by hadoop server. Print // out the first line of the error mesage. @@ -1098,6 +1106,7 @@ private int copy(String argv[], Configuration conf) throws IOException { ex.getLocalizedMessage()); } } catch (IOException e) { + LOG.debug("Error copying " + argv[i], e); // // IO exception encountered locally. // @@ -1159,6 +1168,7 @@ private void delete(Path src, FileSystem srcFs, boolean recursive, return; } } catch (IOException e) { + LOG.debug("Error with trash", e); Exception cause = (Exception) e.getCause(); String msg = ""; if(cause != null) { @@ -1276,6 +1286,7 @@ private static FileStatus[] shellListStatus(String cmd, } catch(FileNotFoundException fnfe) { System.err.println(cmd + ": could not get listing for '" + path + "'"); } catch (IOException e) { + LOG.debug("Error listing " + path, e); System.err.println(cmd + ": could not get get listing for '" + path + "' : " + e.getMessage().split("\n")[0]); @@ -1332,6 +1343,7 @@ int runCmdHandler(CmdHandler handler, String[] args, errors += runCmdHandler(handler, file, srcFs, recursive); } } catch (IOException e) { + LOG.debug("Error getting status for " + path, e); String msg = (e.getMessage() != null ? e.getLocalizedMessage() : (e.getCause().getMessage() != null ? e.getCause().getLocalizedMessage() : "null")); @@ -1687,6 +1699,7 @@ private int doall(String cmd, String argv[], int startindex) { text(argv[i]); } } catch (RemoteException e) { + LOG.debug("Error", e); // // This is a error returned by hadoop server. Print // out the first line of the error message. @@ -1702,6 +1715,7 @@ private int doall(String cmd, String argv[], int startindex) { ex.getLocalizedMessage()); } } catch (IOException e) { + LOG.debug("Error", e); // // IO exception encountered locally. // @@ -1855,11 +1869,13 @@ public int run(String argv[]) throws Exception { // initialize FsShell try { init(); - } catch (RPC.VersionMismatch v) { + } catch (RPC.VersionMismatch v) { + LOG.debug("Version mismatch", v); System.err.println("Version Mismatch between client and server" + "... command aborted."); return exitCode; } catch (IOException e) { + LOG.debug("Error", e); System.err.println("Bad connection to FS. Command aborted. Exception: " + e.getLocalizedMessage()); return exitCode; @@ -1956,10 +1972,12 @@ public int run(String argv[]) throws Exception { printUsage(""); } } catch (IllegalArgumentException arge) { + LOG.debug("Error", arge); exitCode = -1; System.err.println(cmd.substring(1) + ": " + arge.getLocalizedMessage()); printUsage(cmd); } catch (RemoteException e) { + LOG.debug("Error", e); // // This is a error returned by hadoop server. Print // out the first line of the error mesage, ignore the stack trace. @@ -1974,6 +1992,7 @@ public int run(String argv[]) throws Exception { ex.getLocalizedMessage()); } } catch (IOException e) { + LOG.debug("Error", e); // // IO exception encountered locally. // @@ -1981,6 +2000,7 @@ public int run(String argv[]) throws Exception { System.err.println(cmd.substring(1) + ": " + e.getLocalizedMessage()); } catch (Exception re) { + LOG.debug("Error", re); exitCode = -1; System.err.println(cmd.substring(1) + ": " + re.getLocalizedMessage()); } finally { diff --git a/src/java/org/apache/hadoop/fs/FsShellPermissions.java b/src/java/org/apache/hadoop/fs/FsShellPermissions.java index a3466568d6..6b5e89254a 100644 --- a/src/java/org/apache/hadoop/fs/FsShellPermissions.java +++ b/src/java/org/apache/hadoop/fs/FsShellPermissions.java @@ -21,6 +21,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.commons.logging.Log; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; import org.apache.hadoop.fs.FsShell.CmdHandler; @@ -35,6 +36,8 @@ @InterfaceAudience.Private @InterfaceStability.Unstable class FsShellPermissions { + + static Log LOG = FsShell.LOG; /*========== chmod ==========*/ @@ -75,6 +78,7 @@ public void run(FileStatus file, FileSystem srcFs) throws IOException { srcFs.setPermission(file.getPath(), new FsPermission((short)newperms)); } catch (IOException e) { + LOG.debug("Error changing permissions of " + file.getPath(), e); System.err.println(getName() + ": changing permissions of '" + file.getPath() + "':" + e.getMessage()); } @@ -133,6 +137,7 @@ public void run(FileStatus file, FileSystem srcFs) throws IOException { try { srcFs.setOwner(file.getPath(), newOwner, newGroup); } catch (IOException e) { + LOG.debug("Error changing ownership of " + file.getPath(), e); System.err.println(getName() + ": changing ownership of '" + file.getPath() + "':" + e.getMessage());