Issue #15534 has been updated by Andrew  Parker.

I just tried a simple backport of the fix that is in the 3.x branch (commit 
55505db1dff0972b8fdbb611ca59c5fd81a1ce4b), but the monkey patched 
`String#lines` isn't correct. It looks like we'd have to backport some of the 
other code around fixing up that monkey patch. I don't think this is a lot of 
work, but it does open up a larger issue about what support we have for 2.7 on 
1.9. It seems that this is starting to get shipped, but it isn't a supported 
version combination, but we don't have anything for people to move to yet.
----------------------------------------
Bug #15534: Could not evaluate: undefined method `each' for 
#<String:0x0000000434d380>
https://projects.puppetlabs.com/issues/15534#change-69554

Author: Ryan Conway
Status: Accepted
Priority: High
Assignee: 
Category: ruby19
Target version: 2.7.x
Affected Puppet version: 2.7.18
Keywords: upstart ruby19
Branch: 


I'm seeing what looks like issue #12268 with the latest Puppet 2.7.18, using 
Ruby 1.9.2p290 on Ubuntu 12.04 LTS. (I can't re-open that one hence the 
separate ticket).

Using the following resource: 

    service { "ssh":
    enable => true,
    ensure => running,
    subscribe => [File["/etc/default/ssh"], File["/etc/ssh/sshd_config"]],
    }

I get the following error:

    err: /Stage[main]/Ih-default/Ssh-client[ih]/Service[ssh]: Could not 
evaluate: undefined method `each' for #<String:0x0000000434d380>

And the full stack trace:

    debug: /Stage[main]/Ih-default/Ssh-client[ih]/File[/etc/default/ssh]: The 
container Ssh-client[ih] will propagate my refresh event
    debug: Puppet::Type::Service::ProviderUpstart: Executing '/sbin/status ssh'
    debug: Puppet::Type::Service::ProviderUpstart: Executing '/sbin/initctl 
--version'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/provider/service/upstart.rb:203:in
 `enabled_post_0_9_0?'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/provider/service/upstart.rb:101:in
 `enabled?'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/type/service.rb:55:in
 `retrieve'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/type.rb:720:in 
`block in retrieve'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/type.rb:715:in 
`each'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/type.rb:715:in 
`retrieve'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/type.rb:728:in 
`retrieve_resource'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/transaction/resource_harness.rb:32:in
 `perform_changes'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/transaction/resource_harness.rb:133:in
 `evaluate'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/transaction.rb:49:in
 `apply'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/transaction.rb:84:in
 `eval_resource'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/transaction.rb:104:in
 `block (2 levels) in evaluate'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/util.rb:490:in 
`block in thinmark'
    /usr/local/lib/ruby/1.9.1/benchmark.rb:310:in `realtime'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/util.rb:489:in 
`thinmark'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/transaction.rb:104:in
 `block in evaluate'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/transaction.rb:386:in
 `traverse'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/transaction.rb:99:in
 `evaluate'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/resource/catalog.rb:141:in
 `apply'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/configurer.rb:122:in
 `block in retrieve_and_apply_catalog'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/util.rb:160:in 
`block in benchmark'
    /usr/local/lib/ruby/1.9.1/benchmark.rb:310:in `realtime'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/util.rb:159:in 
`benchmark'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/configurer.rb:121:in
 `retrieve_and_apply_catalog'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/configurer.rb:152:in
 `run'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/agent.rb:43:in 
`block (4 levels) in run'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/agent/locker.rb:21:in
 `lock'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/agent.rb:43:in 
`block (3 levels) in run'
    /usr/local/lib/ruby/1.9.1/sync.rb:225:in `sync_synchronize'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/agent.rb:43:in 
`block (2 levels) in run'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/agent.rb:95:in 
`with_client'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/agent.rb:41:in 
`block in run'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/application.rb:172:in
 `call'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/application.rb:172:in
 `controlled_run'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/agent.rb:39:in 
`run'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/application/agent.rb:337:in
 `onetime'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/application/agent.rb:311:in
 `run_command'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/application.rb:309:in
 `block (2 levels) in run'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/application.rb:416:in
 `hook'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/application.rb:309:in
 `block in run'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/application.rb:407:in
 `exit_on_fail'
    
/usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/lib/puppet/application.rb:309:in
 `run'
    /usr/local/lib/ruby/gems/1.9.1/gems/puppet-2.7.18/bin/puppetd:4:in `<top 
(required)>'
    /usr/local/bin/puppetd:19:in `load'
    /usr/local/bin/puppetd:19:in `<main>'
    err: /Stage[main]/Ih-default/Ssh-client[ih]/Service[ssh]: Could not 
evaluate: undefined method `each' for #<String:0x0000000434d380>
    debug: Puppet::Type::Service::ProviderUpstart: Executing '/sbin/status ssh'
    debug: Service[ssh](provider=upstart): Executing '/sbin/stop ssh'
    debug: Service[ssh](provider=upstart): Executing '/sbin/start ssh'

Anyone have any suggestions?


-- 
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