[PUP-4866] Plugin Sync Should Use Long File Name (LFN) Paths on Windows Created: 2015/07/14  Updated: 2020/06/09

Status: Accepted
Project: Puppet
Component/s: Windows
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Normal
Reporter: Ryan Gard Assignee: Ethan Brown
Resolution: Unresolved Votes: 0
Labels: dsc, windows
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
blocks MODULES-2668 DSC - Plug-in Sync Fails on Windows 2... Resolved
is blocked by MODULES-4929 Spike - PUP-4866 (LFN Paths on Window... Accepted
is cloned by PUP-6152 PMT Should Use Long File Name (LFN) P... Ready for Engineering
is duplicated by MODULES-5689 puppetlabs-dsc : xSQLServer error whe... Closed
is duplicated by PUP-7888 Pluginsync modules with deep director... Closed
relates to PUP-8257 Puppet::FileSystem::Windows should su... Open
relates to MODULES-2408 DSC - Document PMT long file name issue Resolved
relates to PUP-6152 PMT Should Use Long File Name (LFN) P... Ready for Engineering
relates to PUP-4854 PMT fails to install modules on Windo... Closed
relates to PUP-6152 PMT Should Use Long File Name (LFN) P... Ready for Engineering
Team: Coremunity
Story Points: 5


Splitting PUP-4866 for PMT and Plug-in Sync to have a ticket for each effort.

This is the Plug-in Sync effort

It was discovered in PUP-4854 that long file name paths will break PMT and potentially plugin-sync. The PMT and Puppet core libraries should always use LFN (Long File Name aka "\\?\") paths for module installation to avoid long file name issues.

In PUP-4854 we reduced the amount of characters that PMT uses so that it allows for longer module paths to be installed. It helps with longer paths in modules, but it doesn't address the issue completely. We should instead look to use "\\?\" prepended to the path to allow for up to 32,000 characters in paths instead of the current MAX_PATH limit of 260 characters. See MSDN - Naming Files, Paths, and Namespaces.

Comment by Ryan Gard [ 2015/08/11 ]

Ethan Brown It's back!

Comment by Ethan Brown [ 2017/08/30 ]

Because pluginsync builds up a catalog, which is responsible for writing file resources, it's likely that fixes for this will end up in the implementation of the file type / provider.

Generated at Tue Jul 14 03:31:25 PDT 2020 using Jira 8.5.2#805002-sha1:a66f9354b9e12ac788984e5d84669c903a370049.