[ 
https://issues.apache.org/jira/browse/IGNITE-7122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16284224#comment-16284224
 ] 

Igor Seliverstov edited comment on IGNITE-7122 at 12/8/17 9:15 PM:
-------------------------------------------------------------------

[~kirill.shirokov], returned from {{readLock(..)}} zero doesn't mean that page 
is locked. This method will wait until whether write lock is freed or page is 
recycled, so that <locked> output is incorrect. Such node must be just skipped.


was (Author: gvvinblade):
[~kirill.shirokov], returned from {{readLock(..)}} zero doesn't mean that page 
is locked. This method will wait until whether write lock is freed or page is 
recycled, so that {{ <locked> }} output is incorrect. Such node must be just 
skipped.

> Page lock status is not checked in BPlusTree.treePrinter methods
> ----------------------------------------------------------------
>
>                 Key: IGNITE-7122
>                 URL: https://issues.apache.org/jira/browse/IGNITE-7122
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql
>    Affects Versions: 2.4
>            Reporter: Kirill Shirokov
>            Assignee: Kirill Shirokov
>
> The result of readLock(), which can be 0 is not checked in 
> BPlusTree.treePrinter getChildren() and formatTreeNode() calls:
> {noformat}
> java.lang.AssertionError: 0
>     at 
> org.apache.ignite.internal.pagemem.PageUtils.getLong(PageUtils.java:117)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO.getPageId(PageIO.java:279)
>     at 
> org.apache.ignite.internal.processors.database.BPlusTreeSelfTest.checkPageId(BPlusTreeSelfTest.java:2307)
>     at 
> org.apache.ignite.internal.processors.database.BPlusTreeSelfTest$TestTree.onReadUnlock(BPlusTreeSelfTest.java:2445)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.util.PageHandler.readUnlock(PageHandler.java:203)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.DataStructure.readUnlock(DataStructure.java:186)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.access$400(BPlusTree.java:82)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$1.getChildren(BPlusTree.java:163)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$1.getChildren(BPlusTree.java:120)
>     at 
> org.apache.ignite.internal.util.lang.GridTreePrinter.printTree(GridTreePrinter.java:60)
>     at 
> org.apache.ignite.internal.util.lang.GridTreePrinter.printTree(GridTreePrinter.java:67)
>     at 
> org.apache.ignite.internal.util.lang.GridTreePrinter.print(GridTreePrinter.java:32)
>     at 
> org.apache.ignite.internal.util.lang.GridTreePrinter.print(GridTreePrinter.java:43)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.printTree(BPlusTree.java:1188)
>     at 
> org.apache.ignite.internal.processors.database.BPlusTreeSelfTest$19.call(BPlusTreeSelfTest.java:1777)
>     at 
> org.apache.ignite.internal.processors.database.BPlusTreeSelfTest$19.call(BPlusTreeSelfTest.java:1771)
>     at 
> org.apache.ignite.testframework.GridTestThread.run(GridTestThread.java:86)
> {noformat}
> ...which causes intermittent failures in the BPlusTree unit tests:
> BPlusTreePageMemoryImplTest.testPutRmvSizeSinglePageContention        
> BPlusTreeReuseListPageMemoryImplTest.testPutRmvSizeSinglePageContention 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to