To repeat, it would help if there were a Jira case. I don’t want to debug problems with janino 3.1.6 unless I know why we’re upgrading to 3.1.6. Also, we have a duty to reduce volume on the dev list.
> On Feb 25, 2022, at 7:19 PM, xiaobo <guxiaobo1...@qq.com.INVALID> wrote: > > Hi Gavin and Julian, > Thanks for your help, we know that upgrading janino and common compiler to > 3.1.6 will fix the "operand stack underflow" error, but we have also have > problem with 3.1.6 of janino as mentioned before: > ---------------------- > > we checked the janino release note page > http://janino-compiler.github.io/janino/changelog.html > > Fixed issue #141: Unable to find org.codehaus.commons.compiler.properties in > java 11: ICompilerFactories were loaded through the current thread's "context > class loader", which is a bad choice in some environments. Thus, the methods > "getDefaultCompilerFactory()", "getAllCompilerFactories()" and > "getCompilerFactory(className)" were duplicated and augmented with a > "classLoader" parameter. > > what does this mean? the getDefaultCompilerFactory method with a classloader > parameter was removed intentionally? > but it seems calcite still needs it . > -------------------- > > > What we mean here is that we think calcite has a bug with janino 3.1.6 , are > we right? > > > > > > > > > > > ------------------ Original ------------------ > From: "Julian Hyde";<jhyde.apa...@gmail.com>; > Send time: Saturday, Feb 26, 2022 1:24 AM > To: "dev"<dev@calcite.apache.org>; > > Subject: Re: calcite multi-threading problem > > > > Should a jira case be logged for this issue? Or is there an existing case? If > the latter, should we add a stack trace to help people tie it to this problem? > > A jira URL in this thread will help other people who run into this problem in > future. Right now it is just a rambling email thread with an off-topic > subject. > > Julian > >> On Feb 25, 2022, at 7:18 AM, Gavin Ray <ray.gavi...@gmail.com> wrote: >> >> Also I just checked and this is updated on master so it should be solved in >> next release FWIW: >> >> https://github.com/apache/calcite/blob/cbbe5701b7f61d7f8df12d314ba5aabf898c1cae/gradle.properties#L116 >> >>> On Fri, Feb 25, 2022 at 10:16 AM Gavin Ray <ray.gavi...@gmail.com> wrote: >>> >>> The fix for this is just to add janino and commons-compiler as exclusions >>> in the calcite/avatica dependencies >>> And then add the updated version so that it overwrites them >>> >>> I tested this on your code and it worked >>> >>> Also, please listen to Stamatis/Julian advice >>> >>> <dependencies> >>> <dependency> >>> <groupId>org.apache.calcite</groupId> >>> <artifactId>calcite-core</artifactId> >>> <version>1.29.0</version> >>> <exclusions> >>> <exclusion> >>> <groupId>org.codehaus.janino</groupId> >>> <artifactId>janino</artifactId> >>> </exclusion> >>> <exclusion> >>> <groupId>org.codehaus.janino</groupId> >>> <artifactId>commons-compiler</artifactId> >>> </exclusion> >>> </exclusions> >>> </dependency> >>> >>> <dependency> >>> <groupId>org.apache.calcite.avatica</groupId> >>> <artifactId>avatica-core</artifactId> >>> <version>1.20.0</version> >>> <exclusions> >>> <exclusion> >>> <groupId>org.codehaus.janino</groupId> >>> <artifactId>janino</artifactId> >>> </exclusion> >>> <exclusion> >>> <groupId>org.codehaus.janino</groupId> >>> <artifactId>commons-compiler</artifactId> >>> </exclusion> >>> </exclusions> >>> </dependency> >>> >>> <dependency> >>> <groupId>org.apache.calcite</groupId> >>> <artifactId>calcite-file</artifactId> >>> <version>1.29.0</version> >>> <exclusions> >>> <exclusion> >>> <groupId>org.codehaus.janino</groupId> >>> <artifactId>janino</artifactId> >>> </exclusion> >>> <exclusion> >>> <groupId>org.codehaus.janino</groupId> >>> <artifactId>commons-compiler</artifactId> >>> </exclusion> >>> </exclusions> >>> </dependency> >>> >>> <dependency> >>> <groupId>org.apache.calcite</groupId> >>> <artifactId>calcite-example-csv</artifactId> >>> <version>1.21.0</version> >>> <exclusions> >>> <exclusion> >>> <groupId>org.codehaus.janino</groupId> >>> <artifactId>janino</artifactId> >>> </exclusion> >>> <exclusion> >>> <groupId>org.codehaus.janino</groupId> >>> <artifactId>commons-compiler</artifactId> >>> </exclusion> >>> </exclusions> >>> </dependency> >>> >>> <dependency> >>> <groupId>org.codehaus.janino</groupId> >>> <artifactId>janino</artifactId> >>> <version>3.1.6</version> >>> </dependency> >>> >>> <dependency> >>> <groupId>org.codehaus.janino</groupId> >>> <artifactId>commons-compiler</artifactId> >>> <version>3.1.6</version> >>> </dependency> >>> </dependencies> >>> >>> >>> On Fri, Feb 25, 2022 at 9:33 AM xiaobo <guxiaobo1...@qq.com.invalid> >>> wrote: >>> >>>> I have put the testing code at github >>>> >>>> >>>> https://github.com/guxiaobo/gxb-testing/blob/main/calcite-testing/src/test/java/com/xsmartware/testing/calcite/Test1.java >>>> >>>> >>>> >>>> >>>> ------------------ Original ------------------ >>>> From: "xiaobo ";<guxiaobo1...@qq.com>; >>>> Send time: Friday, Feb 25, 2022 9:05 PM >>>> To: "dev"<dev@calcite.apache.org>; >>>> >>>> Subject: Re: calcite multi-threading problem >>>> >>>> >>>> >>>> Hi, >>>> Now we come to the problem similar as the one at >>>> https://github.com/apache/calcite/pull/2433#issuecomment-860024076, >>>> >>>> a simple sql "select max(id) from s.t1" caused the following exception, >>>> users report upgrading janino to 3.1.6 can fix this problem, but as we >>>> discussed before janino 3.1.6 is not fully compatible with calcite 1.29.0 >>>> because of the dependency issue. >>>> >>>> >>>> >>>> at org.apache.calcite.avatica.Helper.wrap(Helper.java:37) >>>> ~[avatica-core-1.20.0.jar:1.20.0] >>>> at >>>> org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:130) >>>> ~[calcite-core-1.29.0.jar:1.29.0] >>>> at >>>> org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1130) >>>> ~[calcite-core-1.29.0.jar:1.29.0] >>>> at >>>> org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.prepare_(CalcitePrepareImpl.java:1032) >>>> ~[calcite-core-1.29.0.jar:1.29.0] >>>> at >>>> org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.prepareRel(CalcitePrepareImpl.java:988) >>>> ~[calcite-core-1.29.0.jar:1.29.0] >>>> at >>>> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:668) >>>> ~[calcite-core-1.29.0.jar:1.29.0] >>>> at >>>> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:513) >>>> ~[calcite-core-1.29.0.jar:1.29.0] >>>> at >>>> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:483) >>>> ~[calcite-core-1.29.0.jar:1.29.0] >>>> at >>>> org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:249) >>>> ~[calcite-core-1.29.0.jar:1.29.0] >>>> at >>>> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:229) >>>> ~[calcite-core-1.29.0.jar:1.29.0] >>>> ... 13 common frames omitted >>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException: >>>> Compiling "Baz" in File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 1, >>>> Column 1: File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 41, >>>> Column 45: Compiling "bind(org.apache.calcite.DataContext root)": File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 60, >>>> Column 64 >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:369) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.access$000(UnitCompiler.java:231) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:333) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:330) >>>> ~[janino-3.1.4.jar:na] >>>> at org.codehaus.janino.Java$CompilationUnit.accept(Java.java:367) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:330) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:245) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:294) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:288) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:267) >>>> ~[janino-3.1.4.jar:na] >>>> at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:52) >>>> ~[commons-compiler-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.ClassBodyEvaluator.createInstance(ClassBodyEvaluator.java:428) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.apache.calcite.adapter.enumerable.EnumerableInterpretable.getBindable(EnumerableInterpretable.java:166) >>>> ~[calcite-core-1.29.0.jar:1.29.0] >>>> at >>>> org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:127) >>>> ~[calcite-core-1.29.0.jar:1.29.0] >>>> ... 21 common frames omitted >>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException: File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 41, >>>> Column 45: Compiling "bind(org.apache.calcite.DataContext root)": File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 60, >>>> Column 64 >>>> at >>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3222) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1379) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1352) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:800) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:412) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:231) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:391) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:386) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1692) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:386) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:359) >>>> ~[janino-3.1.4.jar:na] >>>> ... 34 common frames omitted >>>> Caused by: java.lang.RuntimeException: File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 60, >>>> Column 64 >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2639) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.access$2700(UnitCompiler.java:231) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1539) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1523) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.Java$LocalVariableDeclarationStatement.accept(Java.java:3840) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1523) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1607) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:3531) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3218) >>>> ~[janino-3.1.4.jar:na] >>>> ... 44 common frames omitted >>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException: File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 60, >>>> Column 80: Compiling "new >>>> org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(new >>>> org.apache.calcite.linq4j.function.Function0() { ... }, >>>> accumulatorAdders)": File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 61, >>>> Column 5: Compiling "new org.apache.calcite.linq4j.function.Function0() { >>>> ... }": File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 62, >>>> Column 21: Compiling "apply()": File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 70, >>>> Column 17: org.codehaus.commons.compiler.InternalCompilerException: Operand >>>> stack underflow >>>> at >>>> org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5731) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2622) >>>> ~[janino-3.1.4.jar:na] >>>> ... 52 common frames omitted >>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException: File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 61, >>>> Column 5: Compiling "new org.apache.calcite.linq4j.function.Function0() { >>>> ... }": File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 62, >>>> Column 21: Compiling "apply()": File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 70, >>>> Column 17: org.codehaus.commons.compiler.InternalCompilerException: Operand >>>> stack underflow >>>> at >>>> org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5731) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.invokeConstructor(UnitCompiler.java:8297) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:5468) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.access$9700(UnitCompiler.java:231) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$15.visitNewClassInstance(UnitCompiler.java:4643) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$15.visitNewClassInstance(UnitCompiler.java:4604) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.Java$NewClassInstance.accept(Java.java:5560) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4604) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5729) >>>> ~[janino-3.1.4.jar:na] >>>> ... 53 common frames omitted >>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException: File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 62, >>>> Column 21: Compiling "apply()": File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 70, >>>> Column 17: org.codehaus.commons.compiler.InternalCompilerException: Operand >>>> stack underflow >>>> at >>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3222) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1379) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1352) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:800) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:977) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:947) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.access$200(UnitCompiler.java:231) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$2.visitAnonymousClassDeclaration(UnitCompiler.java:389) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$2.visitAnonymousClassDeclaration(UnitCompiler.java:386) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.Java$AnonymousClassDeclaration.accept(Java.java:1375) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:386) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:5571) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.access$9400(UnitCompiler.java:231) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$15.visitNewAnonymousClassInstance(UnitCompiler.java:4640) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$15.visitNewAnonymousClassInstance(UnitCompiler.java:4604) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.Java$NewAnonymousClassInstance.accept(Java.java:5608) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4604) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5729) >>>> ~[janino-3.1.4.jar:na] >>>> ... 61 common frames omitted >>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException: File >>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 70, >>>> Column 17: org.codehaus.commons.compiler.InternalCompilerException: Operand >>>> stack underflow >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2393) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.access$1800(UnitCompiler.java:231) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$6.visitExpressionStatement(UnitCompiler.java:1530) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$6.visitExpressionStatement(UnitCompiler.java:1523) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.Java$ExpressionStatement.accept(Java.java:3198) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1523) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1607) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:3531) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3218) >>>> ~[janino-3.1.4.jar:na] >>>> ... 78 common frames omitted >>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException: >>>> Operand stack underflow >>>> at org.codehaus.janino.StackMap.peekOperand(StackMap.java:94) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.CodeContext.popOperand(CodeContext.java:1349) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.putfield(UnitCompiler.java:12363) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileSet2(UnitCompiler.java:6498) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.access$13400(UnitCompiler.java:231) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$20.visitFieldAccess(UnitCompiler.java:6480) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$20.visitFieldAccess(UnitCompiler.java:6475) >>>> ~[janino-3.1.4.jar:na] >>>> at org.codehaus.janino.Java$FieldAccess.accept(Java.java:4668) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileSet(UnitCompiler.java:6475) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileSet2(UnitCompiler.java:6489) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.access$13200(UnitCompiler.java:231) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$20.visitAmbiguousName(UnitCompiler.java:6478) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$20.visitAmbiguousName(UnitCompiler.java:6475) >>>> ~[janino-3.1.4.jar:na] >>>> at org.codehaus.janino.Java$AmbiguousName.accept(Java.java:4574) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compileSet(UnitCompiler.java:6475) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:3992) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.access$6000(UnitCompiler.java:231) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$12.visitAssignment(UnitCompiler.java:3944) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler$12.visitAssignment(UnitCompiler.java:3924) >>>> ~[janino-3.1.4.jar:na] >>>> at org.codehaus.janino.Java$Assignment.accept(Java.java:4835) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3924) >>>> ~[janino-3.1.4.jar:na] >>>> at >>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2391) >>>> ~[janino-3.1.4.jar:na] >>>> ... 86 common frames omitted >>>> >>>> With janino 3.1.4 >>>> >>>> >>>> >>>> >>>> ------------------ Original ------------------ >>>> From: "xiaobo ";<guxiaobo1...@qq.com>; >>>> Send time: Saturday, Feb 12, 2022 9:14 PM >>>> To: "dev"<dev@calcite.apache.org>; >>>> >>>> Subject: Re: calcite multi-threading problem >>>> >>>> >>>> >>>> 3.1.4 of janino and commons-compiler works now. >>>> >>>> >>>> >>>> >>>> ------------------ Original ------------------ >>>> From: "xiaobo ";<guxiaobo1...@qq.com>; >>>> Send time: Saturday, Feb 12, 2022 8:04 PM >>>> To: "dev"<dev@calcite.apache.org>; >>>> >>>> Subject: Re: calcite multi-threading problem >>>> >>>> >>>> >>>> but strange enough, the same code works in a single thread. >>>> >>>> >>>> >>>> >>>> ------------------ Original ------------------ >>>> From: "xiaobo ";<guxiaobo1...@qq.com>; >>>> Send time: Saturday, Feb 12, 2022 8:02 PM >>>> To: "dev"<dev@calcite.apache.org>; >>>> >>>> Subject: Re: calcite multi-threading problem >>>> >>>> >>>> >>>> we checked the janino release note page >>>> http://janino-compiler.github.io/janino/changelog.html >>>> >>>> Fixed issue #141: Unable to find org.codehaus.commons.compiler.properties >>>> in java 11: ICompilerFactories were loaded through the current thread's >>>> "context class loader", which is a bad choice in some environments. Thus, >>>> the methods "getDefaultCompilerFactory()", "getAllCompilerFactories()" and >>>> "getCompilerFactory(className)" were duplicated and augmented with a >>>> "classLoader" parameter. >>>> >>>> what does this mean? the getDefaultCompilerFactory method with a >>>> classloader parameter was removed intentionally? >>>> but it seems calcite still needs it , so what version of janino should we >>>> use for the latest calcite-core? >>>> >>>> >>>> >>>> >>>> >>>> ------------------ Original ------------------ >>>> From: "xiaobo ";<guxiaobo1...@qq.com>; >>>> Send time: Saturday, Feb 12, 2022 12:01 PM >>>> To: "dev"<dev@calcite.apache.org>; >>>> >>>> Subject: Re: calcite multi-threading problem >>>> >>>> >>>> >>>> In our use case, the Java class which opens calcite connection is >>>> contained in a external Java jar file, which is loaded dynamicly through >>>> classloaders other than the default systemloader like this: >>>> >>>> >>>> try { >>>> ClassLoader loader = URLClassLoader.newInstance( >>>> new URL[] { new URL("jar:file:" + path + "!/") }, >>>> getClass().getClassLoader()); >>>> Class<?> clazz = Class.forName(classPath, true, loader); >>>> >>>> we mention this because the error message shows a classloader parameter. >>>> >>>> >>>> >>>> >>>> ------------------ Original ------------------ >>>> From: "xiaobo ";<guxiaobo1...@qq.com>; >>>> Send time: Saturday, Feb 12, 2022 11:56 AM >>>> To: "dev"<dev@calcite.apache.org>; >>>> >>>> Subject: Re: calcite multi-threading problem >>>> >>>> >>>> >>>> And if we remove calcite from our project, janino is not in "resolved >>>> depencies" library list of pom.xml, >>>> So we think it not the janino conflic problem. >>>> >>>> >>>> >>>> >>>> ------------------ Original ------------------ >>>> From: "xiaobo ";<guxiaobo1...@qq.com>; >>>> Send time: Saturday, Feb 12, 2022 9:49 AM >>>> To: "dev"<dev@calcite.apache.org>; >>>> >>>> Subject: Re: calcite multi-threading problem >>>> >>>> >>>> >>>> can you share the solution for the problem, we are using the following >>>> libraries, and it seems janino 3.1.6 is only dependent by calcite-core. >>>> >>>> <properties> >>>> >>>> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> >>>> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> >>>> <java.version>9</java.version> >>>> <maven.compiler.source>9</maven.compiler.source> >>>> <maven.compiler.target>9</maven.compiler.target> >>>> <log4j2.version>2.17.1</log4j2.version> >>>> <drools.version>7.64.0.Final</drools.version> >>>> </properties> >>>> >>>> <groupId>org.apache.calcite</groupId> >>>> <artifactId>calcite-core</artifactId> >>>> <version>1.29.0</version> >>>> </dependency> >>>> <dependency> >>>> <groupId>org.apache.calcite.avatica</groupId> >>>> <artifactId>avatica-core</artifactId> >>>> <version>1.20.0</version> >>>> </dependency> >>>> >>>> >>>> <dependency> >>>> <groupId>org.drools</groupId> >>>> <artifactId>drools-core</artifactId> >>>> <version>${drools.version}</version> >>>> </dependency> >>>> <dependency> >>>> <groupId>org.drools</groupId> >>>> <artifactId>drools-compiler</artifactId> >>>> <version>${drools.version}</version> >>>> </dependency> >>>> <dependency> >>>> <groupId>org.drools</groupId> >>>> <artifactId>drools-decisiontables</artifactId> >>>> <version>${drools.version}</version> >>>> </dependency> >>>> >>>> >>>> ------------------ Original ------------------ >>>> From: "xiong duan";<nobigo...@gmail.com>; >>>> Send time: Saturday, Feb 12, 2022 8:43 AM >>>> To: "dev"<dev@calcite.apache.org>; >>>> >>>> Subject: Re: calcite multi-threading problem >>>> >>>> >>>> >>>> Yes, It is a dependency issue. I have met the same problem. +1 for Dmitry. >>>> >>>> Dmitry Sysolyatin <dm.sysolya...@gmail.com> 于2022年2月11日周五 21:18写道: >>>> >>>>> Actually, I had the same problem with spark. Spark 3.2.1 uses the old >>>>> version of janino, calcite 1.29 uses the new version of janino and they >>>> are >>>>> not compatible. >>>>> If I downgrade janino version to version which spark uses I got an error >>>>> not method found exception >>>>> If I upgrade the janino version to the version which calcite uses I get >>>> the >>>>> same error but with another method. >>>>> >>>>> As a result, I built a separate calcite jar package where I shaded >>>> janino >>>>> dependency >>>>> >>>>> >>>>> >>>>> On Fri, Feb 11, 2022 at 2:39 PM stanilovsky evgeny < >>>>> estanilovs...@gridgain.com> wrote: >>>>> >>>>>> for example on a current calcite branch: >>>>>> grep janino gradle.properties >>>>>> janino.version=3.1.6 >>>>>> >>>>>> >>>>>>> yes, we use drools in the same project, and drools uses janino >>>>>>> too, is there a version list of janino which calcite supports? >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> ---Original--- >>>>>>> From: "Dmitry Sysolyatin"<dm.sysolya...@gmail.com> >>>>>>> Date: Fri, Feb 11, 2022 18:30 PM >>>>>>> To: "dev"<dev@calcite.apache.org>; >>>>>>> Subject: Re: calcite multi-threading problem >>>>>>> >>>>>>> >>>>>>> Hi! >>>>>>> >>>>>> >>>>> >>>> It looks like a dependency issue, not like a multi-threading issue. Most >>>>>>> >>>>>> >>>>> >>>> likely you have some dependency that use another version of janino but >>>>>>> calcite requires another one >>>>>>> >>>>>>> >>>>>> >>>>> >>>> On Fri, Feb 11, 2022 at 12:18 PM xiaobo <guxiaobo1...@qq.com.invalid >>>>>> > wrote: >>>>>>> >>>>>>> > Hi, >>>>>>> > >>>>>>> > >>>>>>> >>>>>> >>>>> >>>> > we open a calcite connection with ReflectiveSchema in one thread, and >>>>>>> >>>>>> >>>>> >>>> > execute sqls in other threads against the connection, but failed with >>>>>>> > this error >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > com.google.common.util.concurrent.ExecutionError: >>>>>>> > java.lang.NoSuchMethodError: >>>>>>> > >>>>>>> >>>>>> >>>>> >>>> > org.codehaus.commons.compiler.CompilerFactoryFactory.getDefaultCompilerFactory(Ljava/lang/ClassLoader;) >>>>>>> > >>>>>>> > Lorg/codehaus/commons/compiler/ICompilerFactory; >>>>>>> > >>>>>>> > >>>>>>> >>>>>> >>>>> >>>> > do we miss anything regarding to multi-threading with calcite? >>>>>> >>>>> >>>