Hi, I've had this issue a while ago using spring boot webflux with the
@Service annotation.
Which version of Apache calcite core library are you using?


From,
Hugh Pearse




On Mon, 26 May 2025, 22:31 han jack, <[email protected]> wrote:

> Dear Calcite Development Team,
>
> I am encountering a memory overflow issue when using Calcite. After
> investigation, I found that a thread continuously holds on to an instance
> of org.apache.calcite.plan.volcano.RuleQueue without releasing it.
>
> Using jstack, I observed that the program repeatedly executes the following
> stack trace:
>
> at
>
> org.apache.calcite.plan.volcano.VolcanoPlanner.getSubset(VolcanoPlanner.java:975)
> at
>
> org.apache.calcite.plan.volcano.RelSubset.getParentSubsets(RelSubset.java:220)
> at
>
> org.apache.calcite.plan.volcano.RelSubset.getParentSubsets(RelSubset.java:218)
> This behavior seems to suggest a possible deadlock. Could this be related
> to my use of a Calcite connection in a multi-threaded environment? I would
> appreciate any insights or guidance you could provide regarding this issue.
>
> Thank you for your support.
>
> Best regards,
>
> Jack han
>
>
> "qtp1700973603-73" #73 prio=5 os_prio=0 tid=0x00007f7676179000 nid=0x36de3
> runnable [0x00007f76035e8000]
>    java.lang.Thread.State: RUNNABLE
>         at
>
> org.apache.calcite.plan.volcano.RelSubset.getParentSubsets(RelSubset.java:218)
>         at
>
> org.apache.calcite.plan.volcano.RuleQueue.computeImportance(RuleQueue.java:393)
>         at
> org.apache.calcite.plan.volcano.RuleQueue.recompute(RuleQueue.java:192)
>         at
> org.apache.calcite.plan.volcano.RuleQueue.recompute(RuleQueue.java:205)
>         at
>
> org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1604)
>         at
>
> org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:859)
>         at
>
> org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:879)
>         at
>
> org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:1755)
>         at
>
> org.apache.calcite.plan.volcano.VolcanoRuleCall.transformTo(VolcanoRuleCall.java:135)
>         at
> org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:234)
>         at
>
> org.apache.calcite.rel.rules.UnionMergeRule.onMatch(UnionMergeRule.java:140)
>         at
>
> org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:212)
>         at
>
> org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:646)
>         at
> org.apache.calcite.tools.Programs.lambda$standard$3(Programs.java:298)
>         at
> org.apache.calcite.tools.Programs$$Lambda$949/39179479.run(Unknown Source)
>         at
> org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:358)
>         at org.apache.calcite.prepare.Prepare.optimize(Prepare.java:188)
>         at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:319)
>         at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:230)
>         at
>
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:772)
>         at
>
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:636)
>         at
>
> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:606)
>         at
>
> org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:229)
>         at
>
> org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:550)
>         - locked <0x00000006e9a2b340> (a
> org.apache.calcite.jdbc.CalciteJdbc41Factory$CalciteJdbc41Statement)
>         at
>
> org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:676)
>         at
>
> org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
>         at
>
> org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227)
>         at
>
> com.meituan.waimairc.service.impl.QueryServiceImpl.query(QueryServiceImpl.java:141)
>

Reply via email to