diff options
| author | Matthew Sackman <matthew@lshift.net> | 2009-11-12 11:50:09 +0000 |
|---|---|---|
| committer | Matthew Sackman <matthew@lshift.net> | 2009-11-12 11:50:09 +0000 |
| commit | 0654c41ab845f43e4dfdcac4da274451d5829def (patch) | |
| tree | 17a9227e685c89557d3f8d58dac16044c319a60c /README.in | |
| parent | 52d6b72b14a50577dc7bceb5c846ed525c294e03 (diff) | |
| download | rabbitmq-server-git-0654c41ab845f43e4dfdcac4da274451d5829def.tar.gz | |
Found the bug. What was happening was:
1) γ contains a range, say a to b, where a is a segment boundary but b-a < segmentsize
2) γ -> β happens, so all of γ gets loaded into q3 as betas. γ is empty
3) then push β to γ happens. There was a logic failure in there, which meant that with γ empty, _all_ of q3 would be pushed to γ, but incorrectly accounted for, making the vq think there is less in γ than there really is
4) now γ -> β happens again, vq is amazed to find more in the segment in γ than it was expecting. cue explosion
The bug was simply not ensuring that if γ was empty, only push out enough to leave q3 with a maximum of one segment, ending on a segment boundary
Diffstat (limited to 'README.in')
0 files changed, 0 insertions, 0 deletions
