Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix bug in shouldRetry with closed linked cursor
When we discover, via shouldretry, that a cursor needs to retry, the retry will cascade to all linked cursors, if any. If the cursor has previously had a linked cursor, but the linked cursor was closed, then the parent cursor is not notified and will still traverse through the closed linked cursor when starting retry. This would cause the startRetry to throw a NullPointerException, because a closed cursor drops its reference to the MuninnPagedFile. The bug is fixed by checking that the pinned page ref is still valid, which is the standard way of telling whether a cursor has been closed or not. This issue was discovered by GBPTreeConcurrencyIT, which deterministically failed. PageCacheTests have been added in a different PR because I wanted them to go into 3.2, instead of 3.3.
- Loading branch information