Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release/6.0-maui] Exclude the managed code around libproc on iOS/tvOS #62235

Conversation

MaximLipnin
Copy link
Contributor

Backport of #61590, #61670, #61807, #61826, and #61871 to release/6.0-maui.

/cc @MaximLipnin @steveisok

Customer Impact

A handful of System.Diagnostics.Process API's use libproc when targeting iOS & tvOS. This is a private API and will result in Apple rejecting apps that use it from publishing to the App Store.

We will PNSE and add UnsupportedOSPlatform to the API's that try to access the private API's and disable related tests.

Testing

Manual testing

Risk

Low.

MaximLipnin and others added 5 commits December 1, 2021 16:35
Since libproc is a private Apple API, it is not available on iOS/tvOS and should be excluded (see dotnet#61265 (comment) and above for more details).  
This PR excludes $(CommonPath)Interop\OSX\Interop.libproc.cs on the iOS/tvOS as well as makes some methods in Process, ProcessManager, and ProcessThread classes calling that API throw PNSE so that for iOS/tvOS it's possible to re-use the respective *.UnknownUnix.cs parts.
This is a follow up PR for dotnet#61590.

It includes:

- additional UnsupportedOSPlatform annotations for some System.Diagnostics.Process APIs throwing PNSE on iOS/tvOS (they started doing so after excluding some managed logic around librpoc )

- fixing a bit ugly workaround for CS0649 (see https://github.com/dotnet/runtime/pull/61590/files#r749525127) - used a local pragma in the ThreadInfo class.

- skipping the respective S.D.P. tests ( it will address [iOS/tvOS] System.Diagnostics.Tests.ProcessTests.TestGetProcesses fails on devices dotnet#60588 as well)
…stenerTests on iOS/tvOS (dotnet#61807)

This marks System.Diagnostics.TextWriterTraceListenerTests.XmlWriterTraceListenerTests withSkipOnPlatform attribute for iOS/tvOS as those tests try to create a process info, which throws PNSE after S.D.Process API's around libproc have been excluded in dotnet#61590.
A few tests popped up as failures on the rolling build due to parts of System.Diagnostics.Process throwing PNSE. Disabled the functional tests from running on arm64 as mlaunch can't detect the return code.
@dotnet-issue-labeler
Copy link

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

@ghost
Copy link

ghost commented Dec 1, 2021

Tagging subscribers to this area: @dotnet/area-system-diagnostics-process
See info in area-owners.md if you want to be subscribed.

Issue Details

Backport of #61590, #61670, #61807, #61826, and #61871 to release/6.0-maui.

/cc @MaximLipnin @steveisok

Customer Impact

A handful of System.Diagnostics.Process API's use libproc when targeting iOS & tvOS. This is a private API and will result in Apple rejecting apps that use it from publishing to the App Store.

We will PNSE and add UnsupportedOSPlatform to the API's that try to access the private API's and disable related tests.

Testing

Manual testing

Risk

Low.

Author: MaximLipnin
Assignees: -
Labels:

area-System.Diagnostics.Process, new-api-needs-documentation

Milestone: -

@MaximLipnin
Copy link
Contributor Author

/azp run runtime-manual

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@steveisok steveisok merged commit 6c8d2b0 into dotnet:release/6.0-maui Dec 2, 2021
@MaximLipnin MaximLipnin deleted the port_SDProcess_changes_to_release6_maui branch December 3, 2021 15:16
@ghost ghost locked as resolved and limited conversation to collaborators Jan 2, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants