Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run reactive rest client on Vertx same context #19225

Merged
merged 1 commit into from
Sep 9, 2021

Conversation

FroMage
Copy link
Member

@FroMage FroMage commented Aug 4, 2021

Fixes #18977

@geoand
Copy link
Contributor

geoand commented Aug 4, 2021

LGTM, but I would like @stuartwdouglas to take a look as well because he had opened #19144

@geoand geoand changed the title RR client: run client on same context Run reactive rest client on Vertx same context Aug 4, 2021
@FroMage
Copy link
Member Author

FroMage commented Aug 4, 2021

We could make a PR with both sets of commits.

@geoand
Copy link
Contributor

geoand commented Aug 4, 2021

The question is though, are they both needed?

@Sanne
Copy link
Member

Sanne commented Aug 4, 2021

I'm not sure what Stuart was aiming to do, but I'm quite certain that we need the "run on context" that Stef introduced here.

I would suggest to merge this one first and then ask Stuart if he wants to either drop his PR or rebase it on top.

@geoand
Copy link
Contributor

geoand commented Aug 4, 2021

Yeah, I agree that this should be enough

@geoand
Copy link
Contributor

geoand commented Aug 4, 2021

@FroMage I assume that this should also fix #16949, right?

@FroMage
Copy link
Member Author

FroMage commented Aug 4, 2021

I thought so too, but I tried, and no: we get notified on the IO thread, so we will in turn notify on that same IO thread, which is different to the original worker thread.

I'm not sure if we should aim to do that, though. This feels like a broader discussion, because if Vert.x doesn't do thread affinity with worker threads, there's probably a good reason?

@geoand
Copy link
Contributor

geoand commented Aug 4, 2021

I'm not sure if we should aim to do that, though. This feels like a broader discussion, because if Vert.x doesn't do thread affinity with worker threads, there's probably a good reason?

I wouldn't know TBH, but I guess :)

@quarkus-bot
Copy link

quarkus-bot bot commented Aug 4, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building bf3fdd0

Status Name Step Test failures Logs Raw logs
JVM Tests - JDK 11 Build Test failures Logs Raw logs
JVM Tests - JDK 11 Windows Build Test failures Logs Raw logs
JVM Tests - JDK 16 Build Test failures Logs Raw logs

Full information is available in the Build summary check run.

Test Failures

⚙️ JVM Tests - JDK 11 #

📦 extensions/resteasy-reactive/rest-client-reactive/deployment

io.quarkus.rest.client.reactive.provider.ProviderDisabledAutodiscoveryTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]
	- java member: io.quarkus.rest.client.reactive.HelloResource#client2
	- declared on CLASS bean [types=[io.quarkus.rest.client.reactive.HelloResource, java.lang.Object], qualifiers=[@Default, @Any], target=io.quarkus.rest.client.reactive.HelloResource]
	at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1100)
	at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:265)
	at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:129)
	at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:418)...

io.quarkus.rest.client.reactive.provider.ProviderPriorityTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]
	- java member: io.quarkus.rest.client.reactive.HelloResource#client2
	- declared on CLASS bean [types=[io.quarkus.rest.client.reactive.HelloResource, java.lang.Object], qualifiers=[@Default, @Any], target=io.quarkus.rest.client.reactive.HelloResource]
	at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1100)
	at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:265)
	at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:129)
	at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:418)...

io.quarkus.rest.client.reactive.provider.ProviderTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]
	- java member: io.quarkus.rest.client.reactive.HelloResource#client2
	- declared on CLASS bean [types=[io.quarkus.rest.client.reactive.HelloResource, java.lang.Object], qualifiers=[@Default, @Any], target=io.quarkus.rest.client.reactive.HelloResource]
	at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1100)
	at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:265)
	at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:129)
	at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:418)...

⚙️ JVM Tests - JDK 11 Windows #

📦 extensions/resteasy-reactive/rest-client-reactive/deployment

io.quarkus.rest.client.reactive.provider.ProviderDisabledAutodiscoveryTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]
	- java member: io.quarkus.rest.client.reactive.HelloResource#client2
	- declared on CLASS bean [types=[io.quarkus.rest.client.reactive.HelloResource, java.lang.Object], qualifiers=[@Default, @Any], target=io.quarkus.rest.client.reactive.HelloResource]
	at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1100)
	at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:265)
	at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:129)
	at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:418)...

io.quarkus.rest.client.reactive.provider.ProviderPriorityTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]
	- java member: io.quarkus.rest.client.reactive.HelloResource#client2
	- declared on CLASS bean [types=[io.quarkus.rest.client.reactive.HelloResource, java.lang.Object], qualifiers=[@Default, @Any], target=io.quarkus.rest.client.reactive.HelloResource]
	at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1100)
	at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:265)
	at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:129)
	at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:418)...

io.quarkus.rest.client.reactive.provider.ProviderTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]
	- java member: io.quarkus.rest.client.reactive.HelloResource#client2
	- declared on CLASS bean [types=[io.quarkus.rest.client.reactive.HelloResource, java.lang.Object], qualifiers=[@Default, @Any], target=io.quarkus.rest.client.reactive.HelloResource]
	at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1100)
	at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:265)
	at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:129)
	at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:418)...

⚙️ JVM Tests - JDK 16 #

📦 extensions/resteasy-reactive/rest-client-reactive/deployment

io.quarkus.rest.client.reactive.provider.ProviderDisabledAutodiscoveryTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]
	- java member: io.quarkus.rest.client.reactive.HelloResource#client2
	- declared on CLASS bean [types=[io.quarkus.rest.client.reactive.HelloResource, java.lang.Object], qualifiers=[@Default, @Any], target=io.quarkus.rest.client.reactive.HelloResource]
	at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1100)
	at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:265)
	at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:129)
	at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:418)...

io.quarkus.rest.client.reactive.provider.ProviderPriorityTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]
	- java member: io.quarkus.rest.client.reactive.HelloResource#client2
	- declared on CLASS bean [types=[io.quarkus.rest.client.reactive.HelloResource, java.lang.Object], qualifiers=[@Default, @Any], target=io.quarkus.rest.client.reactive.HelloResource]
	at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1100)
	at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:265)
	at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:129)
	at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:418)...

io.quarkus.rest.client.reactive.provider.ProviderTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]
	- java member: io.quarkus.rest.client.reactive.HelloResource#client2
	- declared on CLASS bean [types=[io.quarkus.rest.client.reactive.HelloResource, java.lang.Object], qualifiers=[@Default, @Any], target=io.quarkus.rest.client.reactive.HelloResource]
	at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1100)
	at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:265)
	at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:129)
	at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:418)...

@gsmet
Copy link
Member

gsmet commented Aug 4, 2021

Pretty sure the CI failures are related.

@stuartwdouglas
Copy link
Member

So my PR basically makes sure that if we are dispatching back to the IO thread we pick the same IO thread that is tied to the connection, rather than a random IO thread. This mimics the server behavior.

We have to be really careful with mutltiple threads being involved in reactive requests, there is a lot of potential for hard to debug races.

@@ -202,7 +203,14 @@ public HttpClientResponse getVertxClientResponse() {
@Override
protected Executor getEventLoop() {
if (httpClientRequest == null) {
return restClient.getVertx().nettyEventLoopGroup().next();
// make sure we execute the client callbacks on the same context as the current thread
Copy link
Member

Choose a reason for hiding this comment

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

This is not right, if this is being called from a worker then it will dispatch on the worker. You still need to actually dispatch to the relevant IO thread.

Copy link
Member Author

Choose a reason for hiding this comment

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

How can this be called from a worker thread, though? I've always seen it called from an IO thread.

Copy link
Member

Choose a reason for hiding this comment

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

It could be called by the user in org.jboss.resteasy.reactive.client.spi.ResteasyReactiveClientRequestContext from a org.jboss.resteasy.reactive.client.spi.ResteasyReactiveClientRequestFilter, which could be called from pretty much anywhere.

TBH I am really worried about this 'swapping threads' approach. It opens the door to lots of subtle bugs as we now need to ensure that we always do some kind of safe hand off between the threads. We also need to be super careful with IO, as things work differently if you are not on your IO thread, because as soon as you resume IO its possible another IO thread has started running the input handler, so you need to thing about the thread safety semantics of that.

From a performance point of view it also sucks, as it will involve multiple IO threads waking up selectors that don't belong to them, which is terrible from a performance POV.

Copy link
Member

Choose a reason for hiding this comment

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

I agree with the concerns, there's many similar difficulties with Hibernate Reactive.

As a user, I think I'd be fine to have to deal with stronger restrictions in exchange for less [potential] trouble.

Copy link
Member

Choose a reason for hiding this comment

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

Maybe we should just merge this for now (once the tests are passing), but look to the possibility of moving to a single thread model in future.

Thinking about it I am not sure how practical it will be, as having basically a pool of connections per IO thread is not going to be great for databases which have connection limits.

Copy link
Contributor

Choose a reason for hiding this comment

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

So can we merge this or not? Not trying to be pushy, but Hibernate Transactions are still broken without this (or a similar) fix :)

Copy link
Member

Choose a reason for hiding this comment

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

I think we should merge it for now, as I said above. I have rebased so lets see what CI says.

@quarkus-bot
Copy link

quarkus-bot bot commented Sep 3, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 61d5785

Status Name Step Failures Logs Raw logs
JVM Tests - JDK 11 Build Failures Logs Raw logs
JVM Tests - JDK 11 Windows Build Failures Logs Raw logs
JVM Tests - JDK 16 Build Failures Logs Raw logs

Full information is available in the Build summary check run.

Failures

⚙️ JVM Tests - JDK 11 #

- Failing: extensions/resteasy-reactive/rest-client-reactive/deployment 
! Skipped: docs extensions/oidc-client-reactive-filter/deployment extensions/resteasy-reactive/rest-client-reactive-jackson/deployment and 5 more

📦 extensions/resteasy-reactive/rest-client-reactive/deployment

io.quarkus.rest.client.reactive.provider.ProviderDisabledAutodiscoveryTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]

io.quarkus.rest.client.reactive.provider.ProviderPriorityTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]

io.quarkus.rest.client.reactive.provider.ProviderTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]

⚙️ JVM Tests - JDK 11 Windows #

- Failing: extensions/resteasy-reactive/rest-client-reactive/deployment 
! Skipped: docs extensions/oidc-client-reactive-filter/deployment extensions/resteasy-reactive/rest-client-reactive-jackson/deployment and 5 more

📦 extensions/resteasy-reactive/rest-client-reactive/deployment

io.quarkus.rest.client.reactive.provider.ProviderDisabledAutodiscoveryTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]

io.quarkus.rest.client.reactive.provider.ProviderPriorityTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]

io.quarkus.rest.client.reactive.provider.ProviderTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]

⚙️ JVM Tests - JDK 16 #

- Failing: extensions/resteasy-reactive/rest-client-reactive/deployment extensions/smallrye-reactive-messaging-kafka/deployment 
! Skipped: docs extensions/oidc-client-reactive-filter/deployment extensions/resteasy-reactive/rest-client-reactive-jackson/deployment and 7 more

📦 extensions/resteasy-reactive/rest-client-reactive/deployment

io.quarkus.rest.client.reactive.provider.ProviderDisabledAutodiscoveryTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]

io.quarkus.rest.client.reactive.provider.ProviderPriorityTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]

io.quarkus.rest.client.reactive.provider.ProviderTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkus.rest.client.reactive.HelloClient2 and qualifiers [@RestClient]

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

io.quarkus.smallrye.reactivemessaging.kafka.deployment.testing.KafkaDevServicesContinuousTestingTestCase.testContinuousTestingScenario2 line 75 - More details - Source on GitHub

org.awaitility.core.ConditionTimeoutException: Failed to wait for test run 2 State{lastRun=1, running=true, inProgress=false, run=1, passed=0, failed=1, skipped=0, isBrokenOnly=false, isTestOutput=false, isInstrumentationBasedReload=false, isLiveReload=true}
	at io.quarkus.test.ContinuousTestingTestUtils.waitForNextCompletion(ContinuousTestingTestUtils.java:43)
	at io.quarkus.smallrye.reactivemessaging.kafka.deployment.testing.KafkaDevServicesContinuousTestingTestCase.testContinuousTestingScenario2(KafkaDevServicesContinuousTestingTestCase.java:75)

@FroMage
Copy link
Member Author

FroMage commented Sep 9, 2021

Force-rebased, fixed the three tests. The kafka one on JDK16 I hope is unrelated. Let's see what CI says.

@FroMage
Copy link
Member Author

FroMage commented Sep 9, 2021

I can confirm this fixes the issue I have in my cheese shop demo, where each REST client has its own IO thread, and I'm not sure what vert.x context they share.

@FroMage
Copy link
Member Author

FroMage commented Sep 9, 2021

All checks passed, so it's up to @stuartwdouglas to reassess his review :)

@stuartwdouglas stuartwdouglas merged commit 300d8e8 into quarkusio:main Sep 9, 2021
@quarkus-bot quarkus-bot bot added this to the 2.3 - main milestone Sep 9, 2021
@ambition-consulting
Copy link

Hi, when will this be released? We want to go to production next week and would really like to have our ELK working by then.

@geoand
Copy link
Contributor

geoand commented Sep 15, 2021

@FroMage @stuartwdouglas I am kinda hesitant to backport this, but if you think we should then I will.

@stuartwdouglas
Copy link
Member

I think we should, it's pretty broken ATM.

@geoand
Copy link
Contributor

geoand commented Sep 15, 2021

Okay

@ambition-consulting
Copy link

Thank you - greatly appreciated. :)

@geoand
Copy link
Contributor

geoand commented Sep 15, 2021

So likely to be included in 2.2.4.Final which hopefully will be out next week sometime

@ambition-consulting
Copy link

ambition-consulting commented Sep 16, 2021

I built the 2.2.3.Final with the changes from this PR locally, retested, and successfully verified that it should fix the problem.

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.

Reactive REST Client breaks Hibernate Reactive Transactions
7 participants