Include number of maximum active streams in exception message (#11644)
Motivation: When users receive "Maximum active streams violated for this endpoint" exception, it's useful to know what is the current max streams limit on HTTP/2 connection. Modifications: - Include current number of maximum active streams in exception message; Result: Easier debugging of HTTP/2 connections.
This commit is contained in:
parent
ced712d4f7
commit
3a1a3de4e9
@ -474,8 +474,10 @@ public class DefaultHttp2Connection implements Http2Connection {
|
|||||||
@Override
|
@Override
|
||||||
public Http2Stream open(boolean halfClosed) throws Http2Exception {
|
public Http2Stream open(boolean halfClosed) throws Http2Exception {
|
||||||
state = activeState(id, state, isLocal(), halfClosed);
|
state = activeState(id, state, isLocal(), halfClosed);
|
||||||
if (!createdBy().canOpenStream()) {
|
final DefaultEndpoint<? extends Http2FlowController> endpoint = createdBy();
|
||||||
throw connectionError(PROTOCOL_ERROR, "Maximum active streams violated for this endpoint.");
|
if (!endpoint.canOpenStream()) {
|
||||||
|
throw connectionError(PROTOCOL_ERROR, "Maximum active streams violated for this endpoint: " +
|
||||||
|
endpoint.maxActiveStreams());
|
||||||
}
|
}
|
||||||
|
|
||||||
activate();
|
activate();
|
||||||
@ -888,7 +890,8 @@ public class DefaultHttp2Connection implements Http2Connection {
|
|||||||
}
|
}
|
||||||
boolean isReserved = state == RESERVED_LOCAL || state == RESERVED_REMOTE;
|
boolean isReserved = state == RESERVED_LOCAL || state == RESERVED_REMOTE;
|
||||||
if (!isReserved && !canOpenStream() || isReserved && numStreams >= maxStreams) {
|
if (!isReserved && !canOpenStream() || isReserved && numStreams >= maxStreams) {
|
||||||
throw streamError(streamId, REFUSED_STREAM, "Maximum active streams violated for this endpoint.");
|
throw streamError(streamId, REFUSED_STREAM, "Maximum active streams violated for this endpoint: " +
|
||||||
|
(isReserved ? maxStreams : maxActiveStreams));
|
||||||
}
|
}
|
||||||
if (isClosed()) {
|
if (isClosed()) {
|
||||||
throw connectionError(INTERNAL_ERROR, "Attempted to create stream id %d after connection was closed",
|
throw connectionError(INTERNAL_ERROR, "Attempted to create stream id %d after connection was closed",
|
||||||
|
Loading…
Reference in New Issue
Block a user