frostfs-node/pkg/morph
Pavel Karpy a69c6d1ec9
ci/woodpecker/push/pre-commit Pipeline was successful Details
[#2272] morph: Do not subscribe to events without listening
It led to a neo-go dead-lock in the `subscriber` component. Subscribing to
notifications is the same RPC as any others, so it could also be blocked
forever if no async listening (reading the notification channel) routine
exists. If a number of subscriptions is big enough (or a caller is lucky
enough) subscribing loop might have not finished subscribing before the
first notification is received and then: subscribing RPC is blocked by
received notification (non)handling and listening notifications routine is
blocked by not finished subscription loop.
That commit starts listening notification channel _before_ any subscription
actions.

Signed-off-by: Pavel Karpy <p.karpy@yadro.com>
2023-04-03 08:42:41 +00:00
..
client [#184] morph: Make deposit logs INFO 2023-03-29 10:34:54 +00:00
event [#2272] morph: Do not subscribe to events without listening 2023-04-03 08:42:41 +00:00
subscriber [#2272] morph: Do not subscribe to events without listening 2023-04-03 08:42:41 +00:00
timer Rename package name 2023-03-07 16:38:26 +03:00