we are calling incrSeq after constructing the getMulti request when we should be incrementing it before.
here's what currently happens
seq = N
getMulti() is called
runs a bunch of fast local logic/loops to break up the keys into per-server batches
per server, we start sending out requests to the first server with seq=N, the second server with seq=N+1, etc etc
what I think is happening is
seq = N
getMulti() is called
batch N+B does a bunch of work building request frames
in the middle of one of those, a getVersion() call is made
it increments seq to N+B+1,
original getMulti call keeps working through the same batch but now with N+B+1 (since it didn't save seq at the start of the loop, and keep it until the end), so now we overwrite the N+B+1 handler (that was the getVersion handler) with the getMulti handler, which is now going to get an unexpected getVersion response
solution: save the current seqno for the entire getMulti run
we are calling incrSeq after constructing the getMulti request when we should be incrementing it before.
here's what currently happens
what I think is happening is
solution: save the current seqno for the entire getMulti run