-
Notifications
You must be signed in to change notification settings - Fork 11
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
Check all "not found" errors #175
Conversation
Currently only the leveldb not found errors are handled. If a pebble not found error is returned by the backend it is propagated, causing the batchposter to fail to send transactions. With this change all DB not found errors are handled the same way.
@@ -62,7 +62,7 @@ func (s *Storage) Get(_ context.Context, index uint64) (*storage.QueuedTransacti | |||
key := idxToKey(index) | |||
value, err := s.db.Get(key) | |||
if err != nil { | |||
if errors.Is(err, leveldb.ErrNotFound) { | |||
if isErrNotFound(err) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good call - and are the only errors we care about catching the ones we care about in this function?
func isErrNotFound(err error) bool {
return errors.Is(err, leveldb.ErrNotFound) || errors.Is(err, pebble.ErrNotFound) || errors.Is(err, memorydb.ErrMemorydbNotFound)
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know for sure but I believe the implementation of the function that was changed in this PR is supposed to hide the "not found" errors for all db backend implementations, and only these errors.
Upstream PR: |
Not sure why CI is failing. Upstream merged the PR already. |
Add unit test for conditional OSP
Currently only the leveldb not found errors are handled. If a pebble not found error is returned by the backend it is propagated, causing the batchposter to fail to send transactions.
With this change all DB not found errors are handled the same way.