[jira] [Updated] (HBASE-23962) Wrong combination of hlog reader and writer could crash regionserver

2020-05-14 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23962?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23962:
--
Component/s: (was: conf)
 regionserver

> Wrong combination of hlog reader and writer could crash regionserver
> 
>
> Key: HBASE-23962
> URL: https://issues.apache.org/jira/browse/HBASE-23962
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-23962-001.patch
>
>
> *Problem*
> I found out that there two configuration parameters: 
> `hbase.regionserver.hlog.reader.impl` and 
> `hbase.regionserver.hlog.writer.impl` which should be used as a pair.
> There are two options for the reader: `ProtobufLogReader` and 
> `SecureProtobufLogReader`.
> And four options for the writer: `ProtobufLogWriter`, 
> `SecureProtobufLogWriter`, `AsyncProtobufLogWriter` and 
> `SecureAsyncProtobufLogWriter`.
> Using the wrong combination of the reader and the writer will throw an 
> exception. For example, if setting the writer to SecureProtobufLogWriter and 
> setting the reader to ProtobufLogReader(default value), an exception will be 
> thrown:
> {code:java}
> java.io.IOException: Got unknown writer class: SecureProtobufLogWriter
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initInternal(ProtobufLogReader.java:224)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initReader(ProtobufLogReader.java:173)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:65)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:168)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:321)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:303)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:291)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.deleteOneWithFewerEntries(LogRecoveredEditsOutputSink.java:109)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.closeWriter(LogRecoveredEditsOutputSink.java:240)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:196)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:192)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 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}
> The current description of these two parameters (in the `hbase-default.xml`) 
> doesn’t tell the users anything about which combination is right or not.
>  
> *Improvement*
> We can add some more information in the description of these two parameters 
> in `hbase-default.xml` to tell the users about the correct combinations.
> I upload a patch for improving the description.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23962) Wrong combination of hlog reader and writer could crash regionserver

2020-05-14 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23962?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23962:
--
Issue Type: Bug  (was: Improvement)

> Wrong combination of hlog reader and writer could crash regionserver
> 
>
> Key: HBASE-23962
> URL: https://issues.apache.org/jira/browse/HBASE-23962
> Project: HBase
>  Issue Type: Bug
>  Components: conf
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-23962-001.patch
>
>
> *Problem*
> I found out that there two configuration parameters: 
> `hbase.regionserver.hlog.reader.impl` and 
> `hbase.regionserver.hlog.writer.impl` which should be used as a pair.
> There are two options for the reader: `ProtobufLogReader` and 
> `SecureProtobufLogReader`.
> And four options for the writer: `ProtobufLogWriter`, 
> `SecureProtobufLogWriter`, `AsyncProtobufLogWriter` and 
> `SecureAsyncProtobufLogWriter`.
> Using the wrong combination of the reader and the writer will throw an 
> exception. For example, if setting the writer to SecureProtobufLogWriter and 
> setting the reader to ProtobufLogReader(default value), an exception will be 
> thrown:
> {code:java}
> java.io.IOException: Got unknown writer class: SecureProtobufLogWriter
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initInternal(ProtobufLogReader.java:224)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initReader(ProtobufLogReader.java:173)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:65)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:168)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:321)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:303)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:291)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.deleteOneWithFewerEntries(LogRecoveredEditsOutputSink.java:109)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.closeWriter(LogRecoveredEditsOutputSink.java:240)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:196)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:192)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 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}
> The current description of these two parameters (in the `hbase-default.xml`) 
> doesn’t tell the users anything about which combination is right or not.
>  
> *Improvement*
> We can add some more information in the description of these two parameters 
> in `hbase-default.xml` to tell the users about the correct combinations.
> I upload a patch for improving the description.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23962) Wrong combination of hlog reader and writer could crash regionserver

2020-05-14 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23962?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23962:
--
Summary: Wrong combination of hlog reader and writer could crash 
regionserver  (was: Improving the documentation for 
`hbase.regionserver.hlog.{reader, writer}.impl`)

> Wrong combination of hlog reader and writer could crash regionserver
> 
>
> Key: HBASE-23962
> URL: https://issues.apache.org/jira/browse/HBASE-23962
> Project: HBase
>  Issue Type: Improvement
>  Components: conf
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-23962-001.patch
>
>
> *Problem*
> I found out that there two configuration parameters: 
> `hbase.regionserver.hlog.reader.impl` and 
> `hbase.regionserver.hlog.writer.impl` which should be used as a pair.
> There are two options for the reader: `ProtobufLogReader` and 
> `SecureProtobufLogReader`.
> And four options for the writer: `ProtobufLogWriter`, 
> `SecureProtobufLogWriter`, `AsyncProtobufLogWriter` and 
> `SecureAsyncProtobufLogWriter`.
> Using the wrong combination of the reader and the writer will throw an 
> exception. For example, if setting the writer to SecureProtobufLogWriter and 
> setting the reader to ProtobufLogReader(default value), an exception will be 
> thrown:
> {code:java}
> java.io.IOException: Got unknown writer class: SecureProtobufLogWriter
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initInternal(ProtobufLogReader.java:224)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initReader(ProtobufLogReader.java:173)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:65)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:168)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:321)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:303)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:291)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.deleteOneWithFewerEntries(LogRecoveredEditsOutputSink.java:109)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.closeWriter(LogRecoveredEditsOutputSink.java:240)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:196)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:192)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 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}
> The current description of these two parameters (in the `hbase-default.xml`) 
> doesn’t tell the users anything about which combination is right or not.
>  
> *Improvement*
> We can add some more information in the description of these two parameters 
> in `hbase-default.xml` to tell the users about the correct combinations.
> I upload a patch for improving the description.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-24207) Wrong input argument order in TestCompactorMemLeak#assertMajorCompactionOK

2020-04-18 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-24207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-24207:
--
Summary: Wrong input argument order in 
TestCompactorMemLeak#assertMajorCompactionOK  (was: Wrong argument input order 
in TestCompactorMemLeak#assertMajorCompactionOK)

> Wrong input argument order in TestCompactorMemLeak#assertMajorCompactionOK
> --
>
> Key: HBASE-24207
> URL: https://issues.apache.org/jira/browse/HBASE-24207
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction, regionserver, test
>Affects Versions: 2.2.4
>Reporter: Ctest
>Priority: Minor
>  Labels: compaction, regionserver, test
> Attachments: HBASE-24207.000.patch
>
>
> In TestCompactorMemLeak#assertMajorCompactionOK, the input argument order for 
> Assert.assertEquals(long expected, long actual) is wrong. This produced 
> confusion when the test failed.
>  
> Below is the original code:
> {code:java}
> Assert.assertEquals(regions.size(), 1);
> HRegion region = regions.get(0);
> Assert.assertEquals(region.getStores().size(), 1);
> HStore store = region.getStore(FAMILY);
> Assert.assertEquals(store.getStorefilesCount(), 1);
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-24207) Wrong argument input order in TestCompactorMemLeak#assertMajorCompactionOK

2020-04-17 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-24207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-24207:
--
Attachment: HBASE-24207.000.patch
Status: Patch Available  (was: Open)

> Wrong argument input order in TestCompactorMemLeak#assertMajorCompactionOK
> --
>
> Key: HBASE-24207
> URL: https://issues.apache.org/jira/browse/HBASE-24207
> Project: HBase
>  Issue Type: Bug
>  Components: Compaction, regionserver, test
>Affects Versions: 2.2.4
>Reporter: Ctest
>Priority: Minor
>  Labels: compaction, regionserver, test
> Attachments: HBASE-24207.000.patch
>
>
> In TestCompactorMemLeak#assertMajorCompactionOK, the input argument order for 
> Assert.assertEquals(long expected, long actual) is wrong. This produced 
> confusion when the test failed.
>  
> Below is the original code:
> {code:java}
> Assert.assertEquals(regions.size(), 1);
> HRegion region = regions.get(0);
> Assert.assertEquals(region.getStores().size(), 1);
> HStore store = region.getStore(FAMILY);
> Assert.assertEquals(store.getStorefilesCount(), 1);
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-24207) Wrong argument input order in TestCompactorMemLeak#assertMajorCompactionOK

2020-04-17 Thread Ctest (Jira)
Ctest created HBASE-24207:
-

 Summary: Wrong argument input order in 
TestCompactorMemLeak#assertMajorCompactionOK
 Key: HBASE-24207
 URL: https://issues.apache.org/jira/browse/HBASE-24207
 Project: HBase
  Issue Type: Bug
  Components: Compaction, regionserver, test
Affects Versions: 2.2.4
Reporter: Ctest


In TestCompactorMemLeak#assertMajorCompactionOK, the input argument order for 

Assert.assertEquals(long expected, long actual) is wrong. This produced 
confusion when the test failed.

 

Below is the original code:


{code:java}
Assert.assertEquals(regions.size(), 1);
HRegion region = regions.get(0);
Assert.assertEquals(region.getStores().size(), 1);
HStore store = region.getStore(FAMILY);
Assert.assertEquals(store.getStorefilesCount(), 1);
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (HBASE-23702) `hbase.hstore.flusher.count` setting to 0 breaks HMaster

2020-03-11 Thread Ctest (Jira)


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

Ctest commented on HBASE-23702:
---

[~zghao]

I think "at least one handler" is a good solution. I have uploaded a new patch.

I think it could be better to provide some log information to let users know 
about the auto-correction behaviour. Or adding information in parameter 
description could also help user to better understand the situation.

Do you have any suggestion? I am glad to provide the patch. 

> `hbase.hstore.flusher.count` setting to 0 breaks HMaster
> 
>
> Key: HBASE-23702
> URL: https://issues.apache.org/jira/browse/HBASE-23702
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.2.3
> Environment: HBase-2.2.3 
> Java openjdk 1.8.0_222 
> Ubuntu 18.04
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-23702-000.patch, HBASE-23702-000.patch, 
> HBASE-23702-000.patch, HBASE-23702-000.patch, HBASE-23702-001.patch
>
>
> Summary 
> The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
> turns out to be a bad value after I understand the source code).
> When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 
> ms without any error message, but
> ```
>  java.lang.RuntimeException: Master not initialized after 20ms
> ```
>  
> There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
> cause.
>  
> 0 means `MemStoreFlusher` is not alive. During the initialization time of 
> HMaster, `isHealthy()` will be called and it will try to check if 
> `MemStoreFlusher` is alive or not.  However, since we set 
> `hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
> first place, which cause`isHealthy()` to return false. As a consequence, 
> HRegionServer does not enter its main loop.
>  
> *How To Reproduce* 
>  
> The version of HBase: 2.2.3
>  
>  # Set the value of configuration parameter `hbase.hstore.flusher.count` to 
> `0` in “conf/hbase-site.xml”
>  # Start hbase by running “bin/start-hbase.sh”
>  # Wait for 3-4 minutes
>  # Open the log file “logs/hbase-- master -.log”



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23702) `hbase.hstore.flusher.count` setting to 0 breaks HMaster

2020-03-11 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23702:
--
Attachment: HBASE-23702-001.patch

> `hbase.hstore.flusher.count` setting to 0 breaks HMaster
> 
>
> Key: HBASE-23702
> URL: https://issues.apache.org/jira/browse/HBASE-23702
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.2.3
> Environment: HBase-2.2.3 
> Java openjdk 1.8.0_222 
> Ubuntu 18.04
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-23702-000.patch, HBASE-23702-000.patch, 
> HBASE-23702-000.patch, HBASE-23702-000.patch, HBASE-23702-001.patch
>
>
> Summary 
> The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
> turns out to be a bad value after I understand the source code).
> When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 
> ms without any error message, but
> ```
>  java.lang.RuntimeException: Master not initialized after 20ms
> ```
>  
> There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
> cause.
>  
> 0 means `MemStoreFlusher` is not alive. During the initialization time of 
> HMaster, `isHealthy()` will be called and it will try to check if 
> `MemStoreFlusher` is alive or not.  However, since we set 
> `hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
> first place, which cause`isHealthy()` to return false. As a consequence, 
> HRegionServer does not enter its main loop.
>  
> *How To Reproduce* 
>  
> The version of HBase: 2.2.3
>  
>  # Set the value of configuration parameter `hbase.hstore.flusher.count` to 
> `0` in “conf/hbase-site.xml”
>  # Start hbase by running “bin/start-hbase.sh”
>  # Wait for 3-4 minutes
>  # Open the log file “logs/hbase-- master -.log”



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23962) Improving the documentation for `hbase.regionserver.hlog.{reader, writer}.impl`

2020-03-10 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23962?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23962:
--
Summary: Improving the documentation for `hbase.regionserver.hlog.{reader, 
writer}.impl`  (was: Improving the documentation for 
hbase.regionserver.hlog.{reader, writer}.impl)

> Improving the documentation for `hbase.regionserver.hlog.{reader, 
> writer}.impl`
> ---
>
> Key: HBASE-23962
> URL: https://issues.apache.org/jira/browse/HBASE-23962
> Project: HBase
>  Issue Type: Improvement
>  Components: conf
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-23962-001.patch
>
>
> *Problem*
> I found out that there two configuration parameters: 
> `hbase.regionserver.hlog.reader.impl` and 
> `hbase.regionserver.hlog.writer.impl` which should be used as a pair.
> There are two options for the reader: `ProtobufLogReader` and 
> `SecureProtobufLogReader`.
> And four options for the writer: `ProtobufLogWriter`, 
> `SecureProtobufLogWriter`, `AsyncProtobufLogWriter` and 
> `SecureAsyncProtobufLogWriter`.
> Using the wrong combination of the reader and the writer will throw an 
> exception. For example, if setting the writer to SecureProtobufLogWriter and 
> setting the reader to ProtobufLogReader(default value), an exception will be 
> thrown:
> {code:java}
> java.io.IOException: Got unknown writer class: SecureProtobufLogWriter
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initInternal(ProtobufLogReader.java:224)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initReader(ProtobufLogReader.java:173)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:65)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:168)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:321)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:303)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:291)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.deleteOneWithFewerEntries(LogRecoveredEditsOutputSink.java:109)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.closeWriter(LogRecoveredEditsOutputSink.java:240)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:196)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:192)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 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}
> The current description of these two parameters (in the `hbase-default.xml`) 
> doesn’t tell the users anything about which combination is right or not.
>  
> *Improvement*
> We can add some more information in the description of these two parameters 
> in `hbase-default.xml` to tell the users about the correct combinations.
> I upload a patch for improving the description.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23962) Improving the documentation for hbase.regionserver.hlog.{reader, writer}.impl

2020-03-10 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23962?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23962:
--
Attachment: HBASE-23962-001.patch
Status: Patch Available  (was: Open)

> Improving the documentation for hbase.regionserver.hlog.{reader, writer}.impl
> -
>
> Key: HBASE-23962
> URL: https://issues.apache.org/jira/browse/HBASE-23962
> Project: HBase
>  Issue Type: Improvement
>  Components: conf
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-23962-001.patch
>
>
> *Problem*
> I found out that there two configuration parameters: 
> `hbase.regionserver.hlog.reader.impl` and 
> `hbase.regionserver.hlog.writer.impl` which should be used as a pair.
> There are two options for the reader: `ProtobufLogReader` and 
> `SecureProtobufLogReader`.
> And four options for the writer: `ProtobufLogWriter`, 
> `SecureProtobufLogWriter`, `AsyncProtobufLogWriter` and 
> `SecureAsyncProtobufLogWriter`.
> Using the wrong combination of the reader and the writer will throw an 
> exception. For example, if setting the writer to SecureProtobufLogWriter and 
> setting the reader to ProtobufLogReader(default value), an exception will be 
> thrown:
> {code:java}
> java.io.IOException: Got unknown writer class: SecureProtobufLogWriter
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initInternal(ProtobufLogReader.java:224)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initReader(ProtobufLogReader.java:173)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:65)
> at 
> org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:168)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:321)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:303)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:291)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.deleteOneWithFewerEntries(LogRecoveredEditsOutputSink.java:109)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.closeWriter(LogRecoveredEditsOutputSink.java:240)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:196)
> at 
> org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:192)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 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}
> The current description of these two parameters (in the `hbase-default.xml`) 
> doesn’t tell the users anything about which combination is right or not.
>  
> *Improvement*
> We can add some more information in the description of these two parameters 
> in `hbase-default.xml` to tell the users about the correct combinations.
> I upload a patch for improving the description.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23962) Improving the documentation for hbase.regionserver.hlog.{reader, writer}.impl

2020-03-10 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23962?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23962:
--
Description: 
*Problem*

I found out that there two configuration parameters: 
`hbase.regionserver.hlog.reader.impl` and `hbase.regionserver.hlog.writer.impl` 
which should be used as a pair.

There are two options for the reader: `ProtobufLogReader` and 
`SecureProtobufLogReader`.

And four options for the writer: `ProtobufLogWriter`, 
`SecureProtobufLogWriter`, `AsyncProtobufLogWriter` and 
`SecureAsyncProtobufLogWriter`.

Using the wrong combination of the reader and the writer will throw an 
exception. For example, if setting the writer to SecureProtobufLogWriter and 
setting the reader to ProtobufLogReader(default value), an exception will be 
thrown:
{code:java}
java.io.IOException: Got unknown writer class: SecureProtobufLogWriter
at 
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initInternal(ProtobufLogReader.java:224)
at 
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initReader(ProtobufLogReader.java:173)
at 
org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:65)
at 
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:168)
at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:321)
at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:303)
at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:291)
at 
org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.deleteOneWithFewerEntries(LogRecoveredEditsOutputSink.java:109)
at 
org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.closeWriter(LogRecoveredEditsOutputSink.java:240)
at 
org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:196)
at 
org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:192)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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}
The current description of these two parameters (in the `hbase-default.xml`) 
doesn’t tell the users anything about which combination is right or not.

 

*Improvement*

We can add some more information in the description of these two parameters in 
`hbase-default.xml` to tell the users about the correct combinations.

I upload a patch for improving the description.

  was:
*Problem*

I found out that there two configuration parameters: 
`hbase.regionserver.hlog.reader.impl` and `hbase.regionserver.hlog.writer.impl` 
which should be used as a pair.

There are two options for the reader: `ProtobufLogReader` and 
`SecureProtobufLogReader`.

And four options for the writer: `ProtobufLogWriter`, 
`SecureProtobufLogWriter`, `AsyncProtobufLogWriter` and 
`SecureAsyncProtobufLogWriter`.

Using the wrong combination of the reader and the writer will throw an 
exception. For example if setting the writer to SecureProtobufLogWriter and 
setting the reader to ProtobufLogReader(default value), an exception will be 
thrown:
{code:java}
java.io.IOException: Got unknown writer class: 
SecureProtobufLogWriterjava.io.IOException: Got unknown writer class: 
SecureProtobufLogWriter
 at 
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initInternal(ProtobufLogReader.java:224)
 at 
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initReader(ProtobufLogReader.java:173)
 at 
org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:65) at 
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:168)
 at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:321) at 
org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:303) at 
org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:291) at 
org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.deleteOneWithFewerEntries(LogRecoveredEditsOutputSink.java:109)
 at 
org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.closeWriter(LogRecoveredEditsOutputSink.java:240)
 at 
org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:196)
 at 
org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:192)
 at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at 
java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 

[jira] [Created] (HBASE-23962) Improving the documentation for hbase.regionserver.hlog.{reader, writer}.impl

2020-03-10 Thread Ctest (Jira)
Ctest created HBASE-23962:
-

 Summary: Improving the documentation for 
hbase.regionserver.hlog.{reader, writer}.impl
 Key: HBASE-23962
 URL: https://issues.apache.org/jira/browse/HBASE-23962
 Project: HBase
  Issue Type: Improvement
  Components: conf
Reporter: Ctest


*Problem*

I found out that there two configuration parameters: 
`hbase.regionserver.hlog.reader.impl` and `hbase.regionserver.hlog.writer.impl` 
which should be used as a pair.

There are two options for the reader: `ProtobufLogReader` and 
`SecureProtobufLogReader`.

And four options for the writer: `ProtobufLogWriter`, 
`SecureProtobufLogWriter`, `AsyncProtobufLogWriter` and 
`SecureAsyncProtobufLogWriter`.

Using the wrong combination of the reader and the writer will throw an 
exception. For example if setting the writer to SecureProtobufLogWriter and 
setting the reader to ProtobufLogReader(default value), an exception will be 
thrown:
{code:java}
java.io.IOException: Got unknown writer class: 
SecureProtobufLogWriterjava.io.IOException: Got unknown writer class: 
SecureProtobufLogWriter
 at 
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initInternal(ProtobufLogReader.java:224)
 at 
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initReader(ProtobufLogReader.java:173)
 at 
org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:65) at 
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:168)
 at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:321) at 
org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:303) at 
org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:291) at 
org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.deleteOneWithFewerEntries(LogRecoveredEditsOutputSink.java:109)
 at 
org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink.closeWriter(LogRecoveredEditsOutputSink.java:240)
 at 
org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:196)
 at 
org.apache.hadoop.hbase.wal.LogRecoveredEditsOutputSink$2.call(LogRecoveredEditsOutputSink.java:192)
 at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at 
java.util.concurrent.FutureTask.run(FutureTask.java:266) 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}




The current description of these two parameters (in the `hbase-default.xml`) 
doesn’t tell the users anything about which combination is right or not.

 

*Improvement*

We can add some more information in the description of these two parameters in 
`hbase-default.xml` to tell the users about the correct combinations.

I upload a patch for improving the description.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23702) `hbase.hstore.flusher.count` setting to 0 breaks HMaster

2020-02-19 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23702:
--
Attachment: HBASE-23702-000.patch

> `hbase.hstore.flusher.count` setting to 0 breaks HMaster
> 
>
> Key: HBASE-23702
> URL: https://issues.apache.org/jira/browse/HBASE-23702
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.2.3
> Environment: HBase-2.2.3 
> Java openjdk 1.8.0_222 
> Ubuntu 18.04
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-23702-000.patch, HBASE-23702-000.patch, 
> HBASE-23702-000.patch, HBASE-23702-000.patch
>
>
> Summary 
> The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
> turns out to be a bad value after I understand the source code).
> When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 
> ms without any error message, but
> ```
>  java.lang.RuntimeException: Master not initialized after 20ms
> ```
>  
> There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
> cause.
>  
> 0 means `MemStoreFlusher` is not alive. During the initialization time of 
> HMaster, `isHealthy()` will be called and it will try to check if 
> `MemStoreFlusher` is alive or not.  However, since we set 
> `hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
> first place, which cause`isHealthy()` to return false. As a consequence, 
> HRegionServer does not enter its main loop.
>  
> *How To Reproduce* 
>  
> The version of HBase: 2.2.3
>  
>  # Set the value of configuration parameter `hbase.hstore.flusher.count` to 
> `0` in “conf/hbase-site.xml”
>  # Start hbase by running “bin/start-hbase.sh”
>  # Wait for 3-4 minutes
>  # Open the log file “logs/hbase-- master -.log”



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23702) `hbase.hstore.flusher.count` setting to 0 breaks HMaster

2020-02-17 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23702:
--
Attachment: HBASE-23702-000.patch

> `hbase.hstore.flusher.count` setting to 0 breaks HMaster
> 
>
> Key: HBASE-23702
> URL: https://issues.apache.org/jira/browse/HBASE-23702
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.2.3
> Environment: HBase-2.2.3 
> Java openjdk 1.8.0_222 
> Ubuntu 18.04
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-23702-000.patch, HBASE-23702-000.patch, 
> HBASE-23702-000.patch
>
>
> Summary 
> The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
> turns out to be a bad value after I understand the source code).
> When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 
> ms without any error message, but
> ```
>  java.lang.RuntimeException: Master not initialized after 20ms
> ```
>  
> There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
> cause.
>  
> 0 means `MemStoreFlusher` is not alive. During the initialization time of 
> HMaster, `isHealthy()` will be called and it will try to check if 
> `MemStoreFlusher` is alive or not.  However, since we set 
> `hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
> first place, which cause`isHealthy()` to return false. As a consequence, 
> HRegionServer does not enter its main loop.
>  
> *How To Reproduce* 
>  
> The version of HBase: 2.2.3
>  
>  # Set the value of configuration parameter `hbase.hstore.flusher.count` to 
> `0` in “conf/hbase-site.xml”
>  # Start hbase by running “bin/start-hbase.sh”
>  # Wait for 3-4 minutes
>  # Open the log file “logs/hbase-- master -.log”



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23702) `hbase.hstore.flusher.count` setting to 0 breaks HMaster

2020-02-16 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23702:
--
Attachment: (was: hbase-src-patch.txt)

> `hbase.hstore.flusher.count` setting to 0 breaks HMaster
> 
>
> Key: HBASE-23702
> URL: https://issues.apache.org/jira/browse/HBASE-23702
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.2.3
> Environment: HBase-2.2.3 
> Java openjdk 1.8.0_222 
> Ubuntu 18.04
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-23702-000.patch, HBASE-23702-000.patch
>
>
> Summary 
> The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
> turns out to be a bad value after I understand the source code).
> When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 
> ms without any error message, but
> ```
>  java.lang.RuntimeException: Master not initialized after 20ms
> ```
>  
> There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
> cause.
>  
> 0 means `MemStoreFlusher` is not alive. During the initialization time of 
> HMaster, `isHealthy()` will be called and it will try to check if 
> `MemStoreFlusher` is alive or not.  However, since we set 
> `hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
> first place, which cause`isHealthy()` to return false. As a consequence, 
> HRegionServer does not enter its main loop.
>  
> *How To Reproduce* 
>  
> The version of HBase: 2.2.3
>  
>  # Set the value of configuration parameter `hbase.hstore.flusher.count` to 
> `0` in “conf/hbase-site.xml”
>  # Start hbase by running “bin/start-hbase.sh”
>  # Wait for 3-4 minutes
>  # Open the log file “logs/hbase-- master -.log”



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23702) `hbase.hstore.flusher.count` setting to 0 breaks HMaster

2020-02-16 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23702:
--
Attachment: HBASE-23702-000.patch

> `hbase.hstore.flusher.count` setting to 0 breaks HMaster
> 
>
> Key: HBASE-23702
> URL: https://issues.apache.org/jira/browse/HBASE-23702
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.2.3
> Environment: HBase-2.2.3 
> Java openjdk 1.8.0_222 
> Ubuntu 18.04
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-23702-000.patch, HBASE-23702-000.patch
>
>
> Summary 
> The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
> turns out to be a bad value after I understand the source code).
> When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 
> ms without any error message, but
> ```
>  java.lang.RuntimeException: Master not initialized after 20ms
> ```
>  
> There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
> cause.
>  
> 0 means `MemStoreFlusher` is not alive. During the initialization time of 
> HMaster, `isHealthy()` will be called and it will try to check if 
> `MemStoreFlusher` is alive or not.  However, since we set 
> `hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
> first place, which cause`isHealthy()` to return false. As a consequence, 
> HRegionServer does not enter its main loop.
>  
> *How To Reproduce* 
>  
> The version of HBase: 2.2.3
>  
>  # Set the value of configuration parameter `hbase.hstore.flusher.count` to 
> `0` in “conf/hbase-site.xml”
>  # Start hbase by running “bin/start-hbase.sh”
>  # Wait for 3-4 minutes
>  # Open the log file “logs/hbase-- master -.log”



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23702) `hbase.hstore.flusher.count` setting to 0 breaks HMaster

2020-02-16 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23702:
--
Attachment: (was: HBASE-ISSUEID-000.patch.txt)

> `hbase.hstore.flusher.count` setting to 0 breaks HMaster
> 
>
> Key: HBASE-23702
> URL: https://issues.apache.org/jira/browse/HBASE-23702
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.2.3
> Environment: HBase-2.2.3 
> Java openjdk 1.8.0_222 
> Ubuntu 18.04
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-23702-000.patch, HBASE-23702-000.patch
>
>
> Summary 
> The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
> turns out to be a bad value after I understand the source code).
> When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 
> ms without any error message, but
> ```
>  java.lang.RuntimeException: Master not initialized after 20ms
> ```
>  
> There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
> cause.
>  
> 0 means `MemStoreFlusher` is not alive. During the initialization time of 
> HMaster, `isHealthy()` will be called and it will try to check if 
> `MemStoreFlusher` is alive or not.  However, since we set 
> `hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
> first place, which cause`isHealthy()` to return false. As a consequence, 
> HRegionServer does not enter its main loop.
>  
> *How To Reproduce* 
>  
> The version of HBase: 2.2.3
>  
>  # Set the value of configuration parameter `hbase.hstore.flusher.count` to 
> `0` in “conf/hbase-site.xml”
>  # Start hbase by running “bin/start-hbase.sh”
>  # Wait for 3-4 minutes
>  # Open the log file “logs/hbase-- master -.log”



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23702) `hbase.hstore.flusher.count` setting to 0 breaks HMaster

2020-01-17 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23702:
--
Attachment: HBASE-23702-000.patch

> `hbase.hstore.flusher.count` setting to 0 breaks HMaster
> 
>
> Key: HBASE-23702
> URL: https://issues.apache.org/jira/browse/HBASE-23702
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.2.3
> Environment: HBase-2.2.3 
> Java openjdk 1.8.0_222 
> Ubuntu 18.04
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-23702-000.patch, HBASE-ISSUEID-000.patch.txt, 
> hbase-src-patch.txt
>
>
> Summary 
> The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
> turns out to be a bad value after I understand the source code).
> When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 
> ms without any error message, but
> ```
>  java.lang.RuntimeException: Master not initialized after 20ms
> ```
>  
> There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
> cause.
>  
> 0 means `MemStoreFlusher` is not alive. During the initialization time of 
> HMaster, `isHealthy()` will be called and it will try to check if 
> `MemStoreFlusher` is alive or not.  However, since we set 
> `hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
> first place, which cause`isHealthy()` to return false. As a consequence, 
> HRegionServer does not enter its main loop.
>  
> *How To Reproduce* 
>  
> The version of HBase: 2.2.3
>  
>  # Set the value of configuration parameter `hbase.hstore.flusher.count` to 
> `0` in “conf/hbase-site.xml”
>  # Start hbase by running “bin/start-hbase.sh”
>  # Wait for 3-4 minutes
>  # Open the log file “logs/hbase-- master -.log”



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23702) `hbase.hstore.flusher.count` setting to 0 breaks HMaster

2020-01-17 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23702:
--
Attachment: HBASE-ISSUEID-000.patch.txt

> `hbase.hstore.flusher.count` setting to 0 breaks HMaster
> 
>
> Key: HBASE-23702
> URL: https://issues.apache.org/jira/browse/HBASE-23702
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.2.3
> Environment: HBase-2.2.3 
> Java openjdk 1.8.0_222 
> Ubuntu 18.04
>Reporter: Ctest
>Priority: Major
> Attachments: HBASE-ISSUEID-000.patch.txt, hbase-src-patch.txt
>
>
> Summary 
> The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
> turns out to be a bad value after I understand the source code).
> When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 
> ms without any error message, but
> ```
>  java.lang.RuntimeException: Master not initialized after 20ms
> ```
>  
> There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
> cause.
>  
> 0 means `MemStoreFlusher` is not alive. During the initialization time of 
> HMaster, `isHealthy()` will be called and it will try to check if 
> `MemStoreFlusher` is alive or not.  However, since we set 
> `hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
> first place, which cause`isHealthy()` to return false. As a consequence, 
> HRegionServer does not enter its main loop.
>  
> *How To Reproduce* 
>  
> The version of HBase: 2.2.3
>  
>  # Set the value of configuration parameter `hbase.hstore.flusher.count` to 
> `0` in “conf/hbase-site.xml”
>  # Start hbase by running “bin/start-hbase.sh”
>  # Wait for 3-4 minutes
>  # Open the log file “logs/hbase-- master -.log”



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23702) `hbase.hstore.flusher.count` setting to 0 breaks HMaster

2020-01-16 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23702:
--
Description: 
Summary 

The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
turns out to be a bad value after I understand the source code).

When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 ms 
without any error message, but

```
 java.lang.RuntimeException: Master not initialized after 20ms

```

 

There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
cause.

 

0 means `MemStoreFlusher` is not alive. During the initialization time of 
HMaster, `isHealthy()` will be called and it will try to check if 
`MemStoreFlusher` is alive or not.  However, since we set 
`hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
first place, which cause`isHealthy()` to return false. As a consequence, 
HRegionServer does not enter its main loop.

 

*How To Reproduce* 

 

The version of HBase: 2.2.3

 
 # Set the value of configuration parameter `hbase.hstore.flusher.count` to `0` 
in “conf/hbase-site.xml”
 # Start hbase by running “bin/start-hbase.sh”
 # Wait for 3-4 minutes
 # Open the log file “logs/hbase-- master -.log”

  was:
*Summary* 

The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
turns out to be a bad value after I understand the source code).

When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 ms 
without any error message, but

```
 java.lang.RuntimeException: Master not initialized after 20ms

```

 

There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
cause.

 

0 means `MemStoreFlusher` is not alive. During the initialization time of 
HMaster, `isHealthy()` will be called and it will try to check if 
`MemStoreFlusher` is alive or not.  However, since we set 
`hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
first place, which cause`isHealthy()` to return false. As a consequence, 
HRegionServer does not enter its main loop.

 

*How To Reproduce* 

 

The version of HBase: 2.2.3

 
 # Set the value of configuration parameter `hbase.hstore.flusher.count` to `0` 
in “conf/hbase-site.xml”
 # Start hbase by running “bin/start-hbase.sh”
 # Wait for 3-4 minutes
 # Open the log file “logs/hbase--master-.log”


> `hbase.hstore.flusher.count` setting to 0 breaks HMaster
> 
>
> Key: HBASE-23702
> URL: https://issues.apache.org/jira/browse/HBASE-23702
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.2.3
> Environment: HBase-2.2.3 
> Java openjdk 1.8.0_222 
> Ubuntu 18.04
>Reporter: Ctest
>Priority: Major
> Attachments: hbase-src-patch.txt
>
>
> Summary 
> The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
> turns out to be a bad value after I understand the source code).
> When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 
> ms without any error message, but
> ```
>  java.lang.RuntimeException: Master not initialized after 20ms
> ```
>  
> There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
> cause.
>  
> 0 means `MemStoreFlusher` is not alive. During the initialization time of 
> HMaster, `isHealthy()` will be called and it will try to check if 
> `MemStoreFlusher` is alive or not.  However, since we set 
> `hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
> first place, which cause`isHealthy()` to return false. As a consequence, 
> HRegionServer does not enter its main loop.
>  
> *How To Reproduce* 
>  
> The version of HBase: 2.2.3
>  
>  # Set the value of configuration parameter `hbase.hstore.flusher.count` to 
> `0` in “conf/hbase-site.xml”
>  # Start hbase by running “bin/start-hbase.sh”
>  # Wait for 3-4 minutes
>  # Open the log file “logs/hbase-- master -.log”



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23702) `hbase.hstore.flusher.count` setting to 0 breaks HMaster

2020-01-16 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23702:
--
Description: 
*Summary* 

The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
turns out to be a bad value after I understand the source code).

When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 ms 
without any error message, but

```
 java.lang.RuntimeException: Master not initialized after 20ms

```

 

There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
cause.

 

0 means `MemStoreFlusher` is not alive. During the initialization time of 
HMaster, `isHealthy()` will be called and it will try to check if 
`MemStoreFlusher` is alive or not.  However, since we set 
`hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
first place, which cause`isHealthy()` to return false. As a consequence, 
HRegionServer does not enter its main loop.

 

*How To Reproduce* 

 

The version of HBase: 2.2.3

 
 # Set the value of configuration parameter `hbase.hstore.flusher.count` to `0` 
in “conf/hbase-site.xml”
 # Start hbase by running “bin/start-hbase.sh”
 # Wait for 3-4 minutes
 # Open the log file “logs/hbase--master-.log”

  was:
*Summary* 

The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
turns out to be a bad value after I understand the source code).

When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 ms 
without any error message, but

```
java.lang.RuntimeException: Master not initialized after 20ms

```

 

There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
cause.

 

0 means `MemStoreFlusher` is not alive. During the initialization time of 
HMaster, `isHealthy()` will be called and it will try to check if 
`MemStoreFlusher` is alive or not.  However, since we set 
`hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
first place, which cause`isHealthy()` to return false. As a consequence, 
HRegionServer does not enter its main loop.

 

*How To Reproduce* 

 

The version of Hadoop: 2.2.3

 
 # Set the value of configuration parameter `hbase.hstore.flusher.count` to `0` 
in “conf/hbase-site.xml”
 # Start hbase by running “bin/start-hbase.sh”
 # Wait for 3-4 minutes
 # Open the log file “logs/hbase--master-.log”


> `hbase.hstore.flusher.count` setting to 0 breaks HMaster
> 
>
> Key: HBASE-23702
> URL: https://issues.apache.org/jira/browse/HBASE-23702
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.2.3
> Environment: HBase-2.2.3 
> Java openjdk 1.8.0_222 
> Ubuntu 18.04
>Reporter: Ctest
>Priority: Major
> Attachments: hbase-src-patch.txt
>
>
> *Summary* 
> The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
> turns out to be a bad value after I understand the source code).
> When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 
> ms without any error message, but
> ```
>  java.lang.RuntimeException: Master not initialized after 20ms
> ```
>  
> There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
> cause.
>  
> 0 means `MemStoreFlusher` is not alive. During the initialization time of 
> HMaster, `isHealthy()` will be called and it will try to check if 
> `MemStoreFlusher` is alive or not.  However, since we set 
> `hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
> first place, which cause`isHealthy()` to return false. As a consequence, 
> HRegionServer does not enter its main loop.
>  
> *How To Reproduce* 
>  
> The version of HBase: 2.2.3
>  
>  # Set the value of configuration parameter `hbase.hstore.flusher.count` to 
> `0` in “conf/hbase-site.xml”
>  # Start hbase by running “bin/start-hbase.sh”
>  # Wait for 3-4 minutes
>  # Open the log file “logs/hbase--master-.log”



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (HBASE-23702) `hbase.hstore.flusher.count` setting to 0 breaks HMaster

2020-01-16 Thread Ctest (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-23702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ctest updated HBASE-23702:
--
Attachment: hbase-src-patch.txt
Status: Patch Available  (was: Open)

> `hbase.hstore.flusher.count` setting to 0 breaks HMaster
> 
>
> Key: HBASE-23702
> URL: https://issues.apache.org/jira/browse/HBASE-23702
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.2.3
> Environment: HBase-2.2.3 
> Java openjdk 1.8.0_222 
> Ubuntu 18.04
>Reporter: Ctest
>Priority: Major
> Attachments: hbase-src-patch.txt
>
>
> *Summary* 
> The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
> turns out to be a bad value after I understand the source code).
> When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 
> ms without any error message, but
> ```
> java.lang.RuntimeException: Master not initialized after 20ms
> ```
>  
> There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
> cause.
>  
> 0 means `MemStoreFlusher` is not alive. During the initialization time of 
> HMaster, `isHealthy()` will be called and it will try to check if 
> `MemStoreFlusher` is alive or not.  However, since we set 
> `hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
> first place, which cause`isHealthy()` to return false. As a consequence, 
> HRegionServer does not enter its main loop.
>  
> *How To Reproduce* 
>  
> The version of Hadoop: 2.2.3
>  
>  # Set the value of configuration parameter `hbase.hstore.flusher.count` to 
> `0` in “conf/hbase-site.xml”
>  # Start hbase by running “bin/start-hbase.sh”
>  # Wait for 3-4 minutes
>  # Open the log file “logs/hbase--master-.log”



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (HBASE-23702) `hbase.hstore.flusher.count` setting to 0 breaks HMaster

2020-01-16 Thread Ctest (Jira)
Ctest created HBASE-23702:
-

 Summary: `hbase.hstore.flusher.count` setting to 0 breaks HMaster
 Key: HBASE-23702
 URL: https://issues.apache.org/jira/browse/HBASE-23702
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 2.2.3
 Environment: HBase-2.2.3 

Java openjdk 1.8.0_222 

Ubuntu 18.04
Reporter: Ctest


*Summary* 

The configuration parameter `hbase.hstore.flusher.count` allows `0` (which 
turns out to be a bad value after I understand the source code).

When we set `hbase.hstore.flusher.count` to 0, HMaster will fail in 200,000 ms 
without any error message, but

```
java.lang.RuntimeException: Master not initialized after 20ms

```

 

There’s no messages pinpointing `hbase.hstore.flusher.count` being the root 
cause.

 

0 means `MemStoreFlusher` is not alive. During the initialization time of 
HMaster, `isHealthy()` will be called and it will try to check if 
`MemStoreFlusher` is alive or not.  However, since we set 
`hbase.hstore.flusher.count` to 0, there will be no flusher created at the 
first place, which cause`isHealthy()` to return false. As a consequence, 
HRegionServer does not enter its main loop.

 

*How To Reproduce* 

 

The version of Hadoop: 2.2.3

 
 # Set the value of configuration parameter `hbase.hstore.flusher.count` to `0` 
in “conf/hbase-site.xml”
 # Start hbase by running “bin/start-hbase.sh”
 # Wait for 3-4 minutes
 # Open the log file “logs/hbase--master-.log”



--
This message was sent by Atlassian Jira
(v8.3.4#803005)