Giter VIP home page Giter VIP logo

Comments (2)

anna-geller avatar anna-geller commented on June 8, 2024

definitely worth showing a warning in the UI when creating a flow with such invalid condition and disable those WARN logs.

I was able to reproduce that this log message appears every couple of milliseconds:

2024-01-07 20:07:46,922 WARN  pool-7-thread-1 f.h.naive-schedule-condition [namespace: company.team] [flow: hello-world-var-condition] [condition: VariableCondition(super=io.kestra.core.models.conditions.types.VariableCondition@596bcd, expression={{ trigger.date | date() < now() }})] Evaluate Condition Failed with error 'io.pebbletemplates.pebble.error.PebbleException: Could not perform greater modulus ({{ trigger.date | date() < now() }}:1)'
io.kestra.core.exceptions.IllegalVariableEvaluationException: io.pebbletemplates.pebble.error.PebbleException: Could not perform greater modulus ({{ trigger.date | date() < now() }}:1)
	at io.kestra.core.runners.VariableRenderer.properPebbleException(VariableRenderer.java:166)
	at io.kestra.core.runners.VariableRenderer.recursiveRender(VariableRenderer.java:127)
	at io.kestra.core.runners.VariableRenderer.render(VariableRenderer.java:170)
	at io.kestra.core.runners.RunContext.render(RunContext.java:442)
	at io.kestra.core.models.conditions.types.VariableCondition.test(VariableCondition.java:50)
	at io.kestra.core.services.ConditionService.lambda$isValid$0(ConditionService.java:69)
	at java.base/java.util.stream.MatchOps$1MatchSink.accept(Unknown Source)
	at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.allMatch(Unknown Source)
	at io.kestra.core.services.ConditionService.isValid(ConditionService.java:67)
	at io.kestra.core.models.triggers.types.Schedule.validateScheduleCondition(Schedule.java:433)
	at io.kestra.core.models.triggers.types.Schedule.truePreviousNextDateWithCondition(Schedule.java:393)
	at io.kestra.core.models.triggers.types.Schedule.nextEvaluationDate(Schedule.java:186)
	at io.kestra.core.schedulers.AbstractScheduler.lambda$handle$15(AbstractScheduler.java:259)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
	at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toList(Unknown Source)
	at io.kestra.core.schedulers.AbstractScheduler.handle(AbstractScheduler.java:268)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: io.pebbletemplates.pebble.error.PebbleException: Could not perform greater modulus ({{ trigger.date | date() < now() }}:1)
	at io.pebbletemplates.pebble.node.expression.LessThanExpression.evaluate(LessThanExpression.java:25)
	at io.pebbletemplates.pebble.node.expression.LessThanExpression.evaluate(LessThanExpression.java:16)
	at io.pebbletemplates.pebble.node.PrintNode.render(PrintNode.java:37)
	at io.pebbletemplates.pebble.node.BodyNode.render(BodyNode.java:44)
	at io.pebbletemplates.pebble.node.RootNode.render(RootNode.java:31)
	at io.pebbletemplates.pebble.template.PebbleTemplateImpl.evaluate(PebbleTemplateImpl.java:157)
	at io.pebbletemplates.pebble.template.PebbleTemplateImpl.evaluate(PebbleTemplateImpl.java:96)
	at io.kestra.core.runners.VariableRenderer.recursiveRender(VariableRenderer.java:122)
	... 40 common frames omitted
Caused by: java.lang.RuntimeException: invalid operands for mathematical comparison [LESS_THAN]
	at io.pebbletemplates.pebble.utils.OperatorUtils.wideningConversionBinaryComparison(OperatorUtils.java:189)
	at io.pebbletemplates.pebble.utils.OperatorUtils.lt(OperatorUtils.java:94)
	at io.pebbletemplates.pebble.node.expression.LessThanExpression.evaluate(LessThanExpression.java:21)
	... 47 common frames omitted

from kestra.

anna-geller avatar anna-geller commented on June 8, 2024
  • change the WARN level to TRACE or DEBUG
  • add a short and informative error message that Pebble in the condition is invalid

from kestra.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.