-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
False
-
-
False
-
---
-
-
This is a follow up on b8801de since the check at
if (Vertx.currentContext() == ((HttpServerRequestInternal) request).context()) {
return false;
} else { // NEVER TAKEN!
doesn't seem taken.
Additionally I see no point to accumulate the overflow ourself since:
the event loop cannot be blocked, by definition (which means, no overflow, even now, on master)
the worker threads just wait till there's enough available capacity in the write q
FYI this code won't last past Vertx 5 because:
Vertx has introduced synchronizing on HTTP connections at eclipse-vertx/vert.x@c0c1c59
The existing VertxOutputStream code is relying on "extending" the atomicity of awaiting the write queue not be full (which is made of N operations vs the connection) relying on this implementation detail
Vertx 5 has removed such synchronization
Hopefully @vietj has a different and racy mechanism in Vertx 5 which will use a single method to do what we need here.
Let's see if the CI is happy now 🗡️
Fixes #50317