Jingxuan Fu created HBASE-27341:
-----------------------------------
Summary: when “hbase.regionserver.logroll.period” is set to a
negative number, Log cannot run normally
Key: HBASE-27341
URL: https://issues.apache.org/jira/browse/HBASE-27341
Project: HBase
Issue Type: Bug
Reporter: Jingxuan Fu
Assignee: Jingxuan Fu
In hbase- default.xml
<property>
<name>hbase.regionserver.logroll.period</name>
<value>3600000</value>
<description>Period at which we will roll the commit log regardless
of how many edits it has.</description>
</property>
Taking hbase.regionserver.logroll.period set to -1 in hbase-site.xml as an
example, it is normal to start hbase.
However, {*}there are a large number of repeated wal rolling operation records
in the log file{*}.
{code:java}
2022-08-06 15:39:37,172 INFO [regionserver/xmw1-kb310-65:16020.logRoller]
wal.AbstractFSWAL: Rolled WAL
/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.1659771577156
with entries=0, filesize=83 B; new WAL
/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.1659771577167
2022-08-06 15:39:37,172 INFO [regionserver/xmw1-kb310-65:16020.logRoller]
wal.AbstractFSWAL: Archiving
file:/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.1659771577156
to
file:/home/xmw/hbase-2.2.2/hbase-tmp/oldWALs/xmw1-kb310-65%2C16020%2C1659771570212.1659771577156
2022-08-06 15:39:37,177 INFO [regionserver/xmw1-kb310-65:16020.logRoller]
wal.AbstractFSWAL: Rolled WAL
/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.meta.1659771577160.meta
with entries=0, filesize=83 B; new WAL
/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.meta.1659771577172.meta
2022-08-06 15:39:37,177 INFO [regionserver/xmw1-kb310-65:16020.logRoller]
wal.AbstractFSWAL: Archiving
file:/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.meta.1659771577160.meta
to
file:/home/xmw/hbase-2.2.2/hbase-tmp/oldWALs/xmw1-kb310-65%2C16020%2C1659771570212.meta.1659771577160.meta
2022-08-06 15:39:37,182 INFO [regionserver/xmw1-kb310-65:16020.logRoller]
wal.AbstractFSWAL: Rolled WAL
/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.1659771577167
with entries=0, filesize=83 B; new WAL
/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.1659771577177
2022-08-06 15:39:37,182 INFO [regionserver/xmw1-kb310-65:16020.logRoller]
wal.AbstractFSWAL: Archiving
file:/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.1659771577167
to
file:/home/xmw/hbase-2.2.2/hbase-tmp/oldWALs/xmw1-kb310-65%2C16020%2C1659771570212.1659771577167
2022-08-06 15:39:37,188 INFO [regionserver/xmw1-kb310-65:16020.logRoller]
wal.AbstractFSWAL: Rolled WAL
/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.meta.1659771577172.meta
with entries=0, filesize=83 B; new WAL
/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.meta.1659771577182.meta
2022-08-06 15:39:37,188 INFO [regionserver/xmw1-kb310-65:16020.logRoller]
wal.AbstractFSWAL: Archiving
file:/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.meta.1659771577172.meta
to
file:/home/xmw/hbase-2.2.2/hbase-tmp/oldWALs/xmw1-kb310-65%2C16020%2C1659771570212.meta.1659771577172.meta
2022-08-06 15:39:37,196 INFO [regionserver/xmw1-kb310-65:16020.logRoller]
wal.AbstractFSWAL: Rolled WAL
/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.1659771577177
with entries=0, filesize=83 B; new WAL
/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.1659771577188
2022-08-06 15:39:37,197 INFO [regionserver/xmw1-kb310-65:16020.logRoller]
wal.AbstractFSWAL: Archiving
file:/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.1659771577177
to
file:/home/xmw/hbase-2.2.2/hbase-tmp/oldWALs/xmw1-kb310-65%2C16020%2C1659771570212.1659771577177
2022-08-06 15:39:37,201 INFO [regionserver/xmw1-kb310-65:16020.logRoller]
wal.AbstractFSWAL: Rolled WAL
/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.meta.1659771577182.meta
with entries=0, filesize=83 B; new WAL
/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.meta.1659771577197.meta
2022-08-06 15:39:37,201 INFO [regionserver/xmw1-kb310-65:16020.logRoller]
wal.AbstractFSWAL: Archiving
file:/home/xmw/hbase-2.2.2/hbase-tmp/WALs/xmw1-kb310-65,16020,1659771570212/xmw1-kb310-65%2C16020%2C1659771570212.meta.1659771577182.meta
to
file:/home/xmw/hbase-2.2.2/hbase-tmp/oldWALs/xmw1-kb310-65%2C16020%2C1659771570212.meta.1659771577182.meta{code}
When using the service, it works fine and close normally.
According to the above phenomenon, we believe that the phenomenon is related to
the WAL rolling of regionserver. After code review, we found that in the
constructor of
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/LogRoller.java.
After reading the configuration item hbase.regionserver.logroll.period, {*}it
is not checked whether the value is normal{*}. In the subsequent run()
function, the current time is directly compared to the last rollback time with
hbase.regionserver.logroll.period to determine whether to perform the WAL
rollback operation, so that no matter what the current time is, The rollback
operation will be performed, {*}resulting in a large number of records in the
LOG{*}, *and it is very likely to occupy too many resources. And no prompt
message appears to remind us of the problem.*
Therefore, we propose to {*}add the judgment of
hbase.regionserver.logroll.period on the constructor of LogRoller{*}. If the
parameter LogRoller.rollPeriod affected by this configuration item is less than
zero, an error message will be output and he relevant exception can be thrown.
This way, if the hbase.regiononserver.logroll.period is less than 0, an
exception can be thrown and an error message logged, stopping the log from
having a large number of duplicate wal roll operation records.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)