dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.06k stars 4.69k forks source link

Named pipes on MacOS can't connect in .NET 8 #101741

Closed Jasper2213 closed 2 weeks ago

Jasper2213 commented 5 months ago

Description

I'm trying to use named pipes in .NET MAUI, but when testing on MacOS, the client can't connect to the server, it just hangs on connect.

When running the project with .NET 7, the client connects to the server on both Windows and MacOS.

Steps to Reproduce

  1. Clone the reproduction repo
  2. Open the net-8 solution
  3. Run the Server and Client at the same time

Expected outcome: Client connects to Server

Actual outcome: Client can't connect to Server, instead hangs at _pipeClient.ConnectAsync()

Link to public reproduction project repository

https://github.com/Jasper2213/named-pipes

Version with bug

8.0.7 SR2

Is this a regression from previous behavior?

Yes, this used to work in .NET MAUI

Last version that worked well

Unknown/Other

Affected platforms

macOS

Affected platform versions

No response

Did you find any workaround?

No response

Relevant log output

No response

drasticactions commented 5 months ago

@rolfbjarne This would be a runtime issue, right?

@Jasper2213 If you run your code in a net8.0-maccatalyst app that doesn't implement the MAUI UI Framework, you'll see the same issue. I don't think this is related to MAUI UI.

rolfbjarne commented 5 months ago

@rolfbjarne This would be a runtime issue, right?

Yes, this looks like an issue for dotnet/runtime.

Zhanglirong-Winnie commented 5 months ago

Verified this issue with Visual Studio 17.6.11 build 400 (8.0.7&8.0.3). Can repro on Mymac platform with sample project. .net7 works fine. image

vitek-karas commented 2 months ago

We should look into this and at least understand the problem as it's a regression (from 7 -> 8, but still).

buyaa-n commented 1 month ago

It doesn't seem we made changes in 8.0 that cause it suddenly to stop it working.

I was not able run the repro you shared, seems my mac is too old for running MAUI with .NET 8, I did run some sample apps on .NET 8.0 similar to the example in the doc successfully. So, if there is issue in runtime most likely it caused by MAC OS changes.

@Jasper2213 what version of MAC OS you are using? Could you try run the client/server sample apps in the doc on your machine?

Jasper2213 commented 1 month ago

Running the (slightly modified) sample from the docs works. I've tried adjusting the .NET MAUI sample to match this example as good as possible, but without success so far. I'll try to get it working, and will give an update if I'm successful.

I'm running on a Mac Mini with an M2 Pro on Sonoma 14.4.1

buyaa-n commented 1 month ago

Running the (slightly modified) sample from the docs works. I've tried adjusting the .NET MAUI sample to match this example as good as possible, but without success so far. I'll try to get it working, and will give an update if I'm successful

Thanks, I would try make sample app as close as MAUI app (for NamedPipeClientStream and NamedPipeServerStream usage prespective), it would narrow down the issue that it is not in runtime NamedPipeClientStream/NamedPipeServerStream libraries.

It doesn't sound like a regression in library, so removing the regression-from-last-release label and moving to 10.0 milestone

dotnet-policy-service[bot] commented 1 month ago

This issue has been marked needs-author-action and may be missing some important information.

dotnet-policy-service[bot] commented 1 month ago

This issue has been automatically marked no-recent-activity because it has not had any activity for 14 days. It will be closed if no further activity occurs within 14 more days. Any new comment (by anyone, not necessarily the author) will remove no-recent-activity.

dotnet-policy-service[bot] commented 2 weeks ago

This issue will now be closed since it had been marked no-recent-activity but received no further activity in the past 14 days. It is still possible to reopen or comment on the issue, but please note that the issue will be locked if it remains inactive for another 30 days.