You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This test is failing due to a deadlock situation introduced with this PR because of the introduced blocking refresh. This is because this method is holding the metadataLock on the store while invoking consumer.accept(buildSegmentInfos(infosBytes, segmentsGen)); which loads the newly built SegmentInfos onto the DirectoryReader and invokes maybeRefreshBlocking. If a concurrent scheduled refresh is invoked before updateSegments is able to aquire the refresh lock, it will block until the scheduled refresh completes, however if the scheduled refresh swaps the SegmentInfos reference it will decRef the previous DirectoryReader that in turn tries to blockingly acquire the metadataLock.
The text was updated successfully, but these errors were encountered:
#8827 (comment)
This test is failing due to a deadlock situation introduced with this PR because of the introduced blocking refresh. This is because this method is holding the metadataLock on the store while invoking
consumer.accept(buildSegmentInfos(infosBytes, segmentsGen));
which loads the newly built SegmentInfos onto the DirectoryReader and invokes maybeRefreshBlocking. If a concurrent scheduled refresh is invoked before updateSegments is able to aquire the refresh lock, it will block until the scheduled refresh completes, however if the scheduled refresh swaps the SegmentInfos reference it will decRef the previous DirectoryReader that in turn tries to blockingly acquire the metadataLock.The text was updated successfully, but these errors were encountered: