[#2164] node: Fix multi-client error reporting

Missing `ReportError` method did not allow casing multi-client interface to
`errorReporter` interface and dropping broken connections.
`replicationClient` embeds that interface, and it is widely used across
node's code. Embedded interface does not allow casting its parent structure
to `errorReporter` and breaks multi client error reporting logic.
Multi-client scheme is extremely hard to maintain, it makes unpredictable
casts and does not allow tracking code flow, so it will be refactored in the
future anyway.

Signed-off-by: Pavel Karpy <p.karpy@yadro.com>
KirillovDenis/poc/impersonate
Pavel Karpy 2023-02-09 00:15:36 +03:00 committed by fyrchik
parent 95ee905861
commit b422ac9f94
1 changed files with 2 additions and 0 deletions

View File

@ -33,6 +33,8 @@ type MultiAddressClient interface {
// RawForAddress must return rawclient.Client
// for the passed network.Address.
RawForAddress(network.Address, func(cli *rawclient.Client) error) error
ReportError(error)
}
// NodeInfo groups information about a FrostFS storage node needed for Client construction.