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