[
https://issues.apache.org/jira/browse/HBASE-12369?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14187749#comment-14187749
]
stack commented on HBASE-12369:
-------------------------------
What you think we should do Esteban? Look at the jvm settings for
maxdirectmemorysize and in bucketcache, before we callocate, throw a fatal
error that has more explanation in it?
> Warn if hbase.bucketcache.size too close or equal to MaxDirectMemorySize
> ------------------------------------------------------------------------
>
> Key: HBASE-12369
> URL: https://issues.apache.org/jira/browse/HBASE-12369
> Project: HBase
> Issue Type: Bug
> Components: regionserver
> Reporter: Esteban Gutierrez
>
> Our ref guide currently says that its required to leave some room from the
> DirectMemory. However if hbase.bucketcache.size is too close or equal to
> MaxDirectMemorySize it can trigger OOMEs:
> {code}
> 2014-10-28 16:14:41,585 INFO [master//172.16.0.101:16020]
> util.ByteBufferArray: Allocating buffers total=5.00 GB, sizePerBuffer=4 MB,
> count=1280, direct=true
> 2014-10-28 16:14:41,604 INFO [172.16.0.101:16020.activeMasterManager]
> master.ServerManager: Waiting for region servers count to settle; currently
> checked in 1, slept for 99 ms, expecting minimum of 2, maximum of 2147483647,
> timeout of 4500 ms, interval of 1500 ms.
> 2014-10-28 16:14:43,144 INFO [172.16.0.101:16020.activeMasterManager]
> master.ServerManager: Waiting for region servers count to settle; currently
> checked in 1, slept for 1639 ms, expecting minimum of 2, maximum of
> 2147483647, timeout of 4500 ms, interval of 1500 ms.
> 2014-10-28 16:14:44,057 INFO [master//172.16.0.101:16020]
> regionserver.HRegionServer: STOPPED: Failed initialization
> 2014-10-28 16:14:44,058 ERROR [master//172.16.0.101:16020]
> regionserver.HRegionServer: Failed init
> java.lang.OutOfMemoryError: Direct buffer memory
> at java.nio.Bits.reserveMemory(Bits.java:658)
> at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123)
> at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:306)
> at
> org.apache.hadoop.hbase.util.ByteBufferArray.<init>(ByteBufferArray.java:65)
> at
> org.apache.hadoop.hbase.io.hfile.bucket.ByteBufferIOEngine.<init>(ByteBufferIOEngine.java:47)
> at
> org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.getIOEngineFromName(BucketCache.java:310)
> at
> org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.<init>(BucketCache.java:218)
> at
> org.apache.hadoop.hbase.io.hfile.CacheConfig.getL2(CacheConfig.java:513)
> at
> org.apache.hadoop.hbase.io.hfile.CacheConfig.instantiateBlockCache(CacheConfig.java:536)
> at
> org.apache.hadoop.hbase.io.hfile.CacheConfig.<init>(CacheConfig.java:213)
> at
> org.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:1259)
> at
> org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:818)
> at java.lang.Thread.run(Thread.java:724)
> {code}
> It would be helpful to print a warn message that hbase.bucketcache.size too
> close or equal to MaxDirectMemorySize.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)