[
https://issues.apache.org/jira/browse/HBASE-22686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16884217#comment-16884217
]
HBase QA commented on HBASE-22686:
----------------------------------
| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 22m
25s{color} | {color:blue} Docker mode activated. {color} |
|| || || || {color:brown} Prechecks {color} ||
| {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue} 0m
0s{color} | {color:blue} Findbugs executables are not available. {color} |
| {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m
0s{color} | {color:green} Patch does not have any anti-patterns. {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:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m
0s{color} | {color:green} The patch appears to include 1 new or modified test
files. {color} |
|| || || || {color:brown} master Compile Tests {color} ||
| {color:red}-1{color} | {color:red} mvninstall {color} | {color:red} 0m
11s{color} | {color:red} root in master failed. {color} |
| {color:red}-1{color} | {color:red} compile {color} | {color:red} 1m
6s{color} | {color:red} hbase-server in master failed with JDK v1.8.0_212.
{color} |
| {color:red}-1{color} | {color:red} compile {color} | {color:red} 0m
12s{color} | {color:red} hbase-server in master failed with JDK v1.7.0_222.
{color} |
| {color:red}-1{color} | {color:red} checkstyle {color} | {color:red} 0m
16s{color} | {color:red} The patch fails to run checkstyle in hbase-server
{color} |
| {color:red}-1{color} | {color:red} shadedjars {color} | {color:red} 0m
10s{color} | {color:red} branch has 7 errors when building our shaded
downstream artifacts. {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m
40s{color} | {color:green} master passed with JDK v1.8.0_212 {color} |
| {color:red}-1{color} | {color:red} javadoc {color} | {color:red} 0m
14s{color} | {color:red} hbase-server in master failed with JDK v1.7.0_222.
{color} |
|| || || || {color:brown} Patch Compile Tests {color} ||
| {color:red}-1{color} | {color:red} mvninstall {color} | {color:red} 0m
9s{color} | {color:red} root in the patch failed. {color} |
| {color:red}-1{color} | {color:red} compile {color} | {color:red} 0m
36s{color} | {color:red} hbase-server in the patch failed with JDK v1.8.0_212.
{color} |
| {color:red}-1{color} | {color:red} javac {color} | {color:red} 0m 36s{color}
| {color:red} hbase-server in the patch failed with JDK v1.8.0_212. {color} |
| {color:red}-1{color} | {color:red} compile {color} | {color:red} 0m
13s{color} | {color:red} hbase-server in the patch failed with JDK v1.7.0_222.
{color} |
| {color:red}-1{color} | {color:red} javac {color} | {color:red} 0m 13s{color}
| {color:red} hbase-server in the patch failed with JDK v1.7.0_222. {color} |
| {color:red}-1{color} | {color:red} checkstyle {color} | {color:red} 0m
11s{color} | {color:red} The patch fails to run checkstyle in hbase-server
{color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m
0s{color} | {color:green} The patch has no whitespace issues. {color} |
| {color:red}-1{color} | {color:red} shadedjars {color} | {color:red} 0m
9s{color} | {color:red} patch has 7 errors when building our shaded downstream
artifacts. {color} |
| {color:red}-1{color} | {color:red} hadoopcheck {color} | {color:red} 0m
10s{color} | {color:red} The patch causes 7 errors with Hadoop v2.8.5. {color} |
| {color:red}-1{color} | {color:red} hadoopcheck {color} | {color:red} 0m
19s{color} | {color:red} The patch causes 7 errors with Hadoop v2.9.2. {color} |
| {color:red}-1{color} | {color:red} hadoopcheck {color} | {color:red} 0m
27s{color} | {color:red} The patch causes 7 errors with Hadoop v3.1.2. {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m
35s{color} | {color:green} the patch passed with JDK v1.8.0_212 {color} |
| {color:red}-1{color} | {color:red} javadoc {color} | {color:red} 0m
15s{color} | {color:red} hbase-server in the patch failed with JDK v1.7.0_222.
{color} |
|| || || || {color:brown} Other Tests {color} ||
| {color:red}-1{color} | {color:red} unit {color} | {color:red} 0m 12s{color}
| {color:red} hbase-server in the patch failed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m
11s{color} | {color:green} The patch does not generate ASF License warnings.
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 28m 38s{color} |
{color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=18.09.7 Server=18.09.7 base:
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/Dockerfile
|
| JIRA Issue | HBASE-22686 |
| JIRA Patch URL |
https://issues.apache.org/jira/secure/attachment/12974579/HBASE-22686.patch |
| Optional Tests | dupname asflicense javac javadoc unit findbugs
shadedjars hadoopcheck hbaseanti checkstyle compile |
| uname | Linux d8e7b6672200 4.4.0-143-generic #169-Ubuntu SMP Thu Feb 7
07:56:38 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | dev-support/hbase-personality.sh |
| git revision | master / 4e46093 |
| maven | version: Apache Maven 3.0.5 |
| Default Java | 1.7.0_222 |
| Multi-JDK versions | /usr/lib/jvm/java-8-openjdk-amd64:1.8.0_212
/usr/lib/jvm/java-7-openjdk-amd64:1.7.0_222 |
| mvninstall |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/branch-mvninstall-root.txt
|
| compile |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/branch-compile-hbase-server-jdk1.8.0_212.txt
|
| compile |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/branch-compile-hbase-server-jdk1.7.0_222.txt
|
| checkstyle |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess//testptch/patchprocess/maven-branch-checkstyle-hbase-server.txt
|
| shadedjars |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/branch-shadedjars.txt
|
| javadoc |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/branch-javadoc-hbase-server-jdk1.7.0_222.txt
|
| mvninstall |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/patch-mvninstall-root.txt
|
| compile |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/patch-compile-hbase-server-jdk1.8.0_212.txt
|
| javac |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/patch-compile-hbase-server-jdk1.8.0_212.txt
|
| compile |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/patch-compile-hbase-server-jdk1.7.0_222.txt
|
| javac |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/patch-compile-hbase-server-jdk1.7.0_222.txt
|
| checkstyle |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess//testptch/patchprocess/maven-patch-checkstyle-hbase-server.txt
|
| shadedjars |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/patch-shadedjars.txt
|
| hadoopcheck |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/patch-javac-2.8.5.txt
|
| hadoopcheck |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/patch-javac-2.9.2.txt
|
| hadoopcheck |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/patch-javac-3.1.2.txt
|
| javadoc |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/patch-javadoc-hbase-server-jdk1.7.0_222.txt
|
| unit |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/artifact/patchprocess/patch-unit-hbase-server.txt
|
| Test Results |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/testReport/ |
| Max. process+thread count | 86 (vs. ulimit of 10000) |
| modules | C: hbase-server U: hbase-server |
| Console output |
https://builds.apache.org/job/PreCommit-HBASE-Build/614/console |
| Powered by | Apache Yetus 0.9.0 http://yetus.apache.org |
This message was automatically generated.
> ZkSplitLogWorkerCoordination doesn't allow a regionserver to pick up all of
> the split work it is capable of
> -----------------------------------------------------------------------------------------------------------
>
> Key: HBASE-22686
> URL: https://issues.apache.org/jira/browse/HBASE-22686
> Project: HBase
> Issue Type: Bug
> Reporter: Andrew Purtell
> Assignee: Andrew Purtell
> Priority: Major
> Fix For: 3.0.0, 1.5.0, 2.3.0, 2.2.1, 1.3.6, 1.4.11, 2.1.7
>
> Attachments: HBASE-22686-branch-1.patch, HBASE-22686-branch-1.patch,
> HBASE-22686.patch, HBASE-22686.patch
>
>
> A region hosted by a crashed regionserver cannot be reassigned until the
> crashed regionserver's write-ahead logs have been processed and split into
> per-region recovered edits files. Reassignment of a region from a crashed
> server will be held up by the distributed split work backlog. Every
> regionserver runs a background daemon thread that manages the acquisition and
> execution of distributed log split tasks. This thread registers a watcher on
> a znode managed by the master. When the master is processing a server
> shutdown or crash or cluster restart when it detects the presence of
> unprocessed WAL files it will register the WAL files for processing under the
> znode. One or more live regionservers will attempt to get an exclusive lock
> on an entry. One of them wins, splits the WAL file, deletes the entry, then
> will acquire more work or go back to sleep if the worklist is empty. A
> regionserver can acquire at most a fixed number of log split tasks determined
> by configuration, hbase.regionserver.wal.max.splitters (default 2). If the
> number of entries/logs to process exceeds the number of available split
> workers in the cluster, perhaps due to the correlated failure of a
> significant subset of the fleet, then splitting work will fall behind.
> Regions may remain in RIT until the backlog is cleared.
> However, the regionserver side coordination logic -
> ZkSplitLogWorkerCoordination - only allows a regionserver to grab one task
> one at a time. Nearby javadoc says "This policy puts an upper-limit on the
> number of simultaneous log splitting that could be happening in a cluster."
> That upper limit will be the number of currently live regionservers. I don't
> feel I understand exactly why this is necessary or appropriate because a
> regionserver can handle more than one task at once and in fact the max number
> of concurrent split tasks it can accept is configurable.
> {code:java}
> /**
> * This function calculates how many splitters it could create based on
> expected average tasks per
> * RS and the hard limit upper bound(maxConcurrentTasks) set by
> configuration. <br>
> * At any given time, a RS allows spawn MIN(Expected Tasks/RS, Hard Upper
> Bound)
> * @param numTasks current total number of available tasks
> */
> private int calculateAvailableSplitters(int numTasks) {
> // at lease one RS(itself) available
> int availableRSs = 1;
> try {
> List<String> regionServers =
> ZKUtil.listChildrenNoWatch(watcher, watcher.rsZNode);
> availableRSs = Math.max(availableRSs, (regionServers == null) ? 0 :
> regionServers.size());
> } catch (KeeperException e) {
> // do nothing
> LOG.debug("getAvailableRegionServers got ZooKeeper exception", e);
> }
> int expectedTasksPerRS = (numTasks / availableRSs) + ((numTasks %
> availableRSs == 0) ? 0 : 1);
> expectedTasksPerRS = Math.max(1, expectedTasksPerRS); // at least be one
> // calculate how many more splitters we could spawn
> return Math.min(expectedTasksPerRS, maxConcurrentTasks)
> - this.tasksInProgress.get();
> {code}
> Shouldn't this simply be:
> {code:java}
> private int calculateAvailableSplitters() {
> return maxConcurrentTasks - tasksInProgress.get();
> }
> {code}
> ?
> This is branch-1.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)