When deleting a folder (move to trash) there are 2 async elasticsearch process involved:
- one triggered by the path renaming into ".trashed" which is recursive
- and another that is triggered by updating of the lifecyclestate to deleted.
If the recursive process is done after the lifecyclestate delete, the document indexed must be up to date,
this is not the case if we don't read cache invalidation this create desynchronisation between VCS and ES.
So we need a way to read cache invalidation when flushing which is not done when calling session.save.
To fix this:
- session.save must be fixed to load cache invalidation so we are in read commited.
- when recursive indexing is done on iterating on children we must call session.save to read cache invalidation
The error can be seen on slow database or when deleting large amount of documents:
- webdriver on mysql build randomly fail on ITSearchTest.