Age | Commit message (Collapse) | Author |
|
|
|
Co-authored-by: Björn Svensson <[email protected]>
|
|
|
|
|
|
|
|
|
|
Now tested against OTP-24+.
Erlang.mk has been updated as well.
|
|
This makes req_SUITE's cert_undefined test work again.
|
|
|
|
|
|
|
|
The key order of serialised maps changed in OTP-26.
|
|
ct_helper now uses the test certificates generated by
public_key. A few adjustments had to be made as a result.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
They replace and deprecate the {true,URI} return value.
|
|
|
|
... to ensure that the same values are used in all places.
|
|
Note: This commit makes cowboy depend on cowlib master.
Graceful shutdown for HTTP/2:
1. A GOAWAY frame with the last stream id set to 2^31-1 is sent and a
timer is started (goaway_initial_timeout, default 1000ms), to wait
for any in-flight requests sent by the client, and the status is set
to 'closing_initiated'. If the client responds with GOAWAY and closes
the connection, we're done.
2. A second GOAWAY frame is sent with the actual last stream id and the
status is set to 'closing'. If no streams exist, the connection
terminates. Otherwise a second timer (goaway_complete_timeout,
default 3000ms) is started, to wait for the streams to complete. New
streams are not accepted when status is 'closing'.
3. If all streams haven't completed after the second timeout, the
connection is forcefully terminated.
Graceful shutdown for HTTP/1.x:
1. If a request is currently being handled, it is waited for and the
response is sent back to the client with the header "Connection:
close". Then, the connection is closed.
2. If the current request handler is not finished within the time
configured in transport option 'shutdown' (default 5000ms), the
connection process is killed by its supervisor (ranch).
Implemented for HTTP/1.x and HTTP/2 in the following scenarios:
* When receiving exit signal 'shutdown' from the supervisor (e.g. when
cowboy:stop_listener/3 is called).
* When a connection process is requested to terminate using
sys:terminate/2,3.
LH: Edited tests a bit and added todos for useful tests to add.
|
|
|
|
|
|
|
|
Verb agreement error "The request process executes
middlewares which, by default, including the router
and then the execution of handlers." -> "The request
process executes middlewares. By default, the request
process executes the router and then the handlers."
Adverbial clause at beginning of sentence needs comma
"By default Cowboy comes..." -> "By default, Cowboy comes..."
|
|
|
|
Thanks Tamir Halperin for pointing this out.
[skip ci]
|
|
|
|
|
|
|
|
When calling cowboy_req:reply/4 with a body a crash will occur
resulting in a 500 response. When calling cowboy_req:stream_reply/2,3
and then attempting to send a body a crash will occur.
|
|
100 is very low for current deployments. 1000 is more
appropriate as a default value.
|
|
|
|
|
|
Still seeing intermittent failures on Windows due to
timetrap so let's see if doubling the timeout again helps.
|
|
Again to avoid intermittent issues.
|
|
|
|
|
|
This happens from time to time on Windows and is partially
due to how the test is written.
|
|
|
|
This is to make up for very slow or low resource environments,
like the FreeBSD CI environment currently.
|
|
This is mostly to ensure that the GOAWAY frame is properly
received on Windows in some tests, but should be benefitial
also in production in particular when clients are slower.
|
|
The local network is much slower so the tests take longer there.
|
|
This causes the test to get stuck because both the client and
server end up waiting in Transport:send for the other side to
read data from the socket.
|