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

Error: /File[/var/lib/puppet/facts.d]: Could not evaluate when no facts.d folder on any module

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Duplicate
    • Affects Version/s: PUP 3.7.3
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Template:

      Description

      Puppet reports an error when it cannot find any facts.d folder in any module:

      Error: /File[/var/lib/puppet/facts.d]: Could not evaluate: Could not retrieve information from environment some_environment source(s) puppet://puppet.master/pluginfacts
      

      the workaround is to create a "facts.d" folder at $environmentpath/module_name/.

      This is a bug, because this happens due to:

      puppet/lib/puppet/file_serving/mount/pluginfacts.rb

      def find(relative_path, request)
        return nil unless mod = request.environment.modules.find { |mod|
          mod.pluginfact(relative_path)
        }
        path = mod.pluginfact(relative_path)
        path
      end
      

      which gets called when requestin pluginfacts and that basicly will return "whatever path" it can find if it can find a "fact.d" path somewhere, and nil otherwise.

      Now whats the whole point of such a "find" if it just returns whatever? Why to make it in a way that breaks backwards compatibility with puppet 3.5? No idea...

        Attachments

          Issue Links

            Activity

              jsd-sla-details-panel

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  hsanjuan Hector Sanjuan
                • Votes:
                  1 Vote for this issue
                  Watchers:
                  10 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Zendesk Support