I am running a Flink application in Java that performs window aggregation.
The query runs successfully on Flink 1.14.4. However, after upgrading to
Flink 1.15.0 and switching the code to use Windowing TVF, it fails with a
runtime error as planner can not compile and instantiate window Aggs
Handler code.
It seems the generated table program code is invalid and can not be
compiled by janino's SimpleCompiler to get executable runtime code.

Is there any specific change required to go from Flink 1.14.4 to 1.15.0,
beside upgrading maven dependencies?

Here is the query:

tableEnv.createTemporaryView("myTable", table);
String sql = " SELECT window_start, window_end, userid, count(pageid) AS
pgcnt FROM TABLE(TUMBLE(TABLE myTable, DESCRIPTOR(rowtime), INTERVAL '5'
SECONDS)) WHERE (p_userid <> 'User_6') GROUP BY window_start, window_end,
userid";
final Table result = tableEnv.sqlQuery(sql);
result.execute().print();

Here is the error stack trace:

Caused by: java.lang.RuntimeException: Could not instantiate generated class
'LocalWindowAggsHandler$34'
at org.apache.flink.table.runtime.generated.GeneratedClass.newInstance(
GeneratedClass.java:74)
at org.apache.flink.table.runtime.operators.aggregate.window.combines.
LocalAggCombiner$Factory.createRecordsCombiner(LocalAggCombiner.java:127)
at org.apache.flink.table.runtime.operators.aggregate.window.buffers.
RecordsWindowBuffer$LocalFactory.create(RecordsWindowBuffer.java:204)
at org.apache.flink.table.runtime.operators.aggregate.window.
LocalSlicingWindowAggOperator.open(LocalSlicingWindowAggOperator.java:101)
at org.apache.flink.streaming.runtime.tasks.RegularOperatorChain
.initializeStateAndOpenOperators(RegularOperatorChain.java:107)
at org.apache.flink.streaming.runtime.tasks.StreamTask.restoreGates(
StreamTask.java:700)
at org.apache.flink.streaming.runtime.tasks.StreamTaskActionExecutor$1.call(
StreamTaskActionExecutor.java:55)
at org.apache.flink.streaming.runtime.tasks.StreamTask.restoreInternal(
StreamTask.java:676)
at org.apache.flink.streaming.runtime.tasks.StreamTask.restore(StreamTask
.java:643)
at org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(
Task.java:948)
at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:917)
at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:741)
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:563)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.apache.flink.util.FlinkRuntimeException:
org.apache.flink.api.common.InvalidProgramException: Table program cannot
be compiled. This is a bug. Please file an issue.
at org.apache.flink.table.runtime.generated.CompileUtils.compile(
CompileUtils.java:94)
at org.apache.flink.table.runtime.generated.GeneratedClass.compile(
GeneratedClass.java:101)
at org.apache.flink.table.runtime.generated.GeneratedClass.newInstance(
GeneratedClass.java:68)
... 13 more
Caused by:
org.apache.flink.shaded.guava30.com.google.common.util.concurrent.
UncheckedExecutionException: org.apache.flink.api.common.
InvalidProgramException: Table program cannot be compiled. This is a bug.
Please file an issue.
at org.apache.flink.shaded.guava30.com.google.common.cache.
LocalCache$Segment.get(LocalCache.java:2051)
at org.apache.flink.shaded.guava30.com.google.common.cache.LocalCache.get(
LocalCache.java:3962)
at org.apache.flink.shaded.guava30.com.google.common.cache.
LocalCache$LocalManualCache.get(LocalCache.java:4859)
at org.apache.flink.table.runtime.generated.CompileUtils.compile(
CompileUtils.java:92)
... 15 more
Caused by: org.apache.flink.api.common.InvalidProgramException: Table
program cannot be compiled. This is a bug. Please file an issue.
at org.apache.flink.table.runtime.generated.CompileUtils.doCompile(
CompileUtils.java:107)
at org.apache.flink.table.runtime.generated.CompileUtils.lambda$compile$0(
CompileUtils.java:92)
at org.apache.flink.shaded.guava30.com.google.common.cache.
LocalCache$LocalManualCache$1.load(LocalCache.java:4864)
at org.apache.flink.shaded.guava30.com.google.common.cache.
LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
at org.apache.flink.shaded.guava30.com.google.common.cache.
LocalCache$Segment.loadSync(LocalCache.java:2278)
at org.apache.flink.shaded.guava30.com.google.common.cache.
LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
at org.apache.flink.shaded.guava30.com.google.common.cache.
LocalCache$Segment.get(LocalCache.java:2045)
... 18 more
Caused by: org.codehaus.commons.compiler.InternalCompilerException:
Compiling "LocalWindowAggsHandler$34" in Line 2, Column 22: Line 33, Column
23: Compiling "accumulate(org.apache.flink.table.data.RowData accInput)":
Line 87, Column 13: org.codehaus.commons.compiler.InternalCompilerException:
Operand stack underflow
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:369)
at org.codehaus.janino.UnitCompiler.access$000(UnitCompiler.java:231)
at org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler
.java:333)
at org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler
.java:330)
at org.codehaus.janino.Java$CompilationUnit.accept(Java.java:367)
at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:330)
at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:245)
at org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler
.java:473)
at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:223)
at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:209)
at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:82)
at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:77)
at org.apache.flink.table.runtime.generated.CompileUtils.doCompile(
CompileUtils.java:104)
... 24 more
Caused by: org.codehaus.commons.compiler.InternalCompilerException: Line 33,
Column 23: Compiling "accumulate(org.apache.flink.table.data.RowData
accInput)": Line 87, Column 13: org.codehaus.commons.compiler.
InternalCompilerException: Operand stack underflow
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3222)
at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler
.java:1379)
at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler
.java:1352)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:800)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:412)
at org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:231)
at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(
UnitCompiler.java:391)
at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(
UnitCompiler.java:386)
at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:
1692)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:386)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:359)
... 36 more
Caused by: org.codehaus.commons.compiler.InternalCompilerException: Line 87,
Column 13: org.codehaus.commons.compiler.InternalCompilerException: Operand
stack underflow
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2393)
at org.codehaus.janino.UnitCompiler.access$1800(UnitCompiler.java:231)
at org.codehaus.janino.UnitCompiler$6.visitExpressionStatement(UnitCompiler
.java:1530)
at org.codehaus.janino.UnitCompiler$6.visitExpressionStatement(UnitCompiler
.java:1523)
at org.codehaus.janino.Java$ExpressionStatement.accept(Java.java:3198)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1523)
at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1607
)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:3531)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3218)
... 46 more
Caused by: org.codehaus.commons.compiler.InternalCompilerException: Operand
stack underflow
at org.codehaus.janino.StackMap.peekOperand(StackMap.java:95)
at org.codehaus.janino.CodeContext.popOperand(CodeContext.java:1349)
at org.codehaus.janino.UnitCompiler.putfield(UnitCompiler.java:12363)
at org.codehaus.janino.UnitCompiler.compileSet2(UnitCompiler.java:6498)
at org.codehaus.janino.UnitCompiler.access$13400(UnitCompiler.java:231)
at org.codehaus.janino.UnitCompiler$20.visitFieldAccess(UnitCompiler.java:
6480)
at org.codehaus.janino.UnitCompiler$20.visitFieldAccess(UnitCompiler.java:
6475)
at org.codehaus.janino.Java$FieldAccess.accept(Java.java:4668)
at org.codehaus.janino.UnitCompiler.compileSet(UnitCompiler.java:6475)
at org.codehaus.janino.UnitCompiler.compileSet2(UnitCompiler.java:6489)
at org.codehaus.janino.UnitCompiler.access$13200(UnitCompiler.java:231)
at org.codehaus.janino.UnitCompiler$20.visitAmbiguousName(UnitCompiler.java:
6478)
at org.codehaus.janino.UnitCompiler$20.visitAmbiguousName(UnitCompiler.java:
6475)
at org.codehaus.janino.Java$AmbiguousName.accept(Java.java:4574)
at org.codehaus.janino.UnitCompiler.compileSet(UnitCompiler.java:6475)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:3992)
at org.codehaus.janino.UnitCompiler.access$6000(UnitCompiler.java:231)
at org.codehaus.janino.UnitCompiler$12.visitAssignment(UnitCompiler.java:
3944)
at org.codehaus.janino.UnitCompiler$12.visitAssignment(UnitCompiler.java:
3924)
at org.codehaus.janino.Java$Assignment.accept(Java.java:4835)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3924)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2391)
... 54 more

Reply via email to