Skip to content

Errors on arg read/write should not block channel shutdown #723

@prashantv

Description

@prashantv

If a ArgReader is closed without reading all data, it returns an error:

r.err = errMoreDataInArgument

This does not close the underlying message exchange, so as far as the channel is concerned, there's a pending call. However, this pending call can never be cleared, since all further operations return the same error.

We should close the message exchange on any errors,

func (mex *messageExchange) shutdown() {

That will ensure that the channel close isn't blocked.

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