Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-1053

Test occasionally hanging around use of ReflectiveRelMetadataProvider

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.6.0
    • Component/s: core
    • Labels:
      None

      Description

      I've started seeing some tests (JdbcTest and JdbcFrontLinqBackTest) in calcite-core hanging now and again:

      "pool-1-thread-1" prio=5 tid=0x00007fd50611e800 nid=0x5103 runnable [0x0000000115b81000]
         java.lang.Thread.State: RUNNABLE
          at java.util.HashMap.getEntry(HashMap.java:465)
          at java.util.HashMap.get(HashMap.java:417)
          at org.apache.calcite.rel.metadata.ReflectiveRelMetadataProvider.apply(ReflectiveRelMetadataProvider.java:289)
          at org.apache.calcite.rel.metadata.ReflectiveRelMetadataProvider.apply(ReflectiveRelMetadataProvider.java:278)
          at org.apache.calcite.rel.metadata.ChainedRelMetadataProvider.apply(ChainedRelMetadataProvider.java:63)
          at org.apache.calcite.rel.metadata.ChainedRelMetadataProvider.apply(ChainedRelMetadataProvider.java:63)
          at org.apache.calcite.rel.metadata.ChainedRelMetadataProvider.apply(ChainedRelMetadataProvider.java:63)
          at org.apache.calcite.rel.metadata.MetadataFactoryImpl$2.load(MetadataFactoryImpl.java:57)
          at org.apache.calcite.rel.metadata.MetadataFactoryImpl$2.load(MetadataFactoryImpl.java:54)
          at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
          at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
          at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
          - locked <0x00000007e1287590> (a com.google.common.cache.LocalCache$StrongEntry)
          at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
          at com.google.common.cache.LocalCache.get(LocalCache.java:4000)
          at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004)
          at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
          at org.apache.calcite.rel.metadata.MetadataFactoryImpl.query(MetadataFactoryImpl.java:71)
          at org.apache.calcite.rel.AbstractRelNode.metadata(AbstractRelNode.java:296)
          at org.apache.calcite.rel.metadata.RelMetadataQuery.getNonCumulativeCost(RelMetadataQuery.java:140)
      
      "pool-1-thread-6" prio=5 tid=0x00007fd50684c000 nid=0x5d03 runnable [0x0000000116193000]
         java.lang.Thread.State: RUNNABLE
          at java.util.HashMap.put(HashMap.java:494)
          at org.apache.calcite.rel.metadata.ReflectiveRelMetadataProvider.apply(ReflectiveRelMetadataProvider.java:292)
          at org.apache.calcite.rel.metadata.ReflectiveRelMetadataProvider.apply(ReflectiveRelMetadataProvider.java:278)
          at org.apache.calcite.rel.metadata.ChainedRelMetadataProvider.apply(ChainedRelMetadataProvider.java:63)
          at org.apache.calcite.rel.metadata.ChainedRelMetadataProvider.apply(ChainedRelMetadataProvider.java:63)
          at org.apache.calcite.rel.metadata.MetadataFactoryImpl$2.load(MetadataFactoryImpl.java:57)
          at org.apache.calcite.rel.metadata.MetadataFactoryImpl$2.load(MetadataFactoryImpl.java:54)
          at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
          at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
          at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
          - locked <0x00000007a0fa41a0> (a com.google.common.cache.LocalCache$StrongEntry)
          at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
          at com.google.common.cache.LocalCache.get(LocalCache.java:4000)
          at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004)
          at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
          at org.apache.calcite.rel.metadata.MetadataFactoryImpl.query(MetadataFactoryImpl.java:71)
          at org.apache.calcite.rel.AbstractRelNode.metadata(AbstractRelNode.java:296)
          at org.apache.calcite.rel.metadata.RelMetadataQuery.getNonCumulativeCost(RelMetadataQuery.java:140) 
      

        Activity

        Hide
        elserj Josh Elser added a comment -

        Thanks for fixing Vladimir Sitnikov.

        https://github.com/apache/calcite/commit/fe91d46761f460927b21ef334fee5e686b54e397

        Please don't forget to add the JIRA issue when you make a commit in the future (e.g. "CALCITE-1053 Fix CPU spin in ReflectiveRelMetadataProvider.apply -> HashMap.get")

        Show
        elserj Josh Elser added a comment - Thanks for fixing Vladimir Sitnikov . https://github.com/apache/calcite/commit/fe91d46761f460927b21ef334fee5e686b54e397 Please don't forget to add the JIRA issue when you make a commit in the future (e.g. " CALCITE-1053 Fix CPU spin in ReflectiveRelMetadataProvider.apply -> HashMap.get")
        Hide
        julianhyde Julian Hyde added a comment -
        Show
        julianhyde Julian Hyde added a comment - I have revised the commit comment: http://git-wip-us.apache.org/repos/asf/calcite/commit/2712d7da
        Hide
        julianhyde Julian Hyde added a comment -

        Resolved in release 1.6.0 (2016-01-22).

        Show
        julianhyde Julian Hyde added a comment - Resolved in release 1.6.0 (2016-01-22).

          People

          • Assignee:
            vladimirsitnikov Vladimir Sitnikov
            Reporter:
            elserj Josh Elser
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development