You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Ted Yu (Created) (JIRA)" <ji...@apache.org> on 2011/11/07 06:08:51 UTC

[jira] [Created] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException

FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException
------------------------------------------------------------------------------------

                 Key: HBASE-4754
                 URL: https://issues.apache.org/jira/browse/HBASE-4754
             Project: HBase
          Issue Type: Bug
            Reporter: Ted Yu
            Assignee: Ted Yu
             Fix For: 0.92.0


As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
{code}
11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
the table b
11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
create the table b
java.io.FileNotFoundException: File
hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
       at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
       at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
       at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
       at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
       at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
       at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
       at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
       at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
       at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
       at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
       at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
       at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
       at java.lang.Thread.run(Thread.java:619)
{code}
This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
{code}
  @Override
  public FileStatus[] listStatus(Path p) throws IOException {
    String src = getPathName(p);

    // fetch the first batch of entries in the directory
    DirectoryListing thisListing = dfs.listPaths(
        src, HdfsFileStatus.EMPTY_NAME);

    if (thisListing == null) { // the directory does not exist
      throw new FileNotFoundException("File " + p + " does not exist.");
    }
{code}
So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException

Posted by "stack (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13145243#comment-13145243 ] 

stack commented on HBASE-4754:
------------------------------

We should check all of hbase codebase Ted I'd say.  We'll see other forms of this issue I'd say.
                
> FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException

Posted by "Ted Yu (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13145318#comment-13145318 ] 

Ted Yu commented on HBASE-4754:
-------------------------------

I checked calls to fs.listStatus() in the codebase.
FSUtils.java contains the most calls. All the calls in FSUtils.java don't expect the return value to be null. This means letting FileNotFoundException bubble up wouldn't change the semantics of the calling methods.
In some other files, such as HLogSplitter.java, fs.listStatus() is preceded with fs.exists() check.
                
> FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException

Posted by "Ted Yu (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13145836#comment-13145836 ] 

Ted Yu commented on HBASE-4754:
-------------------------------

Integrated to 0.92 and TRUNK.

Thanks for the review Stack and Ramkrishna.
                
> FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException
> -------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-0.92.txt, 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException

Posted by "Hudson (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13145861#comment-13145861 ] 

Hudson commented on HBASE-4754:
-------------------------------

Integrated in HBase-0.92 #117 (See [https://builds.apache.org/job/HBase-0.92/117/])
    HBASE-4754  FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException

tedyu : 
Files : 
* /hbase/branches/0.92/CHANGES.txt
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/master/LogCleaner.java
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/master/MasterFileSystem.java
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/util/FSTableDescriptors.java
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/util/FSUtils.java

                
> FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException
> -------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-0.92.txt, 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException

Posted by "Hadoop QA (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13145262#comment-13145262 ] 

Hadoop QA commented on HBASE-4754:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12502723/4754.txt
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    -1 tests included.  The patch doesn't appear to include any new or modified tests.
                        Please justify why no new tests are needed for this patch.
                        Also please list what manual steps were performed to verify this patch.

    -1 javadoc.  The javadoc tool appears to have generated -164 warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to introduce 51 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.thrift2.TestThriftHBaseServiceHandler
                  org.apache.hadoop.hbase.coprocessor.TestRegionServerCoprocessorExceptionWithRemove

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/206//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/206//artifact/trunk/patchprocess/newPatchFindbugsWarnings.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/206//console

This message is automatically generated.
                
> FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Updated] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException

Posted by "Ted Yu (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Yu updated HBASE-4754:
--------------------------

    Status: Patch Available  (was: Open)
    
> FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>             Fix For: 0.92.0
>
>         Attachments: 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Updated] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException

Posted by "Ted Yu (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Yu updated HBASE-4754:
--------------------------

    Attachment: 4754-0.92.txt

Patch for 0.92 branch.
                
> FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException
> -------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-0.92.txt, 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Updated] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException

Posted by "Ted Yu (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Yu updated HBASE-4754:
--------------------------

             Priority: Blocker  (was: Major)
    Affects Version/s: 0.92.0
    
> FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException

Posted by "Hadoop QA (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13145366#comment-13145366 ] 

Hadoop QA commented on HBASE-4754:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12502746/4754-v2.txt
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    -1 tests included.  The patch doesn't appear to include any new or modified tests.
                        Please justify why no new tests are needed for this patch.
                        Also please list what manual steps were performed to verify this patch.

    -1 javadoc.  The javadoc tool appears to have generated -164 warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to introduce 51 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

     -1 core tests.  The patch failed these unit tests:
                       org.apache.hadoop.hbase.thrift2.TestThriftHBaseServiceHandler
                  org.apache.hadoop.hbase.regionserver.wal.TestLogRolling
                  org.apache.hadoop.hbase.coprocessor.TestRegionServerCoprocessorExceptionWithAbort

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/208//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/208//artifact/trunk/patchprocess/newPatchFindbugsWarnings.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/208//console

This message is automatically generated.
                
> FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException

Posted by "Hadoop QA (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13145837#comment-13145837 ] 

Hadoop QA commented on HBASE-4754:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12502794/4754-0.92.txt
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    -1 tests included.  The patch doesn't appear to include any new or modified tests.
                        Please justify why no new tests are needed for this patch.
                        Also please list what manual steps were performed to verify this patch.

    -1 patch.  The patch command could not apply the patch.

Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/211//console

This message is automatically generated.
                
> FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException
> -------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-0.92.txt, 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Updated] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException

Posted by "Ted Yu (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Yu updated HBASE-4754:
--------------------------

    Attachment: 4754.txt
    
> FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>             Fix For: 0.92.0
>
>         Attachments: 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Updated] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException

