Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

apply: fix witness raft log gc panic and refactor #14054

Merged
merged 4 commits into from
Jan 17, 2023

Conversation

ethercflow
Copy link
Member

@ethercflow ethercflow commented Jan 14, 2023

ref #12876

Signed-off-by: Wenbo Zhang ethercflow@gmail.com

What is changed and how it works?

Issue Number: ref #12876

What's Changed:

  • Fix panic caused by not initialize apply_ctx.timer, the ApplyPoller releases the ownership of ApplyFsm after skip flushing, and the other ApplyPoller gets this ApplyFsm then updates applied_index and flush first, causing the applied index to flip.
  • Refactor the logic of notifying the raftstore thread. In the previous method, after calling finish_for (which will update the apply_ctx.applied_res array), explicitly call notify_one to notify raftstore, resulting in redundant notifications. Now the notification is done uniformly through apply_ctx.applied_res.
  • Added a separate configuration to control the interval of request voter_replicated_index
fix witness raft log gc panic and refactor

Related changes

  • PR to update pingcap/docs/pingcap/docs-cn:

Check List

Tests

  • Integration test
  • Manual test (add detailed scripts or steps below)
    • Setup cluster use sysbench prepare as workload, turn down request voter_replicated_index interval, keep running for more than 1h. (When there was a problem before, it can be reproduced in a few minutes)

Side effects

  • Performance regression
    • None

Release note

None

ref tikv#12876

Signed-off-by: Wenbo Zhang <ethercflow@gmail.com>
@ti-chi-bot
Copy link
Member

ti-chi-bot commented Jan 14, 2023

[REVIEW NOTIFICATION]

This pull request has been approved by:

  • BusyJay
  • tonyxuqqi

To complete the pull request process, please ask the reviewers in the list to review by filling /cc @reviewer in the comment.
After your PR has acquired the required number of LGTMs, you can assign this pull request to the committer in the list by filling /assign @committer in the comment to help you merge this pull request.

The full list of commands accepted by this bot can be found here.

Reviewer can indicate their review by submitting an approval review.
Reviewer can cancel approval by submitting a request changes review.

@ti-chi-bot ti-chi-bot added release-note-none Denotes a PR that doesn't merit a release note. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jan 14, 2023
@ethercflow ethercflow changed the title fix witness raft log gc panic and refactor apply: fix witness raft log gc panic and refactor Jan 16, 2023
@ethercflow ethercflow requested a review from Connor1996 January 16, 2023 07:16
@ethercflow ethercflow force-pushed the fix-witness-raft-log-gc branch from 030e56a to 497c231 Compare January 16, 2023 09:20
@ethercflow ethercflow requested a review from BusyJay January 16, 2023 09:20
Copy link
Member

@BusyJay BusyJay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rest LGTM

components/raftstore/src/store/fsm/apply.rs Show resolved Hide resolved
@ti-chi-bot ti-chi-bot added the status/LGT1 Indicates that a PR has LGTM 1. label Jan 16, 2023
ref tikv#12876

Signed-off-by: Wenbo Zhang <ethercflow@gmail.com>
@ti-chi-bot ti-chi-bot added status/LGT2 Indicates that a PR has LGTM 2. and removed status/LGT1 Indicates that a PR has LGTM 1. labels Jan 17, 2023
ethercflow and others added 2 commits January 17, 2023 12:12
ref tikv#12876

Signed-off-by: Wenbo Zhang <ethercflow@gmail.com>
@tabokie
Copy link
Member

tabokie commented Jan 17, 2023

/merge

@ti-chi-bot
Copy link
Member

@tabokie: It seems you want to merge this PR, I will help you trigger all the tests:

/run-all-tests

You only need to trigger /merge once, and if the CI test fails, you just re-trigger the test that failed and the bot will merge the PR for you after the CI passes.

If you have any questions about the PR merge process, please refer to pr process.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository.

@ti-chi-bot
Copy link
Member

This pull request has been accepted and is ready to merge.

Commit hash: 8ac4399

@ti-chi-bot ti-chi-bot added the status/can-merge Indicates a PR has been approved by a committer. label Jan 17, 2023
@ti-chi-bot ti-chi-bot merged commit a463db0 into tikv:master Jan 17, 2023
@ti-chi-bot ti-chi-bot added this to the Pool milestone Jan 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release-note-none Denotes a PR that doesn't merit a release note. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. status/can-merge Indicates a PR has been approved by a committer. status/LGT2 Indicates that a PR has LGTM 2.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants