You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Sean Busbey (Jira)" <ji...@apache.org> on 2020/07/07 21:11:00 UTC
[jira] [Commented] (HBASE-24686) [LOG] Log improvement in
Connection#close
[ https://issues.apache.org/jira/browse/HBASE-24686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17153100#comment-17153100 ]
Sean Busbey commented on HBASE-24686:
-------------------------------------
Better logging here especially including who called close would help us chase down a master failure case [~mchakka] has seen unsteadily in test lately for branch-2.2. Basically the master's primary connection gets closed but the master does not abort and then a bunch of stuff fails.
e.g. the master will log will show the normalizer failing
{code}
2020-07-03 09:57:42,005 ERROR org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore: Failed to normalize regions.
java.io.IOException: connection is closed
at org.apache.hadoop.hbase.MetaTableAccessor.getMetaHTable(MetaTableAccessor.java:241)
at org.apache.hadoop.hbase.MetaTableAccessor.scanMeta(MetaTableAccessor.java:797)
at org.apache.hadoop.hbase.MetaTableAccessor.scanMeta(MetaTableAccessor.java:768)
at org.apache.hadoop.hbase.MetaTableAccessor.scanMeta(MetaTableAccessor.java:727)
at org.apache.hadoop.hbase.MetaTableAccessor.fullScanTables(MetaTableAccessor.java:215)
at org.apache.hadoop.hbase.master.TableStateManager.getTablesInStates(TableStateManager.java:189)
at org.apache.hadoop.hbase.master.HMaster.normalizeRegions(HMaster.java:1815)
at org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore.chore(RegionNormalizerChore.java:48)
at org.apache.hadoop.hbase.ScheduledChore.run(ScheduledChore.java:188)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at org.apache.hadoop.hbase.JitterScheduledThreadPoolExecutorImpl$JitteredRunnableScheduledFuture.run(JitterScheduledThreadPoolExecutorImpl.java:111)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{code}
also if you try to use the shell or the java api to create tables that will fail at a similar point once the master needs to call {{MetaTableAccessor.getMetaHTable}}.
Right now the only indication of a connection closing is a line like this:
{code}
2020-07-03 09:52:38,751 INFO org.apache.hadoop.hbase.client.ConnectionImplementation: Closing master protocol: MasterService
{code}
a good starting point would be to update ConnectionImplementation with an INFO message that says when we are done closing everything and a DEBUG message at the start that includes the call stack.
> [LOG] Log improvement in Connection#close
> -----------------------------------------
>
> Key: HBASE-24686
> URL: https://issues.apache.org/jira/browse/HBASE-24686
> Project: HBase
> Issue Type: Improvement
> Components: Client, logging
> Affects Versions: 2.2.3
> Reporter: mokai
> Priority: Major
>
> We met some customers used hbase connection improperly, some threads call failed since the shared connection closed by one of the threads.
> It's better to print the details when connection closing.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)