NightOwl888 commented on PR #938: URL: https://github.com/apache/lucenenet/pull/938#issuecomment-2113074427
Well, the good news is that this seems to be 100% stable on .NET Framework. The bad news is that it is not performing as well on .NET Core. I attempted to swap the `m_staleFiles` set with `new JCG.HashSet<T>().AsConcurrent()` and it seemed to make Windows worse, but Linux and macOS better (NOTE: I rolled that change back). They still all randomly fail, but it is on the order of: - Windows: Once every ~150 power failures - Linux: Once every ~350 power failures - macOS: Once every ~500 power failures This is still a huge improvement over 4.8.0-beta00016, which would get a corrupt index about once every ~30 power failures. Here are the results of the runs with the swapped hashset implementation with `[Repeat(25)]` (which runs the test 250 times, since the original test runs it 10 times): https://dev.azure.com/shad0962/Experiments/_build/results?buildId=2343&view=results https://dev.azure.com/LuceneNET-Temp/Lucene.NET/_build/results?buildId=2257&view=results https://dev.azure.com/lucene-net-temp2/Lucene.NET/_build/results?buildId=1014&view=results https://dev.azure.com/lucene-net-temp3/Lucene.NET/_build/results?buildId=850&view=results https://dev.azure.com/lucene-net-temp4/Main/_build/results?buildId=273&view=results Note that I left the commit with the `[Repeat(25)]` attribute on this branch. It should be reverted before merging to master to restore the original behavior. -------- I also improved the `TestIndexWriterOnJRECrash` test by using a socket instead of a temp file to transfer the process id to kill from the forked test to back to the original process. The original Java test crashed the JRE from the inside using a low level function, but .NET doesn't allow killing the current process from the inside so we needed 2-way communication between the 2 test processes. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
