-
Notifications
You must be signed in to change notification settings - Fork 3k
Description
We have a Vert.x request filter that sets a local value (request header value) on the Vert.x context of the incoming request. Before this change, the duplicated context used to execute the health check was based on the same context that passed through the Vert.x request filter chain.
Recently Correct duplicated context creation in SmallRye Health got merged and might have broken this behaviour.
With this change, a new duplicated context is created before the Vert.x request filter chain is executed. As a result, any modifications made to the context within a Vert.x request filter will not be visible in the health check, since the health check now runs in a context that was duplicated "too early." I am not able anymore to access the put local from the request filter.
Before change
Incoming Request
|
v
[Vert.x Request Filter] --(sets local on context)-->
|
v
[Duplicate Context for Health Check]
|
v
[Health Check Execution]
After change
Incoming Request
|
v
+------------ [Duplicate Context for Health Check during build build up] <--- context duplicated too early
| |
| |
v v
[Vert.x Request Filter] [Health Check Execution]
(sets local on context) (does NOT see local set by filter)
Reproducer
https://github.com/HerrDerb/quarkus-issue/tree/health-vertx-issue
Test fails with current quarkus version.
Test succeed with 3.23.0
Originally posted by @HerrDerb in #48057 (comment)