You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by GitBox <gi...@apache.org> on 2021/07/30 13:13:00 UTC

[GitHub] [hbase] Apache9 commented on a change in pull request #3531: HBASE-26142 NullPointerException when set 'hbase.hregion.memstore.msl…

Apache9 commented on a change in pull request #3531:
URL: https://github.com/apache/hbase/pull/3531#discussion_r679911755



##########
File path: hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreChunkPool.java
##########
@@ -240,19 +243,24 @@ public void testPutbackChunksMultiThreaded() throws Exception {
     ChunkCreator.instance = newCreator;// Replace the global ref with the new one we created.
                                              // Used it for the testing. Later in finally we put
                                              // back the original
+    final Throwable[] exceptions = new Throwable[1];
     final KeyValue kv = new KeyValue(Bytes.toBytes("r"), Bytes.toBytes("f"), Bytes.toBytes("q"),
         new byte[valSize]);
     try {
       Runnable r = new Runnable() {
         @Override
         public void run() {
-          MemStoreLAB memStoreLAB = new MemStoreLABImpl(conf);
-          for (int i = 0; i < maxCount; i++) {
-            memStoreLAB.copyCellInto(kv);// Try allocate size = chunkSize. Means every
-                                         // allocate call will result in a new chunk
+          try {
+            MemStoreLAB memStoreLAB = new MemStoreLABImpl(conf);
+            for (int i = 0; i < maxCount; i++) {
+              memStoreLAB.copyCellInto(kv);// Try allocate size = chunkSize. Means every

Review comment:
       Just put the comment on top of this line?

##########
File path: hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ChunkCreator.java
##########
@@ -228,14 +236,15 @@ Chunk getChunk(CompactingMemStore.IndexType chunkIndexType, int size) {
    */
   Chunk getJumboChunk(int jumboSize) {
     int allocSize = jumboSize + SIZEOF_CHUNK_HEADER;
-    if (allocSize <= dataChunksPool.getChunkSize()) {
+
+    if (allocSize <= this.getChunkSize()) {

Review comment:
       Why change from dataChunksPool.getChunkSize to getChunkSize?

##########
File path: hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreChunkPool.java
##########
@@ -240,19 +243,24 @@ public void testPutbackChunksMultiThreaded() throws Exception {
     ChunkCreator.instance = newCreator;// Replace the global ref with the new one we created.
                                              // Used it for the testing. Later in finally we put
                                              // back the original
+    final Throwable[] exceptions = new Throwable[1];

Review comment:
       Using an AtomicReference.

##########
File path: hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreChunkPool.java
##########
@@ -264,9 +272,151 @@ public void run() {
       t1.join();
       t2.join();
       t3.join();
-      assertTrue(newCreator.getPoolSize() <= maxCount);
+      assertTrue(exceptions[0] == null);
+      assertTrue(newCreator.getPoolSize() <= maxCount && newCreator.getPoolSize() > 0);
     } finally {
       ChunkCreator.instance = oldCreator;
     }
   }
+
+  @Test
+  public void testNullPointerExceptionWhenIndexChunksPollIsNullBug26142() throws Exception {

Review comment:
       Better give this method another name, like testNoIndexsPool or others, and add comment to say this is the UT for HBASE-26142, about NPE.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@hbase.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org