Skip to content

Conversation

FroMage
Copy link
Member

@FroMage FroMage commented Jul 30, 2025

This includes the fix by @cescoffier as well as a new test from me.

Fixes #49133

@gsmet I'll make another PR against main with just the test, since the fix is already there.

cescoffier and others added 2 commits July 30, 2025 11:29
…ient

There's a change in Vert.x 4.5.14+ that stops copying context locals
from the parent to the child duplicated contexts, so we have to do it
via nested contexts (where we manually copy the locals).

This is required for things like propagating HR transactions/sessions.
@quarkus-bot quarkus-bot bot changed the title Make sure we propagate context locals from REST server to clients [3.20] Make sure we propagate context locals from REST server to clients Jul 30, 2025
Copy link

quarkus-bot bot commented Jul 30, 2025

/cc @aloubyansky (3.20), @gastaldi (3.20), @gsmet (3.20), @jmartisk (3.20), @rsvoboda (3.20)

Copy link

quarkus-bot bot commented Jul 30, 2025

Status for workflow Quarkus CI

This is the status report for running Quarkus CI on commit 37b5236.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

You can consult the Develocity build scans.


Flaky tests - Develocity

⚙️ JVM Tests - JDK 17

📦 extensions/smallrye-reactive-messaging-kafka/deployment

io.quarkus.smallrye.reactivemessaging.kafka.deployment.testing.KafkaDevServicesContinuousTestingTestCase.testContinuousTestingScenario2 - History

  • io.quarkus.builder.BuildException: Build failure: Build failed due to errors [error]: Build step io.quarkus.apicurio.registry.devservice.DevServicesApicurioRegistryProcessor\#startApicurioRegistryDevService threw an exception: java.lang.RuntimeException: org.testcontainers.containers.ContainerLaunchException: Container startup failed for image quay.io/apicurio/apicurio-registry-mem:2.4.2.Final at io.quarkus.apicurio.registry.devservice.DevServicesApicurioRegistryProcessor.startApicurioRegistryDevService(DevServicesApicurioRegistryProcessor.java:90) at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732) at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:856) - java.lang.RuntimeException
java.lang.RuntimeException: 
io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.apicurio.registry.devservice.DevServicesApicurioRegistryProcessor#startApicurioRegistryDevService threw an exception: java.lang.RuntimeException: org.testcontainers.containers.ContainerLaunchException: Container startup failed for image quay.io/apicurio/apicurio-registry-mem:2.4.2.Final
	at io.quarkus.apicurio.registry.devservice.DevServicesApicurioRegistryProcessor.startApicurioRegistryDevService(DevServicesApicurioRegistryProcessor.java:90)
	at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)
	at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:856)
	at io.quarkus.builder.BuildContext.run(BuildContext.java:255)
	at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)

⚙️ JVM Tests - JDK 21

📦 core/deployment

io.quarkus.deployment.dev.FileSystemWatcherTestCase.testFileSystemWatcher - History

  • expected: not <null> - org.opentest4j.AssertionFailedError
org.opentest4j.AssertionFailedError: expected: not <null>
	at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:152)
	at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
	at org.junit.jupiter.api.AssertNotNull.failNull(AssertNotNull.java:49)
	at org.junit.jupiter.api.AssertNotNull.assertNotNull(AssertNotNull.java:35)
	at org.junit.jupiter.api.AssertNotNull.assertNotNull(AssertNotNull.java:30)
	at org.junit.jupiter.api.Assertions.assertNotNull(Assertions.java:304)
	at io.quarkus.deployment.dev.FileSystemWatcherTestCase.consumeEvents(FileSystemWatcherTestCase.java:169)

📦 extensions/smallrye-reactive-messaging/deployment

io.quarkus.smallrye.reactivemessaging.hotreload.ConnectorChangeTest.testUpdatingConnector - History

  • Expecting actual: ["-4","-5","-6","-7","-8","-9","-10","-11"] to start with: ["-3", "-4", "-5", "-6"] - java.lang.AssertionError
java.lang.AssertionError: 

Expecting actual:
  ["-4","-5","-6","-7","-8","-9","-10","-11"]
to start with:
  ["-3", "-4", "-5", "-6"]

	at io.quarkus.smallrye.reactivemessaging.hotreload.ConnectorChangeTest.testUpdatingConnector(ConnectorChangeTest.java:36)

⚙️ JVM Integration Tests - JDK 21

📦 integration-tests/grpc-hibernate

com.example.grpc.hibernate.BlockingRawTest.shouldAdd - History

  • Condition with Lambda expression in com.example.grpc.hibernate.BlockingRawTestBase was not fulfilled within 30 seconds. - org.awaitility.core.ConditionTimeoutException
org.awaitility.core.ConditionTimeoutException: Condition with Lambda expression in com.example.grpc.hibernate.BlockingRawTestBase was not fulfilled within 30 seconds.
	at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
	at org.awaitility.core.CallableCondition.await(CallableCondition.java:78)
	at org.awaitility.core.CallableCondition.await(CallableCondition.java:26)
	at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:1006)
	at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:975)
	at com.example.grpc.hibernate.BlockingRawTestBase.shouldAdd(BlockingRawTestBase.java:59)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)

@gsmet
Copy link
Member

gsmet commented Jul 31, 2025

@FroMage isn't it something we will need to push to 3.15 too? I think we also upgraded Vert.x there.

@FroMage
Copy link
Member Author

FroMage commented Jul 31, 2025

I can check.

@FroMage
Copy link
Member Author

FroMage commented Jul 31, 2025

Ah yes, in both cases it's 4.5.16 which will not copy locals. You can cherry-pick my test to check.

gsmet pushed a commit to gsmet/quarkus that referenced this pull request Aug 1, 2025
…ient

There's a change in Vert.x 4.5.14+ that stops copying context locals
from the parent to the child duplicated contexts, so we have to do it
via nested contexts (where we manually copy the locals).

This is required for things like propagating HR transactions/sessions.

From @gsmet: Apparently, 3.15 is not affected but it's nice to have a test.

Related to quarkusio#49163 and quarkusio#49133
@gsmet gsmet merged commit f98b6ef into quarkusio:3.20 Aug 11, 2025
56 checks passed
@gsmet gsmet modified the milestones: 3.20.3, 3.20.2.1 Aug 11, 2025
@FroMage FroMage deleted the 49133 branch August 18, 2025 12:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants