Skip to content

Max inbound stream error logging is incorrect #1278

Closed
@stephenc-pace

Description

@stephenc-pace

In the _recv_headers_frame code, a check is made on the number if inbound streams. If this is above the limit, then a TooManyStreamsError is raised.

The error text and logged value is incorrect and has likely been copy pasted from the other similar error check.

    def _receive_headers_frame(self, frame):
        """
        Receive a headers frame on the connection.
        """
        # If necessary, check we can open the stream. Also validate that the
        # stream ID is valid.
        if frame.stream_id not in self.streams:
            max_open_streams = self.local_settings.max_concurrent_streams
            if (self.open_inbound_streams + 1) > max_open_streams:
                raise TooManyStreamsError(
                    "Max outbound streams is %d, %d open" %
                    (max_open_streams, self.open_outbound_streams)
                )

This should say "Max inbound streams"
and log (max_open_streams, self.open_inbound_streams)

It would probably also be beneficial to take a local copy of the outbound stream count and use that in the log message as the property accessor has side effects.

raise TooManyStreamsError(

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions