Issue #2050 has been updated by jamtur01. Status changed from Ready for Checkin to Closed
Pushed in commit:"a3bb201bd4c964ab4f68e00895b692d9d9585407" in branch 0.24.x ---------------------------------------- Bug #2050: LDAP user in multiple groups causes NoMethodError exception http://projects.reductivelabs.com/issues/2050 Author: TrevorHemsley Status: Closed Priority: High Assigned to: jamtur01 Category: LDAP Target version: 0.24.8 Complexity: Easy Affected version: 0.24.7 Keywords: I am using puppet 0.24.7 on Centos 5.2 and am attempting to set up users in LDAP via puppet. I am getting an error msg that says <pre> err: Got an uncaught exception of type NoMethodError: undefined method `join' for :absent:Symbol </pre> on the second run of puppetd. First time through I run <pre> puppetd --test --tags users </pre> and it works and sets up the users "opt-query" and "opt-arch" in my LDAP directory. If I then run the exact same command again then it fails with the error above. Here's a simplified test case of what I have set up and it fails for me using this. It appears to be something to do with the multiple groups specified for the opt-arch user - do I have a mistake in the way I have this set up in the define? <pre> define ldapuser ( $uid, $groups, $home, $shell ) { group {"$title": gid => $uid, provider => "ldap", ensure => present } user {"$title": comment => "$title", ensure => present, groups => [ "$groups" ], gid => "$uid", home => "$home", managehome => "false", provider => "ldap", shell => "$shell", uid => "$uid", require => Group["$title"] } } class users { ldapuser {"opt-query": home => "/some/dir/here", shell => "/sbin/nologin", uid => "506", groups => ["opt-query"] } ldapuser {"opt-arch": home => "/some/dir/here", shell => "/sbin/nologin", uid => "507", groups => [ "opt-query","opt-arch" ], require => [ Ldapuser["opt-query"] ] } } </pre> Running puppetd with --trace gives me the following stack trace: <pre> puppetd --test --noop --tags users --trace info: Loading fact drbd info: Retrieving facts info: Loading fact drbd warning: Found multiple default providers for group: ldap, groupadd; using ldap warning: Found multiple default providers for user: ldap, useradd; using ldap info: Caching catalog at /var/lib/puppet/localconfig.yaml notice: Starting catalog run notice: //Node[basicnode]/users/Sysusersetup[apache]/Usersetup[apache]/User[apache]/groups: is dm-upload, should be dm-upload,opt-query (noop) notice: //Node[basicnode]/users/Ldapuser[opt-query]/User[opt-query]/gid: is 605, should be 605 (noop) notice: //Node[basicnode]/users/Ldapuser[opt-arch]/User[opt-arch]/gid: is 604, should be 604 (noop) /usr/lib/ruby/site_ruby/1.8/puppet/property/list.rb:13:in `is_to_s' /usr/lib/ruby/site_ruby/1.8/puppet/transaction/change.rb:49:in `go' /usr/lib/ruby/site_ruby/1.8/puppet/transaction/change.rb:72:in `forward' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:118:in `apply_changes' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:111:in `collect' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:111:in `apply_changes' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:83:in `apply' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:239:in `eval_resource' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:425:in `thinmark' /usr/lib/ruby/1.8/benchmark.rb:293:in `measure' /usr/lib/ruby/1.8/benchmark.rb:307:in `realtime' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:424:in `thinmark' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:238:in `eval_resource' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:310:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:425:in `thinmark' /usr/lib/ruby/1.8/benchmark.rb:293:in `measure' /usr/lib/ruby/1.8/benchmark.rb:307:in `realtime' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:424:in `thinmark' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:309:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:303:in `collect' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:303:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/node/catalog.rb:124:in `apply' /usr/lib/ruby/site_ruby/1.8/puppet/network/client/master.rb:256:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:180:in `benchmark' /usr/lib/ruby/1.8/benchmark.rb:293:in `measure' /usr/lib/ruby/1.8/benchmark.rb:307:in `realtime' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:179:in `benchmark' /usr/lib/ruby/site_ruby/1.8/puppet/network/client/master.rb:255:in `run' /usr/lib/ruby/1.8/sync.rb:229:in `synchronize' /usr/lib/ruby/site_ruby/1.8/puppet/network/client/master.rb:237:in `run' /usr/sbin/puppetd:417 /usr/lib/ruby/site_ruby/1.8/puppet/property/list.rb:13:in `is_to_s' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:124:in `apply_changes' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:111:in `collect' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:111:in `apply_changes' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:83:in `apply' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:239:in `eval_resource' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:425:in `thinmark' /usr/lib/ruby/1.8/benchmark.rb:293:in `measure' /usr/lib/ruby/1.8/benchmark.rb:307:in `realtime' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:424:in `thinmark' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:238:in `eval_resource' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:310:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:425:in `thinmark' /usr/lib/ruby/1.8/benchmark.rb:293:in `measure' /usr/lib/ruby/1.8/benchmark.rb:307:in `realtime' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:424:in `thinmark' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:309:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:303:in `collect' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:303:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/node/catalog.rb:124:in `apply' /usr/lib/ruby/site_ruby/1.8/puppet/network/client/master.rb:256:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:180:in `benchmark' /usr/lib/ruby/1.8/benchmark.rb:293:in `measure' /usr/lib/ruby/1.8/benchmark.rb:307:in `realtime' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:179:in `benchmark' /usr/lib/ruby/site_ruby/1.8/puppet/network/client/master.rb:255:in `run' /usr/lib/ruby/1.8/sync.rb:229:in `synchronize' /usr/lib/ruby/site_ruby/1.8/puppet/network/client/master.rb:237:in `run' /usr/sbin/puppetd:417 err: Got an uncaught exception of type NoMethodError: undefined method `join' for :absent:Symbol notice: Finished catalog run in 4.96 seconds </pre> At this point, puppet is effectively broken until I manually remove those users and groups from the LDAP directory and then it will work for one iteration then break again :( ---------------------------------------- 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://reductivelabs.com/redmine/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 -~----------~----~----~----~------~----~------~--~---
