Skip to content

chore(system): use a dependencies object for building queue#14988

Open
loicmathieu wants to merge 1 commit intokestra_wipfrom
feat/queue-dependencies
Open

chore(system): use a dependencies object for building queue#14988
loicmathieu wants to merge 1 commit intokestra_wipfrom
feat/queue-dependencies

Conversation

@loicmathieu
Copy link
Member

No description provided.

This allow to use a bean that will carry all queue dependencies and inject it as factory method parameter to Micronaut correctly see a dependency and will process bean creation and destruction in order.
@github-actions
Copy link
Contributor

github-actions bot commented Mar 9, 2026

🐋 Docker image

ghcr.io/kestra-io/kestra-pr:14988
docker run --pull=always --rm -it -p 8080:8080 --user=root -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp ghcr.io/kestra-io/kestra-pr:14988 server local

🧪 Java Unit Tests

TestsPassed ☑️Skipped ⚠️Failed ❌️Time ⏱
Java Tests Report4369 ran4340 ✅24 ⚠️5 ❌44m 9s 925ms
TestResultTime ⏱
Java Tests Report
H2RunnerTest.restartOrReplayLoopUntil()❌ failure9s 225ms
MysqlRunnerTest.restartOrReplayLoopUntil()❌ failure8s 116ms
PostgresJdbcDeserializationIssuesTest.workerTriggerDeserializationIssue()❌ failure10s 115ms
PostgresRunnerTest.restartOrReplayLoopUntil()❌ failure8s 833ms
ExecutionControllerRunnerTest.triggerEncrypted()❌ failure355ms

Copy link
Member

@brian-mulier-p brian-mulier-p left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@github-actions
Copy link
Contributor

github-actions bot commented Mar 9, 2026

Tests report quick summary:

failed ❌ > tests: 4370, success: 4340, skipped: 24, failed: 6

Project Status Success Skipped Failed
cli success ✅ 69 0 0
core success ✅ 2029 0 0
executor success ✅ 31 0 0
jdbc success ✅ 11 0 0
jdbc-h2 failed ❌ 530 0 1
jdbc-mysql failed ❌ 521 0 1
jdbc-postgres failed ❌ 522 0 2
processor success ✅ 7 0 0
queue success ✅ 28 0 0
runner-memory success ✅ 1 0 0
scheduler success ✅ 56 0 0
script success ✅ 11 0 0
storage-local success ✅ 64 0 0
webserver failed ❌ 405 0 1
worker success ✅ 23 0 0
worker-controller success ✅ 56 0 0

Failed tests:

jdbc-h2 > io.kestra.runner.h2.H2RunnerTest > restartOrReplayLoopUntil() failed ❌ in 9.225
java.lang.AssertionError: 
Expecting actual:
  2026-03-09T17:11:29.868987Z
to be strictly before:
  2026-03-09T17:11:27.122004Z


java.lang.AssertionError: 
Expecting actual:
  2026-03-09T17:11:29.868987Z
to be strictly before:
  2026-03-09T17:11:27.122004Z

	at io.kestra.core.runners.RestartCaseTest.restartOrReplayLoopUntil(RestartCaseTest.java:362)
	at io.kestra.core.runners.AbstractRunnerTest.restartOrReplayLoopUntil(AbstractRunnerTest.java:213)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension$2.proceed(MicronautJunit5Extension.java:154)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptEach(AbstractMicronautExtension.java:171)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptTest(AbstractMicronautExtension.java:128)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.interceptTestMethod(MicronautJunit5Extension.java:141)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:511)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1450)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2019)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)

jdbc-mysql > io.kestra.runner.mysql.MysqlRunnerTest > restartOrReplayLoopUntil() failed ❌ in 8.116
java.lang.AssertionError: 
Expecting actual:
  2026-03-09T17:13:40.485727Z
to be strictly before:
  2026-03-09T17:13:37.685786Z


java.lang.AssertionError: 
Expecting actual:
  2026-03-09T17:13:40.485727Z
to be strictly before:
  2026-03-09T17:13:37.685786Z

	at io.kestra.core.runners.RestartCaseTest.restartOrReplayLoopUntil(RestartCaseTest.java:362)
	at io.kestra.core.runners.AbstractRunnerTest.restartOrReplayLoopUntil(AbstractRunnerTest.java:213)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension$2.proceed(MicronautJunit5Extension.java:154)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptEach(AbstractMicronautExtension.java:171)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptTest(AbstractMicronautExtension.java:128)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.interceptTestMethod(MicronautJunit5Extension.java:141)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:511)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1450)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2019)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)

jdbc-postgres > io.kestra.runner.postgres.PostgresJdbcDeserializationIssuesTest > workerTriggerDeserializationIssue() failed ❌ in 10.115
org.opentest4j.AssertionFailedError: expected: <true> but was: <false>

org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
	at io.kestra.core.runners.DeserializationIssuesCaseTest.workerTriggerDeserializationIssue(DeserializationIssuesCaseTest.java:194)
	at io.kestra.jdbc.runner.AbstractJdbcDeserializationIssuesTest.workerTriggerDeserializationIssue(AbstractJdbcDeserializationIssuesTest.java:48)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension$2.proceed(MicronautJunit5Extension.java:154)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptEach(AbstractMicronautExtension.java:171)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptTest(AbstractMicronautExtension.java:128)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.interceptTestMethod(MicronautJunit5Extension.java:141)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:511)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1450)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2019)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)

jdbc-postgres > io.kestra.runner.postgres.PostgresRunnerTest > restartOrReplayLoopUntil() failed ❌ in 8.833
java.lang.AssertionError: &#10;Expecting actual:&#10;  2026-03-09T17:16:18.721656Z&#10;to be strictly before:&#10;  2026-03-09T17:16:15.892601Z&#10;

java.lang.AssertionError: 
Expecting actual:
  2026-03-09T17:16:18.721656Z
to be strictly before:
  2026-03-09T17:16:15.892601Z

	at io.kestra.core.runners.RestartCaseTest.restartOrReplayLoopUntil(RestartCaseTest.java:362)
	at io.kestra.core.runners.AbstractRunnerTest.restartOrReplayLoopUntil(AbstractRunnerTest.java:213)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension$2.proceed(MicronautJunit5Extension.java:154)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptEach(AbstractMicronautExtension.java:171)
	at io.micronaut.test.extensions.AbstractMicronautExtension.interceptTest(AbstractMicronautExtension.java:128)
	at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.interceptTestMethod(MicronautJunit5Extension.java:141)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:511)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1450)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2019)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)

webserver > io.kestra.webserver.controllers.api.ExecutionControllerRunnerTest > triggerEncrypted() failed ❌ in 0.355
io.micronaut.http.client.exceptions.HttpClientResponseException: Not Found

io.micronaut.http.client.exceptions.HttpClientResponseException: Not Found
	at io.micronaut.http.client.netty.DefaultHttpClient.makeErrorFromRequestBody(DefaultHttpClient.java:2136)
	at io.micronaut.http.client.netty.DefaultHttpClient.handleExchangeResponse(DefaultHttpClient.java:949)
	at io.micronaut.http.client.netty.DefaultHttpClient.lambda$exchange$9(DefaultHttpClient.java:902)
	at io.micronaut.core.execution.ImperativeExecutionFlowImpl.flatMap(ImperativeExecutionFlowImpl.java:72)
	at io.micronaut.http.client.netty.DefaultHttpClient.lambda$exchange$10(DefaultHttpClient.java:902)
	at io.micronaut.http.client.netty.DefaultHttpClient.lambda$sendRequestWithRedirectsNoFilter$44(DefaultHttpClient.java:1660)
	at io.micronaut.core.execution.ImperativeExecutionFlowImpl.flatMap(ImperativeExecutionFlowImpl.java:72)
	at io.micronaut.core.execution.DelayedExecutionFlowImpl$FlatMap.apply(DelayedExecutionFlowImpl.java:359)
	at io.micronaut.core.execution.DelayedExecutionFlowImpl.work(DelayedExecutionFlowImpl.java:58)
	at io.micronaut.core.execution.DelayedExecutionFlowImpl.completeLazy(DelayedExecutionFlowImpl.java:80)
	at io.micronaut.core.execution.DelayedExecutionFlowImpl.complete(DelayedExecutionFlowImpl.java:99)
	at io.micronaut.http.client.netty.DefaultHttpClient$6.complete(DefaultHttpClient.java:1757)
	at io.micronaut.http.client.netty.Http1ResponseHandler$BufferedContent.complete(Http1ResponseHandler.java:226)
	at io.micronaut.http.client.netty.Http1ResponseHandler$BufferedContent.read(Http1ResponseHandler.java:189)
	at io.micronaut.http.client.netty.Http1ResponseHandler$BufferedContent.read(Http1ResponseHandler.java:161)
	at io.micronaut.http.client.netty.Http1ResponseHandler.channelReadInstrumented(Http1ResponseHandler.java:75)
	at io.micronaut.http.client.netty.Http1ResponseHandler.channelReadInstrumented(Http1ResponseHandler.java:50)
	at io.micronaut.http.client.netty.SimpleChannelInboundHandlerInstrumented.channelRead0(SimpleChannelInboundHandlerInstrumented.java:46)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:356)
	at io.netty.handler.codec.http.HttpContentDecoder.decode(HttpContentDecoder.java:170)
	at io.netty.handler.codec.http.HttpContentDecoder.decode(HttpContentDecoder.java:48)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:91)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:356)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:434)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:361)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:325)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:249)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:354)
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:293)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:354)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1429)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:172)
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.handle(AbstractNioChannel.java:445)
	at io.netty.channel.nio.NioIoHandler$DefaultNioRegistration.handle(NioIoHandler.java:388)
	at io.netty.channel.nio.NioIoHandler.processSelectedKey(NioIoHandler.java:596)
	at io.netty.channel.nio.NioIoHandler.processSelectedKeysPlain(NioIoHandler.java:541)
	at io.netty.channel.nio.NioIoHandler.processSelectedKeys(NioIoHandler.java:514)
	at io.netty.channel.nio.NioIoHandler.run(NioIoHandler.java:484)
	at io.netty.channel.SingleThreadIoEventLoop.runIo(SingleThreadIoEventLoop.java:225)
	at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:196)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1195)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:1474)
	Suppressed: java.lang.Exception: #block terminated with an error
		at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:104)
		at reactor.core.publisher.Mono.block(Mono.java:1779)
		at io.micronaut.http.client.netty.DefaultHttpClient$1.exchange(DefaultHttpClient.java:601)
		at io.micronaut.http.client.netty.DefaultHttpClient$1.retrieve(DefaultHttpClient.java:609)
		at io.micronaut.http.client.BlockingHttpClient.retrieve(BlockingHttpClient.java:123)
		at io.micronaut.http.client.BlockingHttpClient.retrieve(BlockingHttpClient.java:172)
		at io.kestra.webserver.controllers.api.ExecutionControllerRunnerTest.lambda$awaitExecution$0(ExecutionControllerRunnerTest.java:2762)
		at org.awaitility.core.AbstractHamcrestCondition.lambda$new$0(AbstractHamcrestCondition.java:48)
		at org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:248)
		at org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:235)
		at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
		at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
		at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
		... 1 more


Develocity build scan: https://develocity.kestra.io/s/3qsemruqahsom

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: To review

Development

Successfully merging this pull request may close these issues.

2 participants