Skip to content

Socket.Close() blocks indefinitely when Socket.ReceiveMessageFrom() is being called in another thread. #37873

Description

@ShreyasZare

Socket.Close() blocks indefinitely when Socket.ReceiveMessageFrom() is being called in another thread in Linux on .NET Core runtime v3.1.5.

The only way to release the block that I came up with is to send any UDP packet to the listening socket so that ReceiveMessageFrom() call returns and the socket closes.

Configuration

  • .NET Core runtime v3.1.5.
  • Tested on Ubuntu 18.04 LTS and Raspbian Buster.
  • Tested on x64 and ARM32.

Regression?

This issue as far as I can tell did not come up when the original code was written and tested on .NET Core 2.2. It started to come up when the code was upgraded to .NET Core 3.1 and redeployed.

This issue does not affect Windows installations.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions