Return connection errors from the heartbeat task to the Client
#4733
Labels
A-network
Area: Network protocol updates or fixes
C-security
Category: Security issues
I-panic
Zebra panics with an internal error message
Motivation
We're seeing "failed servers must set their error slot" panics when Zebra is overloaded.
This panic is caused by the design of the
Client
connection code. Currently, theClient
tasks share anErrorSlot
mutex, which must be updated before they exit.This ticket stops using the error slot in the heartbeat task.
Designs
Instead of using the error slot,
Client
tasks should exit and return an error to the client instance.The
Client
should exit when any task errors or stops.We could try something like this:
(click for details)
Replace
Client.error_slot
with returning aPeerError
:JoinHandle
in theClient
Client
when the heartbeat task exits or errorsRelated Work
This is part of:
The text was updated successfully, but these errors were encountered: