-
Notifications
You must be signed in to change notification settings - Fork 6.2k
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
Corruption error when calling GetUpdatesSince() #5455
Comments
4 tasks
Thanks @graetzer. Changing it to ::TryAgain makes sense to me. Are you interested in submitting a PR? |
Sure thing #5474 |
merryChris
pushed a commit
to merryChris/rocksdb
that referenced
this issue
Nov 18, 2019
…to TransactionLogIterator (facebook#5474) Summary: When tailing the WAL with TransactionLogIterator, it used to return Corruption status to indicate that the WAL has new tail that is not visible to the iterator, which is a misleading status. The patch replaces it with TryAgain which is more descriptive of a status, indicating that the user needs to create a new iterator to fetch the recent tail. Fixes facebook#5455 Pull Request resolved: facebook#5474 Differential Revision: D15898953 Pulled By: maysamyabandeh fbshipit-source-id: 40966f6457cb539e1aeb104daeada6b0e46059fc
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When using the
GetUpdatesSince(..)
method we regulary see a corruption error with the message "NO MORE DATA LEFT".It seems to me like there is a condition in the
TransactionLogIteratorImpl::NextImpl()
method, that would always lead to this error when a new WAL file is openened (while concurrently scanning the WAL). The code in question is this piece:Seems like the sequence number returned by
versions_->LastSequence()
would be higher in that case ? Would it be more correct to return a "try again" type error ?Expected behavior
No corruption error on scanning the WAL when executing basically this code:
Actual behavior
We regulary see a corruption error.
Steps to reproduce the behavior
Scan the WAL via
GetUpdatesSince
and run parallel threads writing into the database instance.The text was updated successfully, but these errors were encountered: