rmdmattingly opened a new pull request, #5366: URL: https://github.com/apache/hbase/pull/5366
In ServerRpcConnection.processOneRpc, it calls processConnectionHeader and then immediately calls callCleanupIfNeeded. The parsing of the ByteBuff into the ConnectionHeader does not copy the bytes. We keep a reference to ConnectionHeader for later use, but since the underlying ByteBuff gets released in callCleanupIfNeeded, later requests can override the memory locations that the ConnectionHeader points at. In this PR we modified our test to ensure that it failed in the current state on master — enabling the byte buffer resevoir and sending a large enough put caused the ConnectionHeader attributes to disappear. We fixed this by copying the parsed ConnectionHeader's attributes to their own Map, and then making this Map accessible on the RpcCall. @bbeaudreault -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
