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

CalciteQueryProcessorTest#testInfixTypeCast frequently fails, getting too old cached affinity

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • sql
    • Docs Required, Release Notes Required

    Description

      Subj is flaky on latest sql-calcite, failing during executing select query with following trace:

      java.lang.IllegalStateException: Getting affinity for too old topology version that is already out of history [locNode=TcpDiscoveryNode [id=0e578517-57f9-4e64-a535-1fa623800001, consistentId=127.0.0.1:47501, addrs=ArrayList [127.0.0.1], sockAddrs=HashSet [/127.0.0.1:47501], discPort=47501, order=2, intOrder=2, lastExchangeTime=1624444115374, loc=true, ver=2.11.0#20210622-sha1:22a4aa1f, isClient=false], grp=SQL_PUBLIC_TEST_TBL, topVer=AffinityTopologyVersion [topVer=6, minorTopVer=0], lastAffChangeTopVer=AffinityTopologyVersion [topVer=5, minorTopVer=1], head=AffinityTopologyVersion [topVer=6, minorTopVer=1], history=[AffinityTopologyVersion [topVer=6, minorTopVer=1]]]
      
      	at org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.cachedAffinity(GridAffinityAssignmentCache.java:831)
      	at org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.cachedAffinity(GridAffinityAssignmentCache.java:778)
      	at org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.assignments(GridAffinityAssignmentCache.java:618)
      	at org.apache.ignite.internal.processors.cache.GridCacheAffinityManager.assignments(GridCacheAffinityManager.java:131)
      	at org.apache.ignite.internal.processors.query.calcite.schema.TableDescriptorImpl.partitionedGroup(TableDescriptorImpl.java:541)
      	at org.apache.ignite.internal.processors.query.calcite.schema.TableDescriptorImpl.colocationGroup(TableDescriptorImpl.java:529)
      	at org.apache.ignite.internal.processors.query.calcite.schema.IgniteTableImpl.colocationGroup(IgniteTableImpl.java:148)
      	at org.apache.ignite.internal.processors.query.calcite.metadata.IgniteMdFragmentMapping.fragmentMapping(IgniteMdFragmentMapping.java:198)
      	at GeneratedMetadataHandler_FragmentMappingMetadata.fragmentMapping_$(Unknown Source)
      	at GeneratedMetadataHandler_FragmentMappingMetadata.fragmentMapping(Unknown Source)
      	at org.apache.ignite.internal.processors.query.calcite.metadata.RelMetadataQueryEx.fragmentMapping(RelMetadataQueryEx.java:97)
      	at org.apache.ignite.internal.processors.query.calcite.metadata.IgniteMdFragmentMapping._fragmentMapping(IgniteMdFragmentMapping.java:224)
      	at org.apache.ignite.internal.processors.query.calcite.metadata.IgniteMdFragmentMapping.fragmentMapping(IgniteMdFragmentMapping.java:85)
      	at GeneratedMetadataHandler_FragmentMappingMetadata.fragmentMapping_$(Unknown Source)
      	at GeneratedMetadataHandler_FragmentMappingMetadata.fragmentMapping(Unknown Source)
      	at org.apache.ignite.internal.processors.query.calcite.metadata.RelMetadataQueryEx.fragmentMapping(RelMetadataQueryEx.java:97)
      	at org.apache.ignite.internal.processors.query.calcite.metadata.IgniteMdFragmentMapping._fragmentMapping(IgniteMdFragmentMapping.java:224)
      	at org.apache.ignite.internal.processors.query.calcite.prepare.Fragment.mapping(Fragment.java:154)
      	at org.apache.ignite.internal.processors.query.calcite.prepare.Fragment.map(Fragment.java:148)
      	at org.apache.ignite.internal.processors.query.calcite.prepare.QueryTemplate.map(QueryTemplate.java:95)
      	at org.apache.ignite.internal.processors.query.calcite.prepare.QueryTemplate.map(QueryTemplate.java:71)
      	at org.apache.ignite.internal.processors.query.calcite.prepare.AbstractMultiStepPlan.init(AbstractMultiStepPlan.java:92)
      	at org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.executeQuery(ExecutionServiceImpl.java:680)
      	at org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.executePlan(ExecutionServiceImpl.java:654)
      	at org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.executePlans(ExecutionServiceImpl.java:410)
      	at org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.executeQuery(ExecutionServiceImpl.java:392)
      	at org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.query(CalciteQueryProcessor.java:258)
      	at org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessorTest.testInfixTypeCast(CalciteQueryProcessorTest.java:1031)
      	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
      	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
      	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
      	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      	at org.apache.ignite.testframework.junits.GridAbstractTest$7.run(GridAbstractTest.java:2432)
      	at java.base/java.lang.Thread.run(Thread.java:829)
      
      

      Workaround is to wait for affinity ready future (i.e awaitPartitionMapExchange())

      Attachments

        Activity

          People

            Unassigned Unassigned
            ivandasch Ivan Daschinsky
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: