-
Notifications
You must be signed in to change notification settings - Fork 636
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BUG: Fix for DocumentsWriter concurrency (fixes #935, closes #886) #940
BUG: Fix for DocumentsWriter concurrency (fixes #935, closes #886) #940
Commits on May 15, 2024
-
Lucene.Net.Index.DocumentsWriterFlushControl: Reverted changes from 9…
…63e10c that made the documents writer non-concurrent (but threadsafe)
Configuration menu - View commit details
-
Copy full SHA for 878261f - Browse repository at this point
Copy the full SHA 878261fView commit details
Commits on May 23, 2024
-
BUG: Lucene.Net.Index.DocumentsWriterFlushControl::AddFlushableState(…
…): The DocumentsWriterThreadPool.Reset() method must be called within the context of a lock because there is a possible race condition with other callers of DocumentsWriterThreadPool.Reset(). See apache#935.
Configuration menu - View commit details
-
Copy full SHA for 23898ad - Browse repository at this point
Copy the full SHA 23898adView commit details -
BUG: Lucene.Net.Support.Threading.ReentrantLock: In Java, the Reentra…
…ntLock.tryLock() method barges to the front of the queue instead of returning false like Monitor.TryEnter(). Use Monitor.Enter(object, ref bool) instead, which always returns true. We get locks in a different order, but I am not sure whether that matters. Fixes apache#935. Closes apache#886.
Configuration menu - View commit details
-
Copy full SHA for a96fdf8 - Browse repository at this point
Copy the full SHA a96fdf8View commit details -
Lucene.Net.Index.TestRollingUpdates::TestUpdateSameDoc(): Added [Repe…
…at(1000)] to try to reproduce on Azure DevOps (to be reverted).
Configuration menu - View commit details
-
Copy full SHA for e3501a3 - Browse repository at this point
Copy the full SHA e3501a3View commit details -
Lucene.Net.Index.DocumentsWriterPerThreadPool: Removed MinContendedTh…
…readState() method because it has no callers. This simplifies the design of ReentrantLock, since we don't need to artificially keep track of "queued threads".
Configuration menu - View commit details
-
Copy full SHA for 3abbb73 - Browse repository at this point
Copy the full SHA 3abbb73View commit details -
Lucene.Net.Support: Added aggressive inlining for ReentrantLock and U…
…ninterruptableMonitor on cascaded methods.
Configuration menu - View commit details
-
Copy full SHA for 0884f4d - Browse repository at this point
Copy the full SHA 0884f4dView commit details -
run-tests-on-os.yml: Increase blame hang timeout so we can run a long…
…er test (to be reverted)
Configuration menu - View commit details
-
Copy full SHA for bbd6726 - Browse repository at this point
Copy the full SHA bbd6726View commit details -
Lucene.Net.Support.Threading.ReentrantLock: Use TryEnter() instead of…
… Enter(). Enter() causes deadlocks in other tests, so need to localize this change to DocumentsWriterFlushControl.
Configuration menu - View commit details
-
Copy full SHA for 37a0521 - Browse repository at this point
Copy the full SHA 37a0521View commit details -
Lucene.Net.Index.DocumentsWriterFlushControl::InternalTryCheckoutForF…
…lush(): Use ReentrantLock.Lock() instead of ReentrantLock.TryLock() because Java relies on "barging" behavior instead of returning false when the current thread isn't next in the queue. We cannot do that, but we can wait for the lock to become available instead.
Configuration menu - View commit details
-
Copy full SHA for be17a95 - Browse repository at this point
Copy the full SHA be17a95View commit details -
Lucene.Net.Support.Threading.ReeentrantLock(): Added an overload of T…
…ryLock() that accepts a timeout (TimeSpan)
Configuration menu - View commit details
-
Copy full SHA for f33b243 - Browse repository at this point
Copy the full SHA f33b243View commit details -
Lucene.Net.Index.DocumentsWriterFlushControl: Use timeouts to allow s…
…ome time for threads to reach the beginning of the wait queue. In Java, they are automatically put at the beginning of the queue, but since we cannot do that in .NET, we wait a little bit.
Configuration menu - View commit details
-
Copy full SHA for 85d8023 - Browse repository at this point
Copy the full SHA 85d8023View commit details -
Lucene.Net.Index.DocumentsWriterFlushControl: Base the number of mill…
…iseconds to wait on whether the current process is 64 or 32 bit.
Configuration menu - View commit details
-
Copy full SHA for 61bf4ac - Browse repository at this point
Copy the full SHA 61bf4acView commit details -
Lucene.Net.Index::DocumentsWriter: Added a constant TryLockTimeoutMil…
…liseconds that is used by callers of ReentrantLock.TryLock() to set the default value.
Configuration menu - View commit details
-
Copy full SHA for 6f2e129 - Browse repository at this point
Copy the full SHA 6f2e129View commit details -
Lucene.Net.Support: Added QueueExtensions class to polyfill the missi…
…ng TryDequeue() and TryPeek() methods on netstandard2.0 and .NET Framework
Configuration menu - View commit details
-
Copy full SHA for d18d9b7 - Browse repository at this point
Copy the full SHA d18d9b7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8423edc - Browse repository at this point
Copy the full SHA 8423edcView commit details -
Lucene.Net.Support.Threading.ReentrantLock: Changed the implementatio…
…n to use unfair locking similar to how it was done in Java. We track the queue and use ManualResetEventSlim to control entry into the lock for queued tasks. Ported some of the ReentrantLock tests from Apache Harmony.
Configuration menu - View commit details
-
Copy full SHA for 89b01e6 - Browse repository at this point
Copy the full SHA 89b01e6View commit details -
Revert "Lucene.Net.Support: Added QueueExtensions class to polyfill t…
…he missing TryDequeue() and TryPeek() methods on netstandard2.0 and .NET Framework" This reverts commit e5a65e9cd8bbf996fb599ff76e8d6b9f90babe4b.
Configuration menu - View commit details
-
Copy full SHA for 3074564 - Browse repository at this point
Copy the full SHA 3074564View commit details -
Configuration menu - View commit details
-
Copy full SHA for e788218 - Browse repository at this point
Copy the full SHA e788218View commit details -
Lucene.Net.Support.Threading.ReentrantLock::Lock(): Use Uninterruptab…
…leMonitor.TryEnter() instead of UninterruptableMonitor.Enter() so we can control what happens while the thread waits. We simply call Thread.Yield() to allow TryLock() to proceed before any waiting threads. Commented tests that depend on IsLocked because the property was removed.
Configuration menu - View commit details
-
Copy full SHA for ce7516d - Browse repository at this point
Copy the full SHA ce7516dView commit details -
Revert "run-tests-on-os.yml: Increase blame hang timeout so we can ru…
…n a longer test (to be reverted)" This reverts commit b30e4abb576c8bfde3337a92de927a10747f88ae.
Configuration menu - View commit details
-
Copy full SHA for 53b83c2 - Browse repository at this point
Copy the full SHA 53b83c2View commit details -
Revert "Lucene.Net.Index.TestRollingUpdates::TestUpdateSameDoc(): Add…
…ed [Repeat(1000)] to try to reproduce on Azure DevOps (to be reverted)." This reverts commit d8fca410dafd1bf5529e8200034e1e2e5be83f07.
Configuration menu - View commit details
-
Copy full SHA for 5f7c1e9 - Browse repository at this point
Copy the full SHA 5f7c1e9View commit details
Commits on May 24, 2024
-
Lucene.Net.Support.Threading.ReentrantLockTest::TestUnlock_IllegalMon…
…itorStateException() Removed unused exception variable and added a comment to indicate success so we don't have to suppress warnings
Configuration menu - View commit details
-
Copy full SHA for 4e1dcc9 - Browse repository at this point
Copy the full SHA 4e1dcc9View commit details
Commits on Aug 12, 2024
-
Lucene.Net.Support.Threading.UninterruptableMonitor: Elminated RetryE…
…nter() recursive methods to avoid overflowing the stack and moved the logic into the catch blocks. Also added documentation.
Configuration menu - View commit details
-
Copy full SHA for d1c0762 - Browse repository at this point
Copy the full SHA d1c0762View commit details