neofs-node
neofs-node copied to clipboard
Fix replication service denial after `MaxObjectSize` increase
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:
- gracefully stop the running server
- 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