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]

Reply via email to