Thanks for the insight, it did help indeed.

I’ve added `org/apache/calcite**` and `org/apache/flink**` to the exclude-list 
in the `prepare-agent` goal of the jacoco-maven-plugin and that did the trick.

Regards,
Fred

From: Aniket Sule <aniket.s...@netwitness.com>
Date: Wednesday, 6 September 2023 at 21:07
To: Teunissen, F.G.J. (Fred) <fred.teunis...@ing.com>, user@flink.apache.org 
<user@flink.apache.org>
Subject: RE: Strange exception in UnitTest when migrate Flink v1.16.2 to v1.17.1
Hello,
You could look at https://github.com/hazelcast/hazelcast/issues/20945 to see if 
the workaround in the linked commit helps.
I had faced test failures in upgrading from Flink 1.16 to 1.17, and that 
workaround resolved the test failures.

Hope this helps.

Regards
Aniket

From: Teunissen, F.G.J. (Fred) via user <user@flink.apache.org>
Sent: Wednesday, September 6, 2023 6:45 AM
To: user@flink.apache.org
Subject: Strange exception in UnitTest when migrate Flink v1.16.2 to v1.17.1

CAUTION:External email. Do not click or open attachments unless you know and 
trust the sender.

Hi community,

I would like to ask for some help in solving a strange failure in a Unit Test 
when code coverage (jacoco) is enabled.

We have a project with a custom UDF that uses the MiniClusterExtension in a 
Unit Test. The Unit Test works fine when built for Flink v1.16.2, but it fails 
when built for Flink v1.17.1.

The strange part is that it only fails when code coverage is enabled. When code 
coverage is skipped, the test succeeds.

The following exception is thrown when it fails:
java.lang.IllegalArgumentException: fromIndex(2) > toIndex(0)
        at 
java.base/java.util.AbstractList.subListRangeCheck(AbstractList.java:509)
        at java.base/java.util.AbstractList.subList(AbstractList.java:497)
        at 
org.apache.calcite.rel.metadata.janino.CacheGeneratorUtil$CacheKeyStrategy$1.safeArgList(CacheGeneratorUtil.java:213)
        at 
org.apache.calcite.rel.metadata.janino.CacheGeneratorUtil$CacheKeyStrategy$1.cacheKeyBlock(CacheGeneratorUtil.java:205)
        at 
org.apache.calcite.rel.metadata.janino.CacheGeneratorUtil.cachedMethod(CacheGeneratorUtil.java:68)
        at 
org.apache.calcite.rel.metadata.janino.RelMetadataHandlerGeneratorUtil.generateHandler(RelMetadataHandlerGeneratorUtil.java:121)
        at 
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.generateCompileAndInstantiate(JaninoRelMetadataProvider.java:138)
        at 
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.lambda$static$0(JaninoRelMetadataProvider.java:73)
        at 
org.apache.flink.calcite.shaded.com.google.common.cache.CacheLoader$FunctionToCacheLoader.load(CacheLoader.java:165)
        at 
org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
        at 
org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
        at 
org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
        at 
org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
        at 
org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache.get(LocalCache.java:3951)
        at 
org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3974)
        at 
org.apache.flink.calcite.shaded.com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4958)
        at 
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.revise(JaninoRelMetadataProvider.java:197)
        at 
org.apache.calcite.rel.metadata.RelMetadataQueryBase.revise(RelMetadataQueryBase.java:118)
        at 
org.apache.calcite.rel.metadata.RelMetadataQuery.getPulledUpPredicates(RelMetadataQuery.java:844)
        at 
org.apache.calcite.rel.rules.ReduceExpressionsRule$ProjectReduceExpressionsRule.onMatch(ReduceExpressionsRule.java:307)
        at 
org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:337)
        at org.apache.calcite.plan.hep.HepPlanner.applyRule(HepPlanner.java:565)
        at 
org.apache.calcite.plan.hep.HepPlanner.applyRules(HepPlanner.java:428)
        at 
org.apache.calcite.plan.hep.HepPlanner.executeInstruction(HepPlanner.java:251)
        at 
org.apache.calcite.plan.hep.HepInstruction$RuleInstance.execute(HepInstruction.java:130)
        at 
org.apache.calcite.plan.hep.HepPlanner.executeProgram(HepPlanner.java:208)
        at 
org.apache.calcite.plan.hep.HepPlanner.findBestExp(HepPlanner.java:195)
        at 
org.apache.flink.table.planner.plan.optimize.program.FlinkHepProgram.optimize(FlinkHepProgram.scala:64)
        at 
org.apache.flink.table.planner.plan.optimize.program.FlinkHepRuleSetProgram.optimize(FlinkHepRuleSetProgram.scala:78)
        at 
org.apache.flink.table.planner.plan.optimize.program.FlinkChainedProgram.$anonfun$optimize$1(FlinkChainedProgram.scala:59)
        at 
scala.collection.TraversableOnce.$anonfun$foldLeft$1(TraversableOnce.scala:156)
        at 
scala.collection.TraversableOnce.$anonfun$foldLeft$1$adapted(TraversableOnce.scala:156)
        at scala.collection.Iterator.foreach(Iterator.scala:937)
        at scala.collection.Iterator.foreach$(Iterator.scala:937)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1425)
        at scala.collection.IterableLike.foreach(IterableLike.scala:70)
        at scala.collection.IterableLike.foreach$(IterableLike.scala:69)
        at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
        at scala.collection.TraversableOnce.foldLeft(TraversableOnce.scala:156)
        at scala.collection.TraversableOnce.foldLeft$(TraversableOnce.scala:154)
        at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:104)
        at 
org.apache.flink.table.planner.plan.optimize.program.FlinkChainedProgram.optimize(FlinkChainedProgram.scala:55)
        at 
org.apache.flink.table.planner.plan.optimize.StreamCommonSubGraphBasedOptimizer.optimizeTree(StreamCommonSubGraphBasedOptimizer.scala:176)
        at 
org.apache.flink.table.planner.plan.optimize.StreamCommonSubGraphBasedOptimizer.doOptimize(StreamCommonSubGraphBasedOptimizer.scala:83)
        at 
org.apache.flink.table.planner.plan.optimize.CommonSubGraphBasedOptimizer.optimize(CommonSubGraphBasedOptimizer.scala:87)
        at 
org.apache.flink.table.planner.delegation.PlannerBase.optimize(PlannerBase.scala:329)
        at 
org.apache.flink.table.planner.delegation.PlannerBase.translate(PlannerBase.scala:195)
        at 
org.apache.flink.table.api.internal.TableEnvironmentImpl.translate(TableEnvironmentImpl.java:1803)
        at 
org.apache.flink.table.api.internal.TableEnvironmentImpl.executeQueryOperation(TableEnvironmentImpl.java:945)
        at 
org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:1422)
        at 
org.apache.flink.table.api.internal.TableEnvironmentImpl.executeSql(TableEnvironmentImpl.java:765)
        at nl.ing.issue.ArrayAGGTest.executeSql(ArrayAGGTest.java:83)
        at nl.ing.issue.ArrayAGGTest.stringAggregation(ArrayAGGTest.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)

I’ve reproduced this error in a small test project which can be found on 
github<https://github.com/FredTing/UnitTestUdfIssue>.

-----------------------------------------------------------------

ATTENTION:

The information in this e-mail is confidential and only meant for the intended 
recipient. If you are not the intended recipient, don't use or disclose it in 
any way. Please let the sender know and delete the message immediately.

-----------------------------------------------------------------
Caution: External email. Do not click or open attachments unless you know and 
trust the sender.

-----------------------------------------------------------------
ATTENTION:
The information in this e-mail is confidential and only meant for the intended 
recipient. If you are not the intended recipient, don't use or disclose it in 
any way. Please let the sender know and delete the message immediately.
-----------------------------------------------------------------

Reply via email to