Debugging has revealed that OFP may be crossing channels and ends up
committing an unreserved offset. Add a guard to check for that.
Change-Id: I445e07df6e628a4abccd4a6daa347e1de12e8eba
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
5430767b0b533d1db017b2c4fce88150ac25f50c)
Preconditions.checkArgument(xid.equals(message.getXid()), "Message %s has wrong XID %s, expected %s", message, message.getXid(), xid);
}
Preconditions.checkArgument(xid.equals(message.getXid()), "Message %s has wrong XID %s, expected %s", message, message.getXid(), xid);
}
+ final int ro = reserveOffset;
+ Preconditions.checkArgument(offset < ro, "Unexpected commit to offset {} reserved {} message {}", offset, ro, message);
+
final OutboundQueueEntry entry = queue[offset];
entry.commit(message, callback);
final OutboundQueueEntry entry = queue[offset];
entry.commit(message, callback);
- LOG.debug("Queue {} XID {} at offset {} (of {}) committed", this, xid, offset, reserveOffset);
+ LOG.debug("Queue {} XID {} at offset {} (of {}) committed", this, xid, offset, ro);
if (entry.isBarrier()) {
int my = offset;
if (entry.isBarrier()) {
int my = offset;
for (;;) {
// No message ready
if (isEmpty()) {
for (;;) {
// No message ready
if (isEmpty()) {
- LOG.trace("Flushed all reserved entries up to ", flushOffset);
+ LOG.trace("Flushed all reserved entries up to {}", flushOffset);