-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Labels
Description
In large solutions (thousands of indexed files) where the indexing takes quite long, the user may do this:
- Invoke the plugin window, type a few letters,
- close the window,
- Invoke the window again, type more letters
- --> crash
This is what happens internally:
- On the first invoke a full index of the solution is started in a background thread. This indexing takes long enough time that it still runs when the plugin window is invoked again.
- On the second invoke, another parallel index is started (the first one still runs).
- When the first index finishes, it starts a search over the indexed data.
- While the search executes, the second index finishes and rewrites the index collection on which the search query currently executes, resulting in a race condition.