You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So basically, the issue is in my opinion, that the unblock does not work as it should when the ring buffer is full, here is a unit test which can be added to the org.agrona.concurrent.ringbuffer.ManyToOneRingBufferTest. This test should hopefully reproduce the issue.
I just took the unit test org.agrona.concurrent.ringbuffer.ManyToOneRingBufferTest#shouldUnblockGapWithZeros and set the mock so it returns on getLongVolatile(TAIL_COUNTER_INDEX) messageLength + CAPACITY which should mean that the ring buffer is full.
I hope this unit test is clearer, than the one from previous issue.
Just to elaborate on the issue, we use the ManyToOneRingBuffer, and its underlying buffer is mmap from a file. What we experienced is that the underlying file get corrupted and at the same time the ring buffer was full. I restarted our system, but the buffer was block on the next start and invoking the unblock method didn't help.
The text was updated successfully, but these errors were encountered:
Ok, sorry for the previous issue #159,
So basically, the issue is in my opinion, that the unblock does not work as it should when the ring buffer is full, here is a unit test which can be added to the org.agrona.concurrent.ringbuffer.ManyToOneRingBufferTest. This test should hopefully reproduce the issue.
I just took the unit test org.agrona.concurrent.ringbuffer.ManyToOneRingBufferTest#shouldUnblockGapWithZeros and set the mock so it returns on getLongVolatile(TAIL_COUNTER_INDEX) messageLength + CAPACITY which should mean that the ring buffer is full.
I hope this unit test is clearer, than the one from previous issue.
Just to elaborate on the issue, we use the ManyToOneRingBuffer, and its underlying buffer is mmap from a file. What we experienced is that the underlying file get corrupted and at the same time the ring buffer was full. I restarted our system, but the buffer was block on the next start and invoking the unblock method didn't help.
The text was updated successfully, but these errors were encountered: