Conversation
RsNxsGrp items larger than the max packet size (262143 bytes) can never be serialised by pqistreamer. fragmentGrp() is not used and receivers do not defragment groups, so sending such a group only fails with "Serialised packet is too big", and the peer requests the same group again at every sync.
…e scope Follow-up to the oversized-group skip: compare the exact serialised size of the RsNxsGrp, as RsNxsSerialiser computes it, against a file-scope MAX_ALLOWED_GXS_GROUP_SIZE placed next to MAX_ALLOWED_GXS_MESSAGE_SIZE. Drop the NULL check and the manual delete: retrieveNxsGrps() erases the ids it cannot find, and the temporary map deletes what is left in it.
|
Went through it against master. The premise holds: Three small things, as a PR on your branch so you can just merge it if you agree: defnax#10.
On the cause: a group this big can only have been created locally (a receiving node closes the connection on a packet above 262143 bytes), and after this PR it is still advertised in the group list, so the peer will re-request it and you will get this new line once per minute per peer instead of the old dump. The check that removes the class of problem is at publication: Speaking of which: 0x217 is channels, and the Qt GUI thumbnails the logo to 64×64, but the web UI sends the selected image file as is to |
…-392 GxsNetService: measure the group with the serialiser, constant at file scope
RsNxsGrp items larger than the max packet size (262143 bytes) can never be serialised by pqistreamer. fragmentGrp() is not used and receivers do not defragment groups, so sending such a group only fails with "Serialised packet is too big", and the peer requests the same group again at every sync.