You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make SBFT application's enqueue operations non-blocking
Backend has a main consumer process (run()) handling
the content of its queue (called 'queue', a channel).
This goroutine has to be only a consumer but as it
executes messages from the queue, sometimes, it has
to also insert items acting as a producer. In this
case, blocking enqueue operations may block the
whole replica (application). One example for this
phenomenon is an enqueued message of type Receive.
This calls SBFT's Receive which may call function
recordBacklogMsg which may then call System's
Reconnect. This is implemented by Backend and tries
to enqueue a Connection message (enqueueConnection)
blocking the replica.
Change-Id: I1dd2a900570a1305ea17d20bfcd8cba81b437d24
Signed-off-by: Gabor Hosszu <gabor@digitalasset.com>
0 commit comments