-
Notifications
You must be signed in to change notification settings - Fork 895
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exception when sending read requests #1970
Comments
Do you already have a reproducer? |
No, I haven't seen this error myself yet |
I was the user reporting this - my current cluster is throwing this pretty much continuously - let me know if there's anything I can do. |
Relates to apache/pulsar#3715 |
I have observed this bug with BookKeeper 4.9.0 when using the tiered storage feature of Pulsar 2.3.0. I added logging to
The We can avoid the resulting But changing the |
I don't think bookkeeper should accept any reads reading entries with negative ids. there is already a defensive sanity check in
|
Hi. I am also seeing this, when running the some benchmarks with 100GB of backlog. |
FYI I am currently looking into this issue as well. Will post updates once I got any. |
*Motivation* 2.3.x releases turn on StickyRead by default. But StickyRead causes a lot of ArrayIndexOutOfBoundException. See: apache/bookkeeper#1970 and apache#3715 *Modifications* Disable sticy read by default until the bug is fixed and a new bookkeeper version is released.
for Pulsar users who are following this issue, please refer this comment to get around the issue. The negative entry id was introduced by a random generator used by StickyRead. I am sending a pull request to fix the issue. |
Master Issue: apache#1970 *Motivation* Fixes apache#1970 By default bookie uses a random generator to generate a bookie index as the sticky read bookie index. However the random generator will generate negative numbers. Hence it will generate negative bookie indexes in write set and cause ArrayIndexOutOfBoundException when bookkeeper attempts to read entries. *Modifications* Make sure getStickyReadBookieIndex not return negative number. *Verify this change* This problem introduced by a random generator. It is very hard to write a unit test to reproduce this issue. Existing StickyRead tests are good to cover this code change.
*Motivation* 2.3.x releases turn on StickyRead by default. But StickyRead causes a lot of ArrayIndexOutOfBoundException. See: apache/bookkeeper#1970 and #3715 *Modifications* Disable sticy read by default until the bug is fixed and a new bookkeeper version is released.
Descriptions of the changes in this PR: Master Issue: #1970 Related Issues: apache/pulsar#3715 apache/pulsar#4526 *Motivation* Fixes #1970 By default bookie uses a random generator to generate a bookie index as the sticky read bookie index. However the random generator will generate negative numbers. Hence it will generate negative bookie indexes in write set and cause ArrayIndexOutOfBoundException when bookkeeper attempts to read entries. *Modifications* Make sure getStickyReadBookieIndex not return negative number. *Verify this change* This problem introduced by a random generator. It is very hard to write a unit test to reproduce this issue. Existing StickyRead tests are good to cover this code change. Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Jia Zhai <zhaijia@apache.org>, Yong Zhang <zhangyong1025.zy@gmail.com> This closes #2111 from sijie/fix_sticky_read, closes #1970
Descriptions of the changes in this PR: Master Issue: #1970 Related Issues: apache/pulsar#3715 apache/pulsar#4526 *Motivation* Fixes #1970 By default bookie uses a random generator to generate a bookie index as the sticky read bookie index. However the random generator will generate negative numbers. Hence it will generate negative bookie indexes in write set and cause ArrayIndexOutOfBoundException when bookkeeper attempts to read entries. *Modifications* Make sure getStickyReadBookieIndex not return negative number. *Verify this change* This problem introduced by a random generator. It is very hard to write a unit test to reproduce this issue. Existing StickyRead tests are good to cover this code change. Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Jia Zhai <zhaijia@apache.org>, Yong Zhang <zhangyong1025.zy@gmail.com> This closes #2111 from sijie/fix_sticky_read, closes #1970
BUG REPORT
Describe the bug
Got reports from Pulsar users (with BK 4.9.0) of these errors:
The text was updated successfully, but these errors were encountered: