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

[server] Reset current version replica to ERROR on ingestion error #1387

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

majisourav99
Copy link
Contributor

@majisourav99 majisourav99 commented Dec 12, 2024

Reset current version replica to ERROR on ingestion error

For hybrid stores whose current version is ingesting the real time data from a real time topic, if there is any exception/error thrown during ingestion they would log error message, sit still and stop ingestion, resulting in stale replicas.
The mitigation mechanism is for oncall to manually restart every impacted cluster, which is very labor-intensive.
This PR tries to resolve that by marking such replicas to ERROR state, which later in a controller task to reset such error replicas, will try to initiate new state transition of those replicas which can possibly mitigate such stale replica issue.

How was this PR tested?

GHCI

Does this PR introduce any user-facing changes?

  • No. You can skip the rest of this section.
  • Yes. Make sure to explain your proposed changes and call out the behavior change.

@majisourav99 majisourav99 changed the title [server] Reset current version replica to ERROR on ingestion ERROR [server] Reset current version replica to ERROR on ingestion error Dec 12, 2024
@@ -1439,10 +1439,23 @@ private void processIngestionException() {
// DaVinci is always a follower.
subscribePartition(pubSubTopicPartition, false);
}
} else if (isCurrentVersion.getAsBoolean() && resetErrorReplicaEnabled && !isDaVinciClient) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this the right place to mark replicas ERROR? IIUC we may not call processIngestionException if lastStoreIngestionException is set.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants