Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-12683

BPlusTreeReuseListPageMemoryImplTest.testIterateConcurrentPutRemove_2 fails with timeout on TC

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.9
    • Fix Version/s: 2.9
    • Component/s: None

      Description

      BPlusTreeReuseListPageMemoryImplTest.testIterateConcurrentPutRemove_2 flaky fails on master branch with a high failure rate: https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8&testNameId=-7895536196794411367&tab=testDetails&branch_IgniteTests24Java8=%3Cdefault%3E

      Stacktrace example (nothing hanging):

      Thread [name="test-runner-#79734%pagemem.BPlusTreeReuseListPageMemoryImplTest%", id=97908, state=RUNNABLE, blockCnt=34056, waitCnt=431]
              at org.jsr166.ConcurrentLinkedDeque8.unlinkLast(ConcurrentLinkedDeque8.java:727)
              at org.jsr166.ConcurrentLinkedDeque8.unlink(ConcurrentLinkedDeque8.java:580)
              at org.jsr166.ConcurrentLinkedDeque8.unlinkx(ConcurrentLinkedDeque8.java:554)
              at org.jsr166.ConcurrentLinkedHashMap$Segment.removeLocked(ConcurrentLinkedHashMap.java:978)
              at org.jsr166.ConcurrentLinkedHashMap$Segment.remove(ConcurrentLinkedHashMap.java:901)
              at org.jsr166.ConcurrentLinkedHashMap.remove(ConcurrentLinkedHashMap.java:1466)
              at o.a.i.i.processors.database.BPlusTreeSelfTest$TestPageLockListener.onReadUnlock(BPlusTreeSelfTest.java:3113)
              at o.a.i.i.processors.cache.persistence.tree.util.PageHandler.readUnlock(PageHandler.java:215)
              at o.a.i.i.processors.cache.persistence.tree.util.PageHandler.readPage(PageHandler.java:173)
              at o.a.i.i.processors.cache.persistence.DataStructure.read(DataStructure.java:364)
              at o.a.i.i.processors.cache.persistence.tree.BPlusTree.read(BPlusTree.java:6071)
              at o.a.i.i.processors.cache.persistence.tree.BPlusTree.putDown(BPlusTree.java:2769)
              at o.a.i.i.processors.cache.persistence.tree.BPlusTree.doPut(BPlusTree.java:2405)
              at o.a.i.i.processors.cache.persistence.tree.BPlusTree.put(BPlusTree.java:2376)
              at o.a.i.i.processors.database.BPlusTreeSelfTest.iterateConcurrentPutRemove(BPlusTreeSelfTest.java:2412)
              at o.a.i.i.processors.database.BPlusTreeSelfTest.testIterateConcurrentPutRemove_2(BPlusTreeSelfTest.java:2272)
              at java.base@10.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at java.base@10.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at java.base@10.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.base@10.0.2/java.lang.reflect.Method.invoke(Method.java:564)
              at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
              at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
              at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
              at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
              at o.a.i.testframework.junits.GridAbstractTest$7.run(GridAbstractTest.java:2212)
              at java.base@10.0.2/java.lang.Thread.run(Thread.java:844)

      It seems that sometimes current agents are not fast enough to execute this test in 5 mins.

      (first execution on this image (4 march 2019 / 2m 33s) was on the agent "publicagent12_9091", which is not available now)

      (BPlusTreePageMemoryImplTest.testIterateConcurrentPutRemove_2 also fails for the same reason https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8&testNameId=-3485591522651012009&tab=testDetails&branch_IgniteTests24Java8=%3Cdefault%3E)

      I compared master with ignite-2.7.6 (with MAX_PER_PAGE=2) and found locally about ~10% performance difference in test execution.

      With disabled page lock tracker (IGNITE_PAGE_LOCK_TRACKER_TYPE=-1) there is no difference in test execution time.

        Attachments

        1. image-2020-02-14-16-09-32-405.png
          55 kB
          Pavel Pereslegin

          Issue Links

            Activity

              People

              • Assignee:
                xtern Pavel Pereslegin
                Reporter:
                xtern Pavel Pereslegin
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 40m
                  40m