Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-8083

NTFS reparse points return invalid path data strings for mount points (like those in a DFS share)

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Normal
    • Resolution: Fixed
    • None
    • PUP 4.10.9, PUP 5.3.3
    • None
    • None
    • Windows
    • Windows Kanban
    • Needs Assessment
    • Bug Fix
    • Puppet previously did not correctly resolve the path to Windows reparse points that are mount points rather than symbolic links. This could impact accessing paths on DFS shares.
    • Needs Assessment

    Description

      While investigating MODULES-4934, it was realized that NTFS reparse points inside of DFS mounts were using an inappropriate data structure.

      This would result in Puppet::Util::Windows::File.resolve_symlink returning a path string missing the first 4 bytes (and reading an extra 4 bytes of junk data off the end of the buffer).

      In short, DFS shares with reparse points never work in Puppet properly. A simple repro scenario is to use a file resource in Puppet to recursively copy from a DFS path (that contains the default hidden reparse point to the host drives C:
      Volume Information
      ) like:

      file { 'c:/Share1-test':
           ensure  => directory,
           recurse => true,
           source  => '//dfsdemo.local/Puppet/TestShare',
           source_permissions => 'ignore'
       }
      

      Attachments

        Issue Links

          Activity

            People

              ethan Ethan Brown
              ethan Ethan Brown
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Zendesk Support