Posted by "Ted Yu (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Yu updated HBASE-4754:
--------------------------

    Status: Patch Available  (was: Open)
    
> FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Updated] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException

Posted by "Ted Yu (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Yu updated HBASE-4754:
--------------------------

    Status: Open  (was: Patch Available)
    
> FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException

Posted by "Hadoop QA (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13145871#comment-13145871 ] 

Hadoop QA commented on HBASE-4754:
----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12502794/4754-0.92.txt
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    -1 tests included.  The patch doesn't appear to include any new or modified tests.
                        Please justify why no new tests are needed for this patch.
                        Also please list what manual steps were performed to verify this patch.

    -1 javadoc.  The javadoc tool appears to have generated -164 warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    -1 findbugs.  The patch appears to introduce 51 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

    +1 core tests.  The patch passed unit tests in .

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/210//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/210//artifact/trunk/patchprocess/newPatchFindbugsWarnings.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/210//console

This message is automatically generated.
                
> FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException
> -------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-0.92.txt, 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException

Posted by "Ted Yu (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13145540#comment-13145540 ] 

Ted Yu commented on HBASE-4754:
-------------------------------

For TestLogRolling test failure:
{code}
java.io.IOException: Cannot lock storage /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/trunk/target/test-data/2e14f23c-e925-411f-a4b9-2b4b0ec6d5c9/dfscluster_1ea4b5a7-bd98-424f-9468-18e675b7e629/dfs/data/data3. The directory is already locked.
{code}

                
> FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException

Posted by "Ted Yu (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13145960#comment-13145960 ] 

Ted Yu commented on HBASE-4754:
-------------------------------

Will wait for validation result from Roman before closing this JIRA.
                
> FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException
> -------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-0.92.txt, 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Updated] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException

Posted by "Ted Yu (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Yu updated HBASE-4754:
--------------------------

      Resolution: Fixed
    Hadoop Flags: Reviewed
          Status: Resolved  (was: Patch Available)
    
> FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException
> -------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-0.92.txt, 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException

Posted by "ramkrishna.s.vasudevan (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13145650#comment-13145650 ] 

ramkrishna.s.vasudevan commented on HBASE-4754:
-----------------------------------------------

+1 Ted.
                
> FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException
> -------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Updated] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException

Posted by "Ted Yu (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Yu updated HBASE-4754:
--------------------------

    Summary: FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException  (was: FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException)
    
> FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException
> -------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException

Posted by "Ted Yu (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13145298#comment-13145298 ] 

Ted Yu commented on HBASE-4754:
-------------------------------

I will add a helper method for checking file existence. 
                
> FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Updated] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException

Posted by "Ted Yu (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Yu updated HBASE-4754:
--------------------------

    Attachment: 4754-v2.txt

Patch v2 creates FSUtils.listStatus()

This new method is used where return value is checked against null
                
> FSTableDescriptors.getTableInfoPath() should be able to handle FileNotFoundException
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException

Posted by "Hudson (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13146016#comment-13146016 ] 

Hudson commented on HBASE-4754:
-------------------------------

Integrated in HBase-TRUNK #2419 (See [https://builds.apache.org/job/HBase-TRUNK/2419/])
    HBASE-4754  FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException

tedyu : 
Files : 
* /hbase/trunk/CHANGES.txt
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/LogCleaner.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterFileSystem.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/FSTableDescriptors.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/FSUtils.java

                
> FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException
> -------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-0.92.txt, 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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

        

[jira] [Commented] (HBASE-4754) FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException

Posted by "stack (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13146077#comment-13146077 ] 

stack commented on HBASE-4754:
------------------------------

+1 on patch, thats good how you kept the change in one place over in FSUtils., and on getting it in so Roman can continue his testing.  This will do for now.  Later we can let go of this modified listStatus symantec.
                
> FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException
> -------------------------------------------------------------------------
>
>                 Key: HBASE-4754
>                 URL: https://issues.apache.org/jira/browse/HBASE-4754
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Blocker
>             Fix For: 0.92.0
>
>         Attachments: 4754-0.92.txt, 4754-v2.txt, 4754.txt
>
>
> As reported by Roman in the thread entitled 'HBase 0.92/Hadoop 0.22 test results', table creation would result in the following if hadoop 0.22 is the underlying platform:
> {code}
> 11/11/05 19:08:48 INFO handler.CreateTableHandler: Attemping to create
> the table b
> 11/11/05 19:08:48 ERROR handler.CreateTableHandler: Error trying to
> create the table b
> java.io.FileNotFoundException: File
> hdfs://ip-10-110-254-200.ec2.internal:17020/hbase/b does not exist.
>        at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:387)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1085)
>        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1110)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:257)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableInfoPath(FSTableDescriptors.java:243)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:566)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:535)
>        at org.apache.hadoop.hbase.util.FSTableDescriptors.createTableDescriptor(FSTableDescriptors.java:519)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.handleCreateTable(CreateTableHandler.java:140)
>        at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:126)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:168)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> {code}
> This was due to how DistributedFileSystem.listStatus() in 0.22 handles non-existent directory:
> {code}
>   @Override
>   public FileStatus[] listStatus(Path p) throws IOException {
>     String src = getPathName(p);
>     // fetch the first batch of entries in the directory
>     DirectoryListing thisListing = dfs.listPaths(
>         src, HdfsFileStatus.EMPTY_NAME);
>     if (thisListing == null) { // the directory does not exist
>       throw new FileNotFoundException("File " + p + " does not exist.");
>     }
> {code}
> So in FSTableDescriptors.getTableInfoPath(), we should catch FileNotFoundException and treat it the same way as status being null.

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