Branch: refs/heads/main
Home:
https://github.com/hibernate/hibernate-search
Commit: abb24b8b8040f3fe5db48964b3fd887749af02b6
https://github.com/hibernate/hibernate-search/commit/abb24b8b8040f3fe5db4...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2022-07-27 (Wed, 27 Jul 2022)
Changed paths:
M engine/src/main/java/org/hibernate/search/engine/logging/impl/Log.java
M
engine/src/main/java/org/hibernate/search/engine/reporting/spi/RootFailureCollector.java
A
engine/src/test/java/org/hibernate/search/engine/reporting/spi/RootFailureCollectorTest.java
Log Message:
-----------
HSEARCH-4654 Ensure the failure limit in RootFailureCollector actually stops failure
collection
Previously it was only triggering an exception in the hope that this
would make Hibernate Search bootstrap fail, which could lead to awkward
situations when the exception about the failure limit was itself added
to the failure report.
Commit: 1ff08a25389a4bed025d310714e7e4c36193d4ce
https://github.com/hibernate/hibernate-search/commit/1ff08a25389a4bed025d...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2022-07-27 (Wed, 27 Jul 2022)
Changed paths:
M engine/src/main/java/org/hibernate/search/engine/logging/impl/Log.java
M
engine/src/main/java/org/hibernate/search/engine/reporting/spi/RootFailureCollector.java
M
engine/src/test/java/org/hibernate/search/engine/reporting/spi/RootFailureCollectorTest.java
Log Message:
-----------
HSEARCH-4654 Add an entry to the failure report instead of throwing an exception when
reaching the failure limit in RootFailureCollector
The rendering of the failure report in that exception used to lead to
a deadlock, because we would:
* lock on a child to add a failure
* check on the root whether there are more failures than the limit<
* lock on the root to access the children
* try to lock on each child one after the other,
to render their failures and include that in the "failure limit
reached" exception message
So we can't render the failure report for that exception. But if that
exception doesn't include the failure report in its message, then we run
the risk of aborting Hibernate Search bootstrap without
There were other potential problems with throwing an exception, as the
risk of ending up adding that exception to the failure report because of
surrounding try blocks; which would not alter the failure report, of
course, but would still be logged, and would throw another exception
about exceeding the failure limit. This could result in very verbose
logs.
So, the easiest solution is probably to just add a simple message to the
error report, and to proceed with whatever we were doing, until we
finally end up checking the error report and abort, displaying the error
report along with a mention that there were too many failures to report.
Commit: d98f747725d8be4afc4b4ae14733ada669b21cec
https://github.com/hibernate/hibernate-search/commit/d98f747725d8be4afc4b...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2022-07-27 (Wed, 27 Jul 2022)
Changed paths:
M
engine/src/test/java/org/hibernate/search/engine/reporting/spi/RootFailureCollectorTest.java
Log Message:
-----------
HSEARCH-4654 Test for deadlocks in RootFailureCollector
Commit: 7a224bf553edecf61e154928b317ed8b3a5c5733
https://github.com/hibernate/hibernate-search/commit/7a224bf553edecf61e15...
Author: Yoann Rodière <yoann(a)hibernate.org>
Date: 2022-07-27 (Wed, 27 Jul 2022)
Changed paths:
M
engine/src/main/java/org/hibernate/search/engine/reporting/spi/RootFailureCollector.java
A
util/common/src/main/java/org/hibernate/search/util/common/data/impl/InsertionOrder.java
A
util/common/src/test/java/org/hibernate/search/util/common/data/impl/InsertionOrderTest.java
Log Message:
-----------
HSEARCH-4654 Avoid blocking code in RootFailureCollector
Since we call this code from reactor threads ("reactive event loops"),
it's better if it doesn't block.
Compare:
https://github.com/hibernate/hibernate-search/compare/58256b689cc2...7a22...