Open
Conversation
When a buffer is deleted externally, a race condition can leave stale entries in tabscope's internal tracking. If `remove_tab_buffer` picks the invalid buffer to show, it causes E5108: Invalid buffer id. The test simulates this by wiping a buffer and re-adding its ID to tracking, reproducing the race condition reliably.
Check `nvim_buf_is_valid` before using a tracked buffer in `show_another_buffer_for_window`. This prevents E5108 errors when the internal tracking contains stale buffer IDs due to race conditions with external buffer deletion.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hello, I periodically see this error and this pr fixes. 97% of the pr is just the test case demonstrating the issue.
test: add case for invalid buffer in tracking causing E5108
When a buffer is deleted externally, a race condition can leave stale
entries in tabscope's internal tracking. If
remove_tab_bufferpicksthe invalid buffer to show, it causes E5108: Invalid buffer id.
The test simulates this by wiping a buffer and re-adding its ID to
tracking, reproducing the race condition reliably.
fix: validate buffer before showing in window
Check
nvim_buf_is_validbefore using a tracked buffer inshow_another_buffer_for_window. This prevents E5108 errors when theinternal tracking contains stale buffer IDs due to race conditions with
external buffer deletion.