[
https://issues.apache.org/jira/browse/IGNITE-16653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17511634#comment-17511634
]
Kirill Tkalenko commented on IGNITE-16653:
------------------------------------------
As a result of debugging, I found that writers (threads that invoke
*BplusTree#put* and *BplusTree#remove*) want to update one and the same page
(*BplusLeafIo*), they need to acquire a writing lock for this page, but they
fail (they do not have time) because readers (threads that invoke
*BplusTree#size(TreeRowClosure)*) quickly acquire a reading lock for this page,
*OffheapReadWriteLock* does not use a fair lock.
[~ibessonov] Please make code review.
> Fix flaky ItBplusTreeFakeReuseSelfTest#testPutSizeLivelock
> ----------------------------------------------------------
>
> Key: IGNITE-16653
> URL: https://issues.apache.org/jira/browse/IGNITE-16653
> Project: Ignite
> Issue Type: Task
> Reporter: Kirill Tkalenko
> Assignee: Kirill Tkalenko
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-alpha5
>
> Attachments: _Integration_Tests_Module_Page_Memory_72.log.zip
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> Flaky
> [ItBplusTreeFakeReuseSelfTest#testPutSizeLivelock|https://ci.ignite.apache.org/viewLog.html?buildId=6445190&tab=buildResultsDiv&buildTypeId=ignite3_Test_IntegrationTests_ModulePageMemory#testNameId-8377900828894907526]
> found, I'm attaching the
> [^_Integration_Tests_Module_Page_Memory_72.log.zip].
> It is necessary to understand the reason and add a timeout for executing
> tests and dumping threads.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)