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/8.0-staging] Support setting ACLs on file paths longer than MAX_PATH #109674

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Nov 9, 2024

Backport of #92460 to release/8.0-staging

/cc @jeffhandley @karakasa @adamsitnik

Customer Impact

  • Customer reported
  • Found internally

Customer @AliveDevil requested this fix be backported to the LTS .NET 8 release, with the following comments:

Currently in the process of migrating a codebase from .NET framework to .NET 8 due to .NET Framework not handling long paths correctly. When .NET 8 doesn’t support long paths like this, there’s no point in going forward, as the next possible LTS version is 10 at the end of 2025.

Scenario is a file synchronization tool, which sets Acls on files, based on remote attributes. As a workaround I’ve used reflection and a lambdaexpression to get access to the Persist(string) overload, to call that directly with the \?-prefix.

Regression

  • Yes
  • No

Testing

This fix was merged into .NET 9 in September 2023, and has been in place since Preview 1. A new unit test was added as part of the original fix, and the fix also reuses an existing approach and PathInternal.EnsureExtendedPrefixIfNeeded helper method.

Risk

Low. Targeted fix for the specific ACL scenario.

karakasa and others added 2 commits November 9, 2024 22:02
Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
Copy link
Contributor

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

@jeffhandley jeffhandley added this to the 8.0.x milestone Nov 9, 2024
@jeffhandley jeffhandley self-assigned this Nov 9, 2024
@jeffhandley jeffhandley requested a review from artl93 November 9, 2024 22:14
@carlossanlop
Copy link
Member

@adamsitnik @jeffhandley friendly reminder that today's Code Complete day for the February 2025 Release. If you want this PR included in that release ,please make sure it gets a Tactics approval, a sign-off from an area owners, the CI failures are investigated, and merged before 4pm PT. Otherwise it will have to wait until next month.

@carlossanlop
Copy link
Member

@adamsitnik @jeffhandley Today is code complete for the April Release. If you want this fix included in this release, please get it approved by Tactics and merge it before 4pm PT.

@jeffhandley jeffhandley added Servicing-consider Issue for next servicing release review and removed Servicing-consider Issue for next servicing release review labels Mar 10, 2025
@leecow leecow added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Mar 18, 2025
@leecow leecow modified the milestones: 8.0.x, 8.0.16 Mar 18, 2025
@jeffhandley jeffhandley added Servicing-approved Approved for servicing release and removed Servicing-approved Approved for servicing release labels Mar 19, 2025
@jeffhandley
Copy link
Member

The 'check-labels' check is in a bad state. I'm going to close this PR and replace it with a fresh backport PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-System.IO Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants