-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Posting List should return error on read #4958
Comments
I ran the debug command with the history flag. This is what I get:
In my case 328 is the timestamp at which the rollup happen. As you can see there's a discard marker so the earlier versions are ignored. I think there are two options here:
@manishrjain any thoughts? |
Found the place where the discard is set. I'll try changing the code and seeing what happens with the query that's failing right now.
Also, I see that we will save space by only saving one version of the complete list. We are still storing the deltas, though. Do those entries ever get cleaned up? |
As per the original post, we do return an error from posting list when the read is lower than the discard bit. See this:
|
The condition in this case was causing most of the errors to be ignored. Verified that reading below the minTs throws an error now. Fixes #4958
Looks like this is the commit which introduced the issue: 78026df7f1 |
The error was being ignored and an empty response was being written because the condition in a case statement didn't exclude errors not equal to nil or ErrNoValue. This caused reads below the rollup Ts to succeed with an empty response when they should throw an error. The bug was triggered by running Jepsen tests with incremental rollups enabled. Fixes #4958
The error was being ignored and an empty response was being written because the condition in a case statement didn't exclude errors not equal to nil or ErrNoValue. This caused reads below the rollup Ts to succeed with an empty response when they should throw an error. The bug was triggered by running Jepsen tests with incremental rollups enabled. Fixes #4958
The error was being ignored and an empty response was being written because the condition in a case statement didn't exclude errors not equal to nil or ErrNoValue. This caused reads below the rollup Ts to succeed with an empty response when they should throw an error. The bug was triggered by running Jepsen tests with incremental rollups enabled. Fixes #4958
The error was being ignored and an empty response was being written because the condition in a case statement didn't exclude errors not equal to nil or ErrNoValue. This caused reads below the rollup Ts to succeed with an empty response when they should throw an error. The bug was triggered by running Jepsen tests with incremental rollups enabled. Fixes #4958
The error was being ignored and an empty response was being written because the condition in a case statement didn't exclude errors not equal to nil or ErrNoValue. This caused reads below the rollup Ts to succeed with an empty response when they should throw an error. The bug was triggered by running Jepsen tests with incremental rollups enabled. Fixes #4958
What version of Dgraph are you using?
master
Have you tried reproducing the issue with the latest release?
Yes
What is the hardware spec (RAM, OS)?
Thinkpad Linux
Steps to reproduce the issue (command/config used to run Dgraph).
In this case, the key got rolled up at version 288. Any reads below version 288 should return error.
Expected behaviour and actual result.
But, this query does not return an error. Instead, it does not return counter.val. This is a bug.
Running the same query with startTs=288 does return a valid value.
The text was updated successfully, but these errors were encountered: