hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jean-Daniel Cryans (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HBASE-1045) Hangup by regionserver causes write to fail
Date Fri, 19 Dec 2008 21:58:44 GMT

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

Jean-Daniel Cryans commented on HBASE-1045:

Currently the way the retries are handled with the batched updates is that it will get retried
infinitely with 1 second between each call to a HRS. This hack is there until we can refactor
the handling of getting/updating batches of rows, What happened to Andrew is that he got an
IOE after 100 and 200+ NSRE which are always retried until an IOE was thrown which, currently,
is not catch.

What we could do to get the situation better :

- Add a max number of retries and use the exponential backoff. This would worsen the hack
by duplicating the HCM stuff in HTable but we will refactor it for 0.20.

- Catch the IOE now that it won't get retried forever.

- If we are committing a batch of rows, we should do the retries with only 1 row so that we
don't OOME region servers.

This way, a single row commit would at least know what failed. 

And a nice to have to be to inform HMaster that something is wrong with a HRS.

> Hangup by regionserver causes write to fail
> -------------------------------------------
>                 Key: HBASE-1045
>                 URL: https://issues.apache.org/jira/browse/HBASE-1045
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: client
>            Reporter: Andrew Purtell
>             Fix For: 0.19.0
> Root cause is OOME on the region server. Nonetheless a hangup during IPC causes the client
to fail the write, currently causing data loss. Should the application catch and retry? Or
should the client libraries try harder?
> Dec 4, 2008 5:25:30 PM com.powerset.heritrix.writer.HBaseWriterProcessor innerProcessResult
> SEVERE: Failed write of Record: http://www.publicrecordslocal.com/georgia.htm (in thread
'ToeThread #9: http://www.publicrecordslocal.com/georgia.htm'; in processor 'Archiver')
> java.io.IOException: java.io.IOException: Call to / failed on local
exception: Connection refused
> 	at com.powerset.heritrix.writer.HBaseWriter.write(Unknown Source)
> 	at com.powerset.heritrix.writer.HBaseWriterProcessor.write(Unknown Source)
> 	at com.powerset.heritrix.writer.HBaseWriterProcessor.innerProcessResult(Unknown Source)
> 	at org.archive.modules.Processor.process(Processor.java:123)
> 	at org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:310)
> 	at org.archive.crawler.framework.ToeThread.run(ToeThread.java:157)
> Caused by: java.io.IOException: Call to / failed on local exception:
Connection refused
> 	at org.apache.hadoop.ipc.Client.call(Client.java:699)
> 	at org.apache.hadoop.hbase.ipc.HbaseRPC$Invoker.invoke(HbaseRPC.java:323)
> 	at $Proxy12.batchUpdates(Unknown Source)
> 	at org.apache.hadoop.hbase.client.HConnectionManager$TableServers$2.call(HConnectionManager.java:919)
> 	at org.apache.hadoop.hbase.client.HConnectionManager$TableServers$2.call(HConnectionManager.java:917)
> 	at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.getRegionServerForWithoutRetries(HConnectionManager.java:875)
> 	at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.processBatchOfRows(HConnectionManager.java:916)
> 	at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:1267)
> 	at org.apache.hadoop.hbase.client.HTable.commit(HTable.java:1238)
> 	at org.apache.hadoop.hbase.client.HTable.commit(HTable.java:1218)
> 	at net.iridiant.content.Content.storeURLInfo(Unknown Source)
> 	... 6 more
> Caused by: java.net.ConnectException: Connection refused
> 	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
> 	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574)
> 	at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:100)
> 	at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:299)
> 	at org.apache.hadoop.ipc.Client$Connection.access$1700(Client.java:176)
> 	at org.apache.hadoop.ipc.Client.getConnection(Client.java:772)
> 	at org.apache.hadoop.ipc.Client.call(Client.java:685)
> 	... 16 more

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

View raw message