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

fix: catch exception if unmarshall the rpc request encounters error #790

Merged
merged 14 commits into from
Jul 28, 2021

Conversation

levy5307
Copy link
Contributor

@levy5307 levy5307 commented Jul 23, 2021

What problem does this PR solve?

In previous implementation, the cluster will crash if we receive a dirty muation log, and will not recover unless the dirty logs are clear. For more details: #617
So in pr(XiaoMi/rdsn#863), I changed the way from coredump to throw exception, and we can catch the exception to avoid cluster crash.

Checklist

Tests
  • Manual test (add detailed scripts or steps below)
  1. send a dirty request by java client
  2. to see whether the perf counter increase
    [replica*app.pegasus*recent_corrupt_write_count@2.4, VOLATILE_NUMBER, 1.00]
  3. to see whether there is a log about this situation.
    pegasus_server_write.cpp:106:on_batched_writes(): pegasus batch writes handler failed, from ={ip}:{port}, exception =no more data to read after end-of-buffer

@levy5307 levy5307 marked this pull request as draft July 23, 2021 02:20
@levy5307 levy5307 marked this pull request as ready for review July 25, 2021 10:11
@hycdong hycdong added the type/perf-counter PR that made modification on perf-counter, which should be noted in release note. label Jul 27, 2021
@levy5307 levy5307 merged commit 8039277 into apache:master Jul 28, 2021
@levy5307 levy5307 deleted the rpc-coredump branch July 28, 2021 07:49
@hycdong hycdong mentioned this pull request Sep 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/perf-counter PR that made modification on perf-counter, which should be noted in release note.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants