You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ratis.apache.org by "runzhiwang (Jira)" <ji...@apache.org> on 2020/04/26 10:07:00 UTC
[jira] [Comment Edited] (RATIS-883) Failed UT:
testStateMachineMetrics.checkFollowerCommitLagsLeader
[ https://issues.apache.org/jira/browse/RATIS-883?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17092523#comment-17092523 ]
runzhiwang edited comment on RATIS-883 at 4/26/20, 10:06 AM:
-------------------------------------------------------------
[~shashikant] [~ljain] Could you help review this patch ? Thank you very much.
was (Author: yjxxtd):
[~shashikant] Could you help review this patch ? Thank you very much.
> Failed UT: testStateMachineMetrics.checkFollowerCommitLagsLeader
> ----------------------------------------------------------------
>
> Key: RATIS-883
> URL: https://issues.apache.org/jira/browse/RATIS-883
> Project: Ratis
> Issue Type: Bug
> Reporter: runzhiwang
> Assignee: runzhiwang
> Priority: Major
> Attachments: RATIS-883.001.patch, screenshot-1.png
>
>
> *What's the problem ?*
> !screenshot-1.png!
> *What's the reason ?*
> The reason is follower update commitInfoCache after leader.
> The stack of follower update commitInfoCache is:
> RaftServerImpl::appendEntriesAsync
> -> state.updateStateMachine
> -> StateMachineUpdater::applyLog
> -> RaftServerImpl::applyLogToStateMachine
> -> RaftServerImpl::replyPendingRequest
> -> RaftServerImpl::getCommitInfos
> -> infos.add(commitInfoCache.update(getPeer(), state.getLog().getLastCommittedIndex()))
> -> CommitInfoCache::update.
> The stack of leader update commitInfoCache is:
> follower finish RaftServerImpl::appendEntriesAsync and return reply
> -> GrpcLogAppender::runAppenderImpl
> -> GrpcLogAppender::appendLog
> ->LogAppender::createRequest
> ->LeaderState::newAppendEntriesRequestProto
> ->RaftServerImpl::getCommitInfos
> ->LeaderState::updateFollowerCommitInfos
> ->CommitInfoCache::update.
> Because follower need to notify thread StateMachineUpdater to update CommitInfoCache, we can not ensure follower update CommitInfoCache before leader.
> *How to fix ?*
> Follower update CommitInfoCache before return reply to leader.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)