[jira] [Commented] (RATIS-201) MiniRaftCluster#getLeader may incorrectly throw IllegalStateException
[ https://issues.apache.org/jira/browse/RATIS-201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16352845#comment-16352845 ] Hadoop QA commented on RATIS-201: - | (/) *{color:green}+1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 1m 13s{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} @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:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 5s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 45s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 14s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 29s{color} | {color:green} master passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 56s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 46s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 46s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 13s{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} javadoc {color} | {color:green} 0m 29s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 11m 50s{color} | {color:green} root in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 8s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 18m 19s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/ratis:date2018-02-05 | | JIRA Issue | RATIS-201 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12908808/RATIS-201.001.patch | | Optional Tests | asflicense javac javadoc unit findbugs checkstyle compile | | uname | Linux 6bc767225e9c 3.13.0-135-generic #184-Ubuntu SMP Wed Oct 18 11:55:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /home/jenkins/jenkins-slave/workspace/PreCommit-RATIS-Build/yetus-personality.sh | | git revision | master / 2d53656 | | Default Java | 1.8.0_151 | | Test Results | https://builds.apache.org/job/PreCommit-RATIS-Build/121/testReport/ | | modules | C: ratis-server U: ratis-server | | Console output | https://builds.apache.org/job/PreCommit-RATIS-Build/121/console | | Powered by | Apache Yetus 0.5.0 http://yetus.apache.org | This message was automatically generated. > MiniRaftCluster#getLeader may incorrectly throw IllegalStateException > - > > Key: RATIS-201 > URL: https://issues.apache.org/jira/browse/RATIS-201 > Project: Ratis > Issue Type: Bug >Reporter: Lokesh Jain >Assignee: Lokesh Jain >Priority: Major > Attachments: RATIS-201.001.patch, RATIS-201.002.patch, > RATIS-201.003.patch > > > It can be possible for more than one server to have their role set as LEADER > in a ratis ring. There can be a race condition where term of a follower is > updated but its role is not yet updated to FOLLOWER. In such a scenario > MiniRaftCluster#getLeader would throw IllegalStateException. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (RATIS-201) MiniRaftCluster#getLeader may incorrectly throw IllegalStateException
[ https://issues.apache.org/jira/browse/RATIS-201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16352806#comment-16352806 ] Lokesh Jain commented on RATIS-201: --- Yes, sorry my bad. > MiniRaftCluster#getLeader may incorrectly throw IllegalStateException > - > > Key: RATIS-201 > URL: https://issues.apache.org/jira/browse/RATIS-201 > Project: Ratis > Issue Type: Bug >Reporter: Lokesh Jain >Assignee: Lokesh Jain >Priority: Major > Attachments: RATIS-201.001.patch, RATIS-201.002.patch > > > It can be possible for more than one server to have their role set as LEADER > in a ratis ring. There can be a race condition where term of a follower is > updated but its role is not yet updated to FOLLOWER. In such a scenario > MiniRaftCluster#getLeader would throw IllegalStateException. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (RATIS-201) MiniRaftCluster#getLeader may incorrectly throw IllegalStateException
[ https://issues.apache.org/jira/browse/RATIS-201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16352798#comment-16352798 ] Tsz Wo Nicholas Sze commented on RATIS-201: --- Thanks, Lokesh. For testWithLoad, should we pass true for tolerateMultipleLeaders? The default is false. {code} + RaftServerImpl leader = waitForLeader(cluster, true); {code} > MiniRaftCluster#getLeader may incorrectly throw IllegalStateException > - > > Key: RATIS-201 > URL: https://issues.apache.org/jira/browse/RATIS-201 > Project: Ratis > Issue Type: Bug >Reporter: Lokesh Jain >Assignee: Lokesh Jain >Priority: Major > Attachments: RATIS-201.001.patch, RATIS-201.002.patch > > > It can be possible for more than one server to have their role set as LEADER > in a ratis ring. There can be a race condition where term of a follower is > updated but its role is not yet updated to FOLLOWER. In such a scenario > MiniRaftCluster#getLeader would throw IllegalStateException. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (RATIS-201) MiniRaftCluster#getLeader may incorrectly throw IllegalStateException
[ https://issues.apache.org/jira/browse/RATIS-201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16352648#comment-16352648 ] Lokesh Jain commented on RATIS-201: --- I saw the IllegalStateException when I was working on TestRaftAsyncWithGrpc. The error was thrown by RaftBasicTests#testWithLoad:349. The possible reason is that there is a background task running which restarted the leader and meanwhile getLeader could be called by testWithLoad which could lead to the error. I haven't seen the error now though. I have added a patch with the corresponding change. > MiniRaftCluster#getLeader may incorrectly throw IllegalStateException > - > > Key: RATIS-201 > URL: https://issues.apache.org/jira/browse/RATIS-201 > Project: Ratis > Issue Type: Bug >Reporter: Lokesh Jain >Assignee: Lokesh Jain >Priority: Major > Attachments: RATIS-201.001.patch, RATIS-201.002.patch > > > It can be possible for more than one server to have their role set as LEADER > in a ratis ring. There can be a race condition where term of a follower is > updated but its role is not yet updated to FOLLOWER. In such a scenario > MiniRaftCluster#getLeader would throw IllegalStateException. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (RATIS-201) MiniRaftCluster#getLeader may incorrectly throw IllegalStateException
[ https://issues.apache.org/jira/browse/RATIS-201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16351026#comment-16351026 ] Tsz Wo Nicholas Sze commented on RATIS-201: --- Hi Lokesh, the RaftTestUtil.waitForLeader(..) methods (with tolerateMultipleLeaders == true) already taking care the multiple leader case. The idea is that MiniRaftCluster.getLeader does not wait (just return or throw an exception) and RaftTestUtil.waitForLeader may wait for some time. Do you see any particular tests need to change from MiniRaftCluster.getLeader to RaftTestUtil.waitForLeader? > MiniRaftCluster#getLeader may incorrectly throw IllegalStateException > - > > Key: RATIS-201 > URL: https://issues.apache.org/jira/browse/RATIS-201 > Project: Ratis > Issue Type: Bug >Reporter: Lokesh Jain >Assignee: Lokesh Jain >Priority: Major > Attachments: RATIS-201.001.patch > > > It can be possible for more than one server to have their role set as LEADER > in a ratis ring. There can be a race condition where term of a follower is > updated but its role is not yet updated to FOLLOWER. In such a scenario > MiniRaftCluster#getLeader would throw IllegalStateException. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (RATIS-201) MiniRaftCluster#getLeader may incorrectly throw IllegalStateException
[ https://issues.apache.org/jira/browse/RATIS-201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16348634#comment-16348634 ] Hadoop QA commented on RATIS-201: - | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 1m 36s{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} @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:green}+1{color} | {color:green} mvninstall {color} | {color:green} 3m 17s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 43s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 20s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 38s{color} | {color:green} master passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 54s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 43s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 43s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 13s{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} javadoc {color} | {color:green} 0m 30s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 6m 29s{color} | {color:red} root 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} 15m 43s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | ratis.server.impl.TestRaftServerJmx | | | ratis.server.simulation.TestReinitializationWithSimulatedRpc | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/ratis:date2018-02-01 | | JIRA Issue | RATIS-201 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12908808/RATIS-201.001.patch | | Optional Tests | asflicense javac javadoc unit findbugs checkstyle compile | | uname | Linux d08ff9017fa6 4.4.0-43-generic #63-Ubuntu SMP Wed Oct 12 13:48:03 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /home/jenkins/jenkins-slave/workspace/PreCommit-RATIS-Build/yetus-personality.sh | | git revision | master / 1beef87 | | Default Java | 1.8.0_151 | | unit | https://builds.apache.org/job/PreCommit-RATIS-Build/118/artifact/out/patch-unit-root.txt | | Test Results | https://builds.apache.org/job/PreCommit-RATIS-Build/118/testReport/ | | modules | C: ratis-server U: ratis-server | | Console output | https://builds.apache.org/job/PreCommit-RATIS-Build/118/console | | Powered by | Apache Yetus 0.5.0 http://yetus.apache.org | This message was automatically generated. > MiniRaftCluster#getLeader may incorrectly throw IllegalStateException > - > > Key: RATIS-201 > URL: https://issues.apache.org/jira/browse/RATIS-201 > Project: Ratis > Issue Type: Bug >Reporter: Lokesh Jain >Assignee: Lokesh Jain >Priority: Major > Attachments: RATIS-201.001.patch > > > It can be possible for more than one server to have their role set as LEADER > in a ratis ring. There can be a race condition where term of a follower is > updated but its role is not yet updated to FOLLOWER. In such a scenario > MiniRaftCluster#getLeader would throw IllegalStateException. -- This message was sent by Atlassian JIRA (v7.6.3#76005)