Branch: refs/heads/6.1
Home:
https://github.com/hibernate/hibernate-search
Commit: 92caf4eb851b5d6cb431691a909c6bed7faeec84
https://github.com/hibernate/hibernate-search/commit/92caf4eb851b5d6cb431...
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: 64b1fe25fdae7ed389eb2651bedab747b5bd8b2e
https://github.com/hibernate/hibernate-search/commit/64b1fe25fdae7ed389eb...
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: 256051d2fc227c3b7b887709d6af5f8e0274aea1
https://github.com/hibernate/hibernate-search/commit/256051d2fc227c3b7b88...
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: 2ba6c955638dc5ad41c48ecbb598a3fa40a65023
https://github.com/hibernate/hibernate-search/commit/2ba6c955638dc5ad41c4...
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/f43485e3a522...2ba6...