grafana / pyroscope

Continuous Profiling Platform. Debug performance issues down to a single line of code
https://grafana.com/oss/pyroscope/
GNU Affero General Public License v3.0
10.13k stars 614 forks source link

feat: do not recover from panics with fatal errors #3534

Closed aleks-p closed 2 months ago

aleks-p commented 2 months ago

The metastore FSM recovers from any panics in Raft command handlers. This change adds a custom error type which when used in a panic will result in a real panic. It also downgrades a few existing error cases, when the underlying issue is a logical one (a bug) as opposed to a technical problem.

The intention is to terminate replicas when they encounter a real error, e.g., failing to persist the state to the DB.