tree de7aa2f4ef8967c4c32d5d60ca2d4afa902492c5
parent 3dd108dee7775bd56022b735b9ac59d34cf5056e
author Edwin Kempin <ekempin@google.com> 1627026874 +0200
committer Edwin Kempin <ekempin@google.com> 1627028057 +0200

Add interface that allows Gerrit to check whether a request is cancelled

At the moment Gerrit doesn't get to know when a client disconnects until
the response is written. This means that requests continue to run even
if the is client is no longer waiting for a response. This is bad,
especially for very long-running requests, as these requests keep server
threads occupied. If there is an issue with a certain endpoint or
repository and requests get stuck, this can cause the server running out
of threads so that all users get blocked. To avoid this situation Gerrit
should be able to recognize if the client disconnected and then abort
the request to free up the thread. This may not be possible for all kind
of requests (e.g. HTTP requests) but where possible we want to make it
work. This change is the first step towards this goal.

The interface is designed in such a way that it's possible to return a
reason for the cancellation. This allows to differentiate between
cancellations from the user and cancellations due to exceeded deadlines.

Note, the RequestStateProvider interface is not a regular extension
point where extensions can be registered via Guice. Instead
implementations will be stored in a ThreadLocal variable so that they
are accessible during the request execution. Since requests will need to
check often whether the request is cancelled, it's better to avoid any
overhead that comes with injecting extension point implementations via
Guice.

Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: Ie1b7d337fbd4bbdd8f426ac111ea28ec88066722
