[
https://issues.apache.org/jira/browse/HBASE-18168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16044304#comment-16044304
]
Hadoop QA commented on HBASE-18168:
-----------------------------------
| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 34s
{color} | {color:blue} Docker mode activated. {color} |
| {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s
{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s
{color} | {color:red} The patch doesn't appear to include any new or modified
tests. Please justify why no new tests are needed for this patch. Also please
list what manual steps were performed to verify this patch. {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 3m
24s {color} | {color:green} branch-1.1 passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 16s
{color} | {color:green} branch-1.1 passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m
43s {color} | {color:green} branch-1.1 passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m
29s {color} | {color:green} branch-1.1 passed {color} |
| {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 4m 10s
{color} | {color:red} hbase-server in branch-1.1 has 80 extant Findbugs
warnings. {color} |
| {color:red}-1{color} | {color:red} javadoc {color} | {color:red} 1m 7s
{color} | {color:red} hbase-server in branch-1.1 failed. {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m
26s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 17s
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 17s
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m
44s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m
26s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m
0s {color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green}
28m 19s {color} | {color:green} The patch does not cause any errors with Hadoop
2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.1 2.6.2 2.6.3 2.7.1. {color} |
| {color:green}+1{color} | {color:green} hbaseprotoc {color} | {color:green} 0m
19s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m
46s {color} | {color:green} the patch passed {color} |
| {color:red}-1{color} | {color:red} javadoc {color} | {color:red} 0m 45s
{color} | {color:red} hbase-server in the patch failed. {color} |
| {color:red}-1{color} | {color:red} unit {color} | {color:red} 157m 9s {color}
| {color:red} hbase-server in the patch failed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m
30s {color} | {color:green} The patch does not generate ASF License warnings.
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 207m 7s {color}
| {color:black} {color} |
\\
\\
|| Reason || Tests ||
| Failed junit tests |
hadoop.hbase.master.TestMasterOperationsForRegionReplicas |
| Timed out junit tests | org.apache.hadoop.hbase.mapreduce.TestWALPlayer |
| | org.apache.hadoop.hbase.mapreduce.TestTimeRangeMapRed |
| | org.apache.hadoop.hbase.mapreduce.TestTableSnapshotInputFormat |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=17.03.0-ce Server=17.03.0-ce Image:yetus/hbase:70789c7 |
| JIRA Patch URL |
https://issues.apache.org/jira/secure/attachment/12872212/HBASE-18168-branch-1.1.v3.patch
|
| JIRA Issue | HBASE-18168 |
| Optional Tests | asflicense javac javadoc unit findbugs hadoopcheck
hbaseanti checkstyle compile |
| uname | Linux e24bd73321dd 4.8.3-std-1 #1 SMP Fri Oct 21 11:15:43 UTC 2016
x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | /testptch/patchprocess/precommit/personality/hbase.sh |
| git revision | branch-1.1 / b9ff18e |
| Default Java | 1.8.0_131 |
| findbugs | v3.0.0 |
| findbugs |
https://builds.apache.org/job/PreCommit-HBASE-Build/7156/artifact/patchprocess/branch-findbugs-hbase-server-warnings.html
|
| javadoc |
https://builds.apache.org/job/PreCommit-HBASE-Build/7156/artifact/patchprocess/branch-javadoc-hbase-server.txt
|
| javadoc |
https://builds.apache.org/job/PreCommit-HBASE-Build/7156/artifact/patchprocess/patch-javadoc-hbase-server.txt
|
| unit |
https://builds.apache.org/job/PreCommit-HBASE-Build/7156/artifact/patchprocess/patch-unit-hbase-server.txt
|
| unit test logs |
https://builds.apache.org/job/PreCommit-HBASE-Build/7156/artifact/patchprocess/patch-unit-hbase-server.txt
|
| Test Results |
https://builds.apache.org/job/PreCommit-HBASE-Build/7156/testReport/ |
| modules | C: hbase-server U: hbase-server |
| Console output |
https://builds.apache.org/job/PreCommit-HBASE-Build/7156/console |
| Powered by | Apache Yetus 0.3.0 http://yetus.apache.org |
This message was automatically generated.
> NoSuchElementException when rolling the log
> -------------------------------------------
>
> Key: HBASE-18168
> URL: https://issues.apache.org/jira/browse/HBASE-18168
> Project: HBase
> Issue Type: Bug
> Affects Versions: 1.1.11
> Reporter: Allan Yang
> Assignee: Allan Yang
> Attachments: HBASE-18168-branch-1.1.patch,
> HBASE-18168-branch-1.1.v2.patch, HBASE-18168-branch-1.1.v3.patch
>
>
> Today, one of our server aborted due to the following log.
> {code}
> 2017-06-06 05:38:47,142 ERROR [regionserver/xxxx.logRoller]
> regionserver.LogRoller: Log rolling failed
> java.util.NoSuchElementException
> at
> java.util.concurrent.ConcurrentSkipListMap$Iter.advance(ConcurrentSkipListMap.java:2224)
> at
> java.util.concurrent.ConcurrentSkipListMap$ValueIterator.next(ConcurrentSkipListMap.java:2253)
> at java.util.Collections.min(Collections.java:628)
> at
> org.apache.hadoop.hbase.regionserver.wal.FSHLog.findEligibleMemstoresToFlush(FSHLog.java:861)
> at
> org.apache.hadoop.hbase.regionserver.wal.FSHLog.findRegionsToForceFlush(FSHLog.java:886)
> at
> org.apache.hadoop.hbase.regionserver.wal.FSHLog.rollWriter(FSHLog.java:728)
> at
> org.apache.hadoop.hbase.regionserver.LogRoller.run(LogRoller.java:137)
> at java.lang.Thread.run(Thread.java:756)
> 2017-06-06 05:38:47,142 FATAL [regionserver/xxxx.logRoller]
> regionserver.HRegionServer: ABORTING region server xxxx: Log rolling failed
> java.util.NoSuchElementException
> ......
> {code}
> The code is here:
> {code}
> private byte[][] findEligibleMemstoresToFlush(Map<byte[], Long>
> regionsSequenceNums) {
> List<byte[]> regionsToFlush = null;
> // Keeping the old behavior of iterating unflushedSeqNums under
> oldestSeqNumsLock.
> synchronized (regionSequenceIdLock) {
> for (Map.Entry<byte[], Long> e: regionsSequenceNums.entrySet()) {
> ConcurrentMap<byte[], Long> m =
> this.oldestUnflushedStoreSequenceIds.get(e.getKey());
> if (m == null) {
> continue;
> }
> long unFlushedVal = Collections.min(m.values()); //The exception is
> thrown here
> ......
> {code}
> The map 'm' is empty is the only reason I can think of why
> NoSuchElementException is thrown. I then looked up all code related to the
> update of 'oldestUnflushedStoreSequenceIds'. All update to
> 'oldestUnflushedStoreSequenceIds' is guarded by the synchronization of
> 'regionSequenceIdLock' except here:
> {code}
> private ConcurrentMap<byte[], Long>
> getOrCreateOldestUnflushedStoreSequenceIdsOfRegion(
> byte[] encodedRegionName) {
> ......
> oldestUnflushedStoreSequenceIdsOfRegion =
> new ConcurrentSkipListMap<byte[], Long>(Bytes.BYTES_COMPARATOR);
> ConcurrentMap<byte[], Long> alreadyPut =
> oldestUnflushedStoreSequenceIds.putIfAbsent(encodedRegionName,
> oldestUnflushedStoreSequenceIdsOfRegion); // Here, a empty map may
> put to 'oldestUnflushedStoreSequenceIds' with no synchronization
> return alreadyPut == null ? oldestUnflushedStoreSequenceIdsOfRegion :
> alreadyPut;
> }
> {code}
> It should be a very rare bug. But it can lead to server abort. It only exists
> in branch-1.1.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)