jetty.project/jetty-ee10/jetty-ee10-tests
Simone Bordet dde369a7f2 Issue #12272 - Potential deadlock with Vaadin.
Fixed the case where a GOAWAY followed by a TCP FIN was causing a race between closing the `EndPoint` and running the failure `Runnable` task.

The TCP FIN after the GOAWAY causes the streams to be failed on the server;
in turn, failing the streams generates failure `Runnable` tasks that are submitted to the HTTP/2 execution strategy;
however, the streams were destroyed before the failure `Runnable` tasks actually ran, so the `EndPoint` was closed;
closing the `EndPoint` would close the `HTTP2Connection`, which in turn would stop the execution strategy;
this lead to the fact that the failure `Runnable` tasks were never run.

Now, the failure `Runnable` tasks are invoked via `ThreadPool.executeImmediately()` rather than being submitted to the execution strategy.
This ensures that they would be run and not queued, even in case of lack of threads, so that they could unblock blocked reads or writes, freeing up blocked threads.

Additionally, improved `HTTP2Stream.onFailure()` to destroy the stream only after the failure tasks have completed.

Smaller other fixes to improve the code.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-11-12 16:24:23 +02:00
..
jetty-ee10-test-bad-websocket-webapp Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-badinit-webapp Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-cdi Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-cdi-common-webapp Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-client-transports Issue #12272 - Potential deadlock with Vaadin. 2024-11-12 16:24:23 +02:00
jetty-ee10-test-felix-webapp Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-http2-webapp Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-integration Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-jersey Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-jmx Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-jndi Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-log4j2-webapp Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-loginservice Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-openid-webapp Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-owb-cdi-webapp Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-quickstart Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-sessions Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-simple-session-webapp Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-webapp-rfc2616 Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-websocket-client-provided-webapp Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-websocket-client-webapp Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-websocket-webapp Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
jetty-ee10-test-weld-cdi-webapp Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00
pom.xml Updating to version 12.0.16-SNAPSHOT 2024-11-05 14:01:49 -06:00