[ 
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)

Reply via email to