frostfs-node/pkg/morph/event
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
..
balance Rename package name 2023-03-07 16:38:26 +03:00
container Rename package name 2023-03-07 16:38:26 +03:00
frostfs Rename package name 2023-03-07 16:38:26 +03:00
netmap Rename package name 2023-03-07 16:38:26 +03:00
reputation Rename package name 2023-03-07 16:38:26 +03:00
rolemanagement Rename package name 2023-03-07 16:38:26 +03:00
subnet Rename package name 2023-03-07 16:38:26 +03:00
handlers.go [#770] pkg/morph/event: Add notary notifications support 2021-09-07 12:55:01 +03:00
listener.go [#2272] morph: Do not subscribe to events without listening 2023-04-03 08:42:41 +00:00
notary.go [#807] morph/event/container: Add `delete` notary support 2021-09-09 18:37:45 +03:00
notary_preparator.go [#148] linter: Add funlen linter 2023-03-21 09:54:41 +03:00
notary_preparator_test.go Rename package name 2023-03-07 16:38:26 +03:00
notification.go [#770] pkg/morph/event: Add notary notifications support 2021-09-07 12:55:01 +03:00
opcodes.go [#907] morph/event: Implement Op to string converter 2021-10-18 11:54:34 +03:00
opcodes_test.go [#822] moprh/event: Add parsers from Op struct 2021-09-13 10:32:43 +03:00
parsers.go [#1637] go.mod: Update neo-go to v0.99.1 2022-07-28 20:11:45 +03:00
utils.go Rename package name 2023-03-07 16:38:26 +03:00