Skip to content
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

BTR\garbage_collect code can make a deadlock in a page cache [CORE1298] #1719

Closed
firebird-automations opened this issue Jun 3, 2007 · 6 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: @hvlad

To remove page from index BTR\garbage_collect take locks on parent, left, removing and right pages in exactly this order.
After that it searched parent page for node pointing to removing page and, if not found, traverse upper level of b-tree by right sibling pointers.
It can lead to deadlocks as locks at lower level peges are retained.

Solution is to searched node in parent page right after it being fetched and before fetch of lower level pages

Commits: f282a5b f3163f9

@firebird-automations
Copy link
Collaborator Author

Modified by: @hvlad

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 2.0.2 [ 10130 ] =>

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @hvlad

Fix Version: 2.0.2 [ 10130 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

Workflow: jira [ 12271 ] => Firebird [ 15599 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

QA Status: No test

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

status: Closed [ 6 ] => Closed [ 6 ]

QA Status: No test => Cannot be tested

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment