hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17714) Client heartbeats seems to be broken
Date Wed, 01 Mar 2017 23:17:45 GMT

    [ https://issues.apache.org/jira/browse/HBASE-17714?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15891268#comment-15891268
] 

Andrew Purtell commented on HBASE-17714:
----------------------------------------

e5c1a80 (HBASE-15645 hbase.rpc.timeout is not used in operations of HTable) is the commit
that causes RenewLeaseIT to start failing. You have to apply HBASE-16420 (Fix source incompatibility
of Table interface) after checking out e5c1a80 to get something that 4.x-HBase-1.1 will compile
against.  

HBASE-15645 was shipped in 1.1.5, 1.2.2, and 1.3.0.  

What this change does is fix where the client was not actually honoring RPC timeouts prior
to the change. [~samarthjain] are you sure RenewLeaseIT actually renews the lease before the
RPC times out? The test sets a very short RPC timeout (2000ms)


> Client heartbeats seems to be broken
> ------------------------------------
>
>                 Key: HBASE-17714
>                 URL: https://issues.apache.org/jira/browse/HBASE-17714
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Samarth Jain
>
> We have a test in Phoenix where we introduce an artificial sleep of 2 times the RPC timeout
in preScannerNext() hook of a co-processor. 
> {code}
>  public static class SleepingRegionObserver extends SimpleRegionObserver {
>         public SleepingRegionObserver() {}
>         
>         @Override
>         public boolean preScannerNext(final ObserverContext<RegionCoprocessorEnvironment>
c,
>                 final InternalScanner s, final List<Result> results,
>                 final int limit, final boolean hasMore) throws IOException {
>             try {
>                 if (SLEEP_NOW && c.getEnvironment().getRegion().getRegionInfo().getTable().getNameAsString().equals(TABLE_NAME))
{
>                     Thread.sleep(RPC_TIMEOUT * 2);
>                 }
>             } catch (InterruptedException e) {
>                 throw new IOException(e);
>             }
>             return super.preScannerNext(c, s, results, limit, hasMore);
>         }
>     }
> {code}
> This test was passing fine till 1.1.3 but started failing sometime before 1.1.9 with
an OutOfOrderScannerException. See PHOENIX-3702. [~lhofhansl] mentioned that we have client
heartbeats enabled and that should prevent us from running into issues like this. FYI, this
test fails with 1.2.3 version of HBase too.
> CC [~apurtell], [~jamestaylor]



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message