neofs-node icon indicating copy to clipboard operation
neofs-node copied to clipboard

Fix replication service denial after `MaxObjectSize` increase

Open cthulhu-rider opened this issue 6 months ago • 3 comments

overall, solution is very simple: listen to config changes and update the server limit. But...

gRPC

lib does not provide option to update max recv msg size on the runnig server. https://pkg.go.dev/google.golang.org/grpc#MaxRecvMsgSize is static. It can be very easily supported, so i patched my fork. If we decide this proposal is good, i suggest to add an organization fork (and later propose it to the upstream)

there is an alternative approach i dont like completely:

  1. gracefully stop the running server
  2. create new one with updated limit and run it although MaxObjectSize is expected to be changed very rarely, such method looks very ugly taking into account the native option's simplicity

Notifications

we dont have them now (https://github.com/nspcc-dev/neofs-contract/issues/427). Polling is used as a temp soluition


this brings us closer to fix the test within which the bug was originally detected. It should be noted that there is not 100% stable solution for it: there will always be a gap b/w contract update and node reaction. The only option i see for now is to ignore overflow errors for about 1-2 minutes and retry cc @evgeniiz321

cthulhu-rider avatar Aug 08 '24 13:08 cthulhu-rider