Skip to content

Conversation

@xav-ie
Copy link

@xav-ie xav-ie commented Jan 7, 2026

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_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.

  • fix: validate buffer before showing in window

    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.

xav-ie added 2 commits January 7, 2026 18:19
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant