Issue #11408 has been updated by Jeff McCune.

Status changed from Code Insufficient to Merged - Pending Release

# Merged into 2.7.x #

As: 
<https://github.com/puppetlabs/puppet/commit/4cc1142da35ecc3b052c67e550bba5d39c2b78f4>
----------------------------------------
Bug #11408: Windows fact and pluginsync are broken
https://projects.puppetlabs.com/issues/11408

Author: Mark Plaksin
Status: Merged - Pending Release
Priority: High
Assignee: Josh Cooper
Category: windows
Target version: 2.7.x
Affected Puppet version: 2.7.6
Keywords: 
Branch: https://github.com/puppetlabs/puppet/pull/281


[ Yikes, sorry for the terrible formatting!  Here's try #2 :) ]

Hi,

I'm a *nix admin testing Puppet on Windows for the first time.  Everything
installed fine but I get "Could not evaluate: can't convert Fixnum into
String" when I run Puppet.

Versions:
- Windows 2008
- Puppet 2.7.9 on client and server
- Facter 1.6.4

This looks similar to #10586 which is marked as a duplicate of #10614.  I
don't know enough to know whether my problem is really related or not.

I'm running Puppet like this:
C:\ProgramData\PuppetLabs\puppet\etc>puppet agent --verbose --server 
puppet.example.com -t --debug --trace --ignores --pluginsync

and I get this stack trace:

<pre>
info: Retrieving plugin
debug: file_metadata supports formats: b64_zlib_yaml marshal pson raw yaml; 
using pson
debug: Using cached certificate for ca
debug: Using cached certificate for yar
debug: Using cached certificate_revocation_list for ca
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/util/windows/security.rb:577:in `pack'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/util/windows/security.rb:577:in 
`string_to_sid_ptr'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/provider/file/windows.rb:40:in 
`name2uid'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/type/file/owner.rb:13:in `insync?'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/type/file/owner.rb:12:in `map!'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/type/file/owner.rb:12:in `insync?'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/property.rb:162:in `safe_insync?'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction/resource_harness.rb:61:in 
`perform_changes'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction/resource_harness.rb:60:in 
`each'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction/resource_harness.rb:60:in 
`perform_changes'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction/resource_harness.rb:133:in 
`evaluate'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction.rb:49:in `apply'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction.rb:84:in `eval_resource'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction.rb:103:in `evaluate'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/util.rb:476:in `thinmark'
C:/Ruby187/lib/ruby/1.8/benchmark.rb:308:in `realtime'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/util.rb:475:in `thinmark'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction.rb:103:in `evaluate'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction.rb:380:in `traverse'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction.rb:99:in `evaluate'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:141:in `apply'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/configurer/downloader.rb:32:in 
`evaluate'
C:/Ruby187/lib/ruby/1.8/timeout.rb:67:in `timeout'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/configurer/downloader.rb:31:in 
`evaluate'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/configurer/plugin_handler.rb:19:in 
`download_plugins'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/configurer.rb:77:in `prepare'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/configurer.rb:137:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent.rb:39:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent/locker.rb:21:in `lock'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent.rb:39:in `run'
C:/Ruby187/lib/ruby/1.8/sync.rb:230:in `synchronize'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent.rb:39:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent.rb:103:in `with_client'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent.rb:37:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:172:in `call'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:172:in `controlled_run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent.rb:35:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:336:in `onetime'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:310:in 
`run_command'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:306:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:410:in `hook'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:306:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:401:in `exit_on_fail'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:306:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:69:in `execute'
C:/Ruby187/bin/puppet:4
err: /File[C:/ProgramData/PuppetLabs/puppet/var/lib]: Could not evaluate: can't 
convert Fixnum into String
</pre>

I have no idea whether this this is in the right ballpark or not but If I
add 'string = string.to_s' on line 577 of security.rb it gets further but
still has trouble:

<pre>
info: Retrieving plugin
debug: file_metadata supports formats: b64_zlib_yaml marshal pson raw yaml; 
using pson
debug: Using cached certificate for ca
debug: Using cached certificate for yar
debug: Using cached certificate_revocation_list for ca
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/type/file/owner.rb:13:in `insync?'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/type/file/owner.rb:12:in `map!'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/type/file/owner.rb:12:in `insync?'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/property.rb:162:in `safe_insync?'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction/resource_harness.rb:61:in 
`perform_changes'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction/resource_harness.rb:60:in 
`each'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction/resource_harness.rb:60:in 
`perform_changes'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction/resource_harness.rb:133:in 
`evaluate'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction.rb:49:in `apply'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction.rb:84:in `eval_resource'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction.rb:103:in `evaluate'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/util.rb:476:in `thinmark'
C:/Ruby187/lib/ruby/1.8/benchmark.rb:308:in `realtime'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/util.rb:475:in `thinmark'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction.rb:103:in `evaluate'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction.rb:380:in `traverse'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/transaction.rb:99:in `evaluate'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:141:in `apply'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/configurer/downloader.rb:32:in 
`evaluate'
C:/Ruby187/lib/ruby/1.8/timeout.rb:67:in `timeout'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/configurer/downloader.rb:31:in 
`evaluate'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/configurer/plugin_handler.rb:19:in 
`download_plugins'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/configurer.rb:77:in `prepare'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/configurer.rb:137:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent.rb:39:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent/locker.rb:21:in `lock'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent.rb:39:in `run'
C:/Ruby187/lib/ruby/1.8/sync.rb:230:in `synchronize'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent.rb:39:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent.rb:103:in `with_client'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent.rb:37:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:172:in `call'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:172:in `controlled_run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/agent.rb:35:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:336:in `onetime'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:310:in 
`run_command'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:306:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:410:in `hook'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:306:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:401:in `exit_on_fail'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/application.rb:306:in `run'
C:/Ruby187/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:69:in `execute'
C:/Ruby187/bin/puppet:4
err: /File[C:/ProgramData/PuppetLabs/puppet/var/lib]: Could not evaluate: Could 
not find user 2988
</pre>

"2988" are the last 4 digits of the SID of the user I logged in with (via
RDP).  I was logged in via RDP as this user when I installed Ruby and
Puppet.  The cmd window in which I'm running puppet in running as
Administrator.  (I did become non-administrator when installing at least
one gem because of some error about drive H: not being
found...unfortunately I can't find the link that said "If this happens,
install as non-Administrator)

Note that running 'puppet apply' on this simple file resource works fine:
<pre>
file { 'c:\Users\happy\Downloads\test.txt':
    ensure => 'file',
    mode => '660',
    owner => 'Administrator',
    group => 'Administrators',
    content => 'Hi there',
}
</pre>

Here is the output if 'puppet config print all' if that helps.

<pre>
allow_duplicate_certs = false
archive_file_server = puppet
archive_files = false
async_storeconfigs = false
authconfig = C:/ProgramData/PuppetLabs/puppet/etc/namespaceauth.conf
autoflush = false
autosign = C:/ProgramData/PuppetLabs/puppet/etc/autosign.conf
bindaddress = 0.0.0.0
bucketdir = C:/ProgramData/PuppetLabs/puppet/var/bucket
ca = true
ca_days = ""
ca_md = md5
ca_name = Puppet CA: yar
ca_port = 8140
ca_server = puppet
ca_ttl = 5y
cacert = C:/ProgramData/PuppetLabs/puppet/etc/ssl/ca/ca_crt.pem
cacrl = C:/ProgramData/PuppetLabs/puppet/etc/ssl/ca/ca_crl.pem
cadir = C:/ProgramData/PuppetLabs/puppet/etc/ssl/ca
cakey = C:/ProgramData/PuppetLabs/puppet/etc/ssl/ca/ca_key.pem
capass = C:/ProgramData/PuppetLabs/puppet/etc/ssl/ca/private/ca.pass
caprivatedir = C:/ProgramData/PuppetLabs/puppet/etc/ssl/ca/private
capub = C:/ProgramData/PuppetLabs/puppet/etc/ssl/ca/ca_pub.pem
catalog_format = ""
catalog_terminus = compiler
cert_inventory = C:/ProgramData/PuppetLabs/puppet/etc/ssl/ca/inventory.txt
certdir = C:/ProgramData/PuppetLabs/puppet/etc/ssl/certs
certdnsnames = ""
certificate_revocation = true
certname = yar
classfile = C:/ProgramData/PuppetLabs/puppet/var/state/classes.txt
client_datadir = C:/ProgramData/PuppetLabs/puppet/var/client_data
clientbucketdir = C:/ProgramData/PuppetLabs/puppet/var/clientbucket
clientyamldir = C:/ProgramData/PuppetLabs/puppet/var/client_yaml
code = ""
color = false
confdir = C:/ProgramData/PuppetLabs/puppet/etc
config = C:/ProgramData/PuppetLabs/puppet/etc/puppet.conf
config_version = ""
configprint = all
configtimeout = 120
couchdb_url = http://127.0.0.1:5984/puppet
csrdir = C:/ProgramData/PuppetLabs/puppet/etc/ssl/ca/requests
daemonize = false
dbadapter = sqlite3
dbconnections = ""
dblocation = C:/ProgramData/PuppetLabs/puppet/var/state/clientconfigs.sqlite3
dbmigrate = false
dbname = puppet
dbpassword = puppet
dbport = ""
dbserver = localhost
dbsocket = ""
dbuser = puppet
deviceconfig = C:/ProgramData/PuppetLabs/puppet/etc/device.conf
devicedir = C:/ProgramData/PuppetLabs/puppet/var/devices
diff = diff
diff_args = -u
dns_alt_names = ""
document_all = false
downcasefacts = false
dynamicfacts = memorysize,memoryfree,swapsize,swapfree
environment = production
evaltrace = false
external_nodes = none
factdest = C:/ProgramData/PuppetLabs/puppet/var/facts/
factpath = 
C:/ProgramData/PuppetLabs/puppet/var/lib/facter;C:/ProgramData/PuppetLabs/puppet/var/facts
facts_terminus = facter
factsignore = .svn CVS
factsource = puppet://puppet/facts/
factsync = false
fileserverconfig = C:/ProgramData/PuppetLabs/puppet/etc/fileserver.conf
filetimeout = 15
freeze_main = false
genconfig = false
genmanifest = false
graph = false
graphdir = C:/ProgramData/PuppetLabs/puppet/var/state/graphs
group = puppet
hostcert = C:/ProgramData/PuppetLabs/puppet/etc/ssl/certs/yar.pem
hostcrl = C:/ProgramData/PuppetLabs/puppet/etc/ssl/crl.pem
hostcsr = C:/ProgramData/PuppetLabs/puppet/etc/ssl/csr_yar.pem
hostprivkey = C:/ProgramData/PuppetLabs/puppet/etc/ssl/private_keys/yar.pem
hostpubkey = C:/ProgramData/PuppetLabs/puppet/etc/ssl/public_keys/yar.pem
http_compression = false
http_proxy_host = none
http_proxy_port = 3128
httplog = $vardir/logThe Puppet log directory./http.log
ignorecache = false
ignoreimport = false
ignoreschedules = false
inventory_port = 8140
inventory_server = puppet
inventory_terminus = facter
keylength = 1024
lastrunfile = C:/ProgramData/PuppetLabs/puppet/var/state/last_run_summary.yaml
lastrunreport = C:/ProgramData/PuppetLabs/puppet/var/state/last_run_report.yaml
ldapattrs = all
ldapbase = ""
ldapclassattrs = puppetclass
ldapnodes = false
ldapparentattr = parentnode
ldappassword = ""
ldapport = 389
ldapserver = ldap
ldapssl = false
ldapstackedattrs = puppetvar
ldapstring = (&(objectclass=puppetClient)(cn=%s))
ldaptls = false
ldapuser = ""
lexical = false
libdir = C:/ProgramData/PuppetLabs/puppet/var/lib
listen = false
localcacert = C:/ProgramData/PuppetLabs/puppet/etc/ssl/certs/ca.pem
localconfig = C:/ProgramData/PuppetLabs/puppet/var/state/localconfig
logdir = $vardir/logThe Puppet log directory.
manage_internal_file_permissions = true
manifest = C:/ProgramData/PuppetLabs/puppet/etc/manifests/site.pp
manifestdir = C:/ProgramData/PuppetLabs/puppet/etc/manifests
masterhttplog = $vardir/logThe Puppet log directory./masterhttp.log
masterlog = $vardir/logThe Puppet log directory./puppetmaster.log
masterport = 8140
maximum_uid = 4294967290
mkusers = false
modulepath = 
C:/ProgramData/PuppetLabs/puppet/etc/modules;/usr/share/puppet/modules
name = config
node_name = cert
node_name_fact = ""
node_name_value = yar
node_terminus = plain
noop = false
onetime = false
passfile = C:/ProgramData/PuppetLabs/puppet/etc/ssl/private/password
path = none
pidfile = C:/ProgramData/PuppetLabs/puppet/var/run/config.pid
plugindest = C:/ProgramData/PuppetLabs/puppet/var/lib
pluginsignore = .svn CVS .git
pluginsource = puppet://puppet/plugins
pluginsync = false
postrun_command = ""
preferred_serialization_format = pson
prerun_command = ""
privatedir = C:/ProgramData/PuppetLabs/puppet/etc/ssl/private
privatekeydir = C:/ProgramData/PuppetLabs/puppet/etc/ssl/private_keys
publickeydir = C:/ProgramData/PuppetLabs/puppet/etc/ssl/public_keys
puppetdlockfile = C:/ProgramData/PuppetLabs/puppet/var/state/puppetdlock
puppetdlog = $vardir/logThe Puppet log directory./puppetd.log
puppetport = 8139
queue_source = stomp://localhost:61613/
queue_type = stomp
rails_loglevel = info
railslog = $vardir/logThe Puppet log directory./rails.log
report = true
report_port = 8140
report_server = puppet
reportdir = C:/ProgramData/PuppetLabs/puppet/var/reports
reportfrom = report@YAR.
reports = store
reportserver = puppet
reporturl = http://localhost:3000/reports/upload
req_bits = 2048
requestdir = C:/ProgramData/PuppetLabs/puppet/etc/ssl/certificate_requests
resourcefile = C:/ProgramData/PuppetLabs/puppet/var/state/resources.txt
rest_authconfig = C:/ProgramData/PuppetLabs/puppet/etc/auth.conf
route_file = C:/ProgramData/PuppetLabs/puppet/etc/routes.yaml
rrddir = C:/ProgramData/PuppetLabs/puppet/var/rrd
rrdinterval = 1800
run_mode = user
rundir = C:/ProgramData/PuppetLabs/puppet/var/run
runinterval = 1800
sendmail = ""
serial = C:/ProgramData/PuppetLabs/puppet/etc/ssl/ca/serial
server = puppet
server_datadir = C:/ProgramData/PuppetLabs/puppet/var/server_data
servertype = webrick
show_diff = false
signeddir = C:/ProgramData/PuppetLabs/puppet/etc/ssl/ca/signed
smtpserver = none
splay = false
splaylimit = 1800
ssl_client_header = HTTP_X_CLIENT_DN
ssl_client_verify_header = HTTP_X_CLIENT_VERIFY
ssldir = C:/ProgramData/PuppetLabs/puppet/etc/ssl
statedir = C:/ProgramData/PuppetLabs/puppet/var/state
statefile = C:/ProgramData/PuppetLabs/puppet/var/state/state.yaml
storeconfigs = false
storeconfigs_backend = active_record
strict_hostname_checking = false
summarize = false
syslogfacility = daemon
tagmap = C:/ProgramData/PuppetLabs/puppet/etc/tagmail.conf
tags = ""
templatedir = C:/ProgramData/PuppetLabs/puppet/var/templates
thin_storeconfigs = false
trace = false
use_cached_catalog = false
usecacheonfailure = true
user = puppet
vardir = C:/ProgramData/PuppetLabs/puppet/var
yamldir = C:/ProgramData/PuppetLabs/puppet/var/yaml
zlib = true
</pre>


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to