Closed nemanja-boric-sociomantic closed 6 years ago
What I don't understand is why the node would send an empty batch. Isn't that meaningless?
Yes, it is. I think it's just an implementation detail, I'll restrict that (to kill the client via the protocol error) and I'll make node not send empty data.
Replaced by #64
DoubleBuffer.empty() method was used to see if there are more batches to process. However, since it would work solely by looking into the buffer's length, that meant that DoubleBuffer could not detect that there's an empty batch to process. This lead to the dead lock when the node was waiting acknowledgement from the client that the batch was received, but the client didn't know that there was a batch, never acknowledging this.
Fixes #62