You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Robert Hofstra (JIRA)" <ji...@apache.org> on 2010/01/11 16:52:54 UTC

[jira] Created: (HBASE-2104) No exception thrown while during scanning no connection can be made to the regionserver

No exception thrown while during scanning no connection can be made to the regionserver
---------------------------------------------------------------------------------------

                 Key: HBASE-2104
                 URL: https://issues.apache.org/jira/browse/HBASE-2104
             Project: Hadoop HBase
          Issue Type: Bug
          Components: client
    Affects Versions: 0.20.1
            Reporter: Robert Hofstra


When a regionservers is stopped (shutdown or crash) and on the same moment a client performs a scan on that regionserver no exception is thrown at client side nor a reconnect toanother regionsserver is tried.
The ResultScanner.Iterator.hasNext ()just returns false, so the client assumes that there are no records anymore.


In the ScannerCallable.call I notice that the java.net.ConnectionException is catched and a empyt Result array is returned.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-2104) No exception thrown while during scanning no connection can be made to the regionserver

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

Lars George commented on HBASE-2104:
------------------------------------

Robert, see https://issues.apache.org/jira/browse/HBASE-2013 I have a unit test there that I think simulates your scenario. It creates a case where during a MR job a RegionServer is killed. You have a 50/50 chance that the regions are not redeployed before the job passes the missing region.

That is sort of a race condition and partially a design feature. But I have I guess similar concerns where I need to be able to rely on the MR to get all rows. I better have the job fail then silently skip rows.

> No exception thrown while during scanning no connection can be made to the regionserver
> ---------------------------------------------------------------------------------------
>
>                 Key: HBASE-2104
>                 URL: https://issues.apache.org/jira/browse/HBASE-2104
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 0.20.1
>            Reporter: Robert Hofstra
>
> When a regionservers is stopped (shutdown or crash) and on the same moment a client performs a scan on that regionserver no exception is thrown at client side nor a reconnect toanother regionsserver is tried.
> The ResultScanner.Iterator.hasNext ()just returns false, so the client assumes that there are no records anymore.
> In the ScannerCallable.call I notice that the java.net.ConnectionException is catched and a empyt Result array is returned.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-2104) No exception thrown while during scanning no connection can be made to the regionserver

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

Robert Hofstra commented on HBASE-2104:
---------------------------------------

Yes, I use an iterator, I made an integration test using the  a MiniHBaseCluster, which contains some specific business logic, so I skip some details

... insert values, no do a scan on it
ResultScanner scanner = table.getScanner(galleryTableScan);
// stop all region servers
FullMiniCluster.getMiniHBaseCluster().stopRegionServer(1);
FullMiniCluster.getMiniHBaseCluster().stopRegionServer(0);

try {
            for (Result result : scanner) {
               result.getValue( ...
            }
            Assert.fail("Expected an exception");
 } catch (Exception ex) {

}

This test fails, I'am going to add a test to this issue without the specific  business logic.


I've patch yesterday the code of the ScannerCallable, that  rethrows the exception if its not handled by the other exception handling code, it works for all our integrationtests but I don't  know if its generic enough for a serious patch.










> No exception thrown while during scanning no connection can be made to the regionserver
> ---------------------------------------------------------------------------------------
>
>                 Key: HBASE-2104
>                 URL: https://issues.apache.org/jira/browse/HBASE-2104
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 0.20.1
>            Reporter: Robert Hofstra
>
> When a regionservers is stopped (shutdown or crash) and on the same moment a client performs a scan on that regionserver no exception is thrown at client side nor a reconnect toanother regionsserver is tried.
> The ResultScanner.Iterator.hasNext ()just returns false, so the client assumes that there are no records anymore.
> In the ScannerCallable.call I notice that the java.net.ConnectionException is catched and a empyt Result array is returned.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-2104) No exception thrown while during scanning no connection can be made to the regionserver

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

Robert Hofstra commented on HBASE-2104:
---------------------------------------

Lars, can you explain me the design feature you mention?


> No exception thrown while during scanning no connection can be made to the regionserver
> ---------------------------------------------------------------------------------------
>
>                 Key: HBASE-2104
>                 URL: https://issues.apache.org/jira/browse/HBASE-2104
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 0.20.1
>            Reporter: Robert Hofstra
>
> When a regionservers is stopped (shutdown or crash) and on the same moment a client performs a scan on that regionserver no exception is thrown at client side nor a reconnect toanother regionsserver is tried.
> The ResultScanner.Iterator.hasNext ()just returns false, so the client assumes that there are no records anymore.
> In the ScannerCallable.call I notice that the java.net.ConnectionException is catched and a empyt Result array is returned.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-2104) No exception thrown while during scanning no connection can be made to the regionserver

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

stack commented on HBASE-2104:
------------------------------

@Robert Is part of the issue the fact that Iterator is being used?  Its hasNext and next methods do not throw Exceptions?  If you used the next methods that do throw exceptions, would that work?  Or rather, ScannerCallable should let out certain types of exceptions?  Any chance of a patch?  One that works for you?  That'd help us out.  Thanks.

> No exception thrown while during scanning no connection can be made to the regionserver
> ---------------------------------------------------------------------------------------
>
>                 Key: HBASE-2104
>                 URL: https://issues.apache.org/jira/browse/HBASE-2104
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 0.20.1
>            Reporter: Robert Hofstra
>
> When a regionservers is stopped (shutdown or crash) and on the same moment a client performs a scan on that regionserver no exception is thrown at client side nor a reconnect toanother regionsserver is tried.
> The ResultScanner.Iterator.hasNext ()just returns false, so the client assumes that there are no records anymore.
> In the ScannerCallable.call I notice that the java.net.ConnectionException is catched and a empyt Result array is returned.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-2104) No exception thrown while during scanning no connection can be made to the regionserver

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

Robert Hofstra commented on HBASE-2104:
---------------------------------------

In our case, we building a lucune search index with a hadoop from entries in hbase 
When a regionserver is stopped (because it's having problems) this index is smaller, because not all entries are included. 

What I expected, is a failed task in hadoop. Which result in a a new attempt to process the task, which could succeed, when another regionserver is serving the region.

> No exception thrown while during scanning no connection can be made to the regionserver
> ---------------------------------------------------------------------------------------
>
>                 Key: HBASE-2104
>                 URL: https://issues.apache.org/jira/browse/HBASE-2104
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 0.20.1
>            Reporter: Robert Hofstra
>
> When a regionservers is stopped (shutdown or crash) and on the same moment a client performs a scan on that regionserver no exception is thrown at client side nor a reconnect toanother regionsserver is tried.
> The ResultScanner.Iterator.hasNext ()just returns false, so the client assumes that there are no records anymore.
> In the ScannerCallable.call I notice that the java.net.ConnectionException is catched and a empyt Result array is returned.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.