Files
openide/platform/indexing-impl
Ruslan Cheremin 6dfe995594 [indexes] IJPL-1365: made IndexStorage.clearIndexData() check storages are closed first
+ VfsAwareIndexStorageLayout.clearIndexData() is physically removes the index's files -- but the index storages could be still !closed and in use, which creates various use-after-delete errors (e.g. EA-1061618). Those errors are especially tricky because *nix OSes allows to use removed files via opened file-handle, while Win doesn't allow to even delete an opened (mmapped) file.
+ The change introduced a tracking of opened index storages, and check them being closed before re-open or .clearIndexData()
+ Right now only warning about not-closed storages is logged -- could be turned into exception with `-Dindexing.only-warn-if-cleaning-unclosed-storage=false`
+ Next step planned: forcibly _close_ the storages before re-open/clear -- which will trigger exceptions in the code that uses storages after their lifecycle is finished -- see StorageRef.CLOSE_BEFORE_REOPEN

GitOrigin-RevId: 57010f07e1ebad0f9de492bd3d97eed7a528507f
2024-05-14 23:18:30 +00:00
..