-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
stability: nil pointer panic in timestamp cache #6190
Comments
So this can be replicated using 5 nodes and the photo example? |
You're probably going to have a hard time reproducing this just like that - it's the first time I've seen it, so it's probably rare. The best starting point for analyzing that issue is this code from case sCmp <= 0 && eCmp >= 0:
// New contains or is equal to old; delete old.
//
// New: ------------ ------------ ------------
// Old: -------- or ---------- or ----------
//
// Old:
cache.DelEntry(o.Entry) // this panicked Naively, this could be a locking issue (i.e. some concurrent actor removes In the absence of good ideas on the cause of this issue, one measure would be getting more information the next time it happens, for instance by adding a |
Another thought: Maybe we're modifying overlaps while we're still iterating and cause corruption that way. |
I recently mucked with the code for |
This brings back the behavior that was present prior to cockroachdb#6140. See cockroachdb#6190.
This brings back the behavior that was present prior to cockroachdb#6140. See cockroachdb#6190.
Looks like this was fixed by the code to avoid panicing when removing a list element twice. |
@petermattis is your last message about this code from // TODO(peter): Revert this protection against removing a non-existent entry
// from the list when the cause of
// https://github.com/cockroachdb/cockroach/issues/6190 is determined. Should
// be replaced with an explicit panic instead of the implicit one of a
// nil-pointer dereference.
if e.next != nil {
e.prev.next = e.next
e.next.prev = e.prev
e.next = nil // avoid memory leaks
e.prev = nil // avoid memory leaks
} or can that code be removed? |
@tschottdorf I don't recall ever tracking down the root cause. It is possible the problem was fixed. |
Seen on
cockroach-gamma-5
running e6880aeThe text was updated successfully, but these errors were encountered: