Issue #3013 has been updated by Mark Plaksin.

I think I'm getting 3 different stack traces on our RHEL 4.7 box.  (1) has
"connect" at the top and is about a recursive file resource.  (2) and (3)
both start with "fail".  In (2) the file on the file server is symlink (and
is inside a recursive file resource, in (3) the file is a normal file.  The
traces don't always happen on the same files from run to run.

------------------------------------------------------------------------------
1:

/usr/lib/ruby/1.8/net/protocols.rb:49:in `connect'
/usr/lib/ruby/1.8/net/protocols.rb:49:in `ssl_connect'
/usr/lib/ruby/1.8/net/https.rb:181:in `on_connect'
/usr/lib/ruby/1.8/net/http.rb:433:in `do_start'
/usr/lib/ruby/1.8/net/http.rb:419:in `start'
/usr/lib/ruby/1.8/net/http.rb:824:in `request'
/usr/lib/ruby/1.8/net/http.rb:618:in `get'
/usr/src/git/puppet/lib/puppet/indirector/rest.rb:73:in `search'
/usr/src/git/puppet/lib/puppet/indirector/indirection.rb:240:in `search'
/usr/src/git/puppet/lib/puppet/indirector.rb:59:in `search'
/usr/src/git/puppet/lib/puppet/type/file.rb:595:in `perform_recursion'
/usr/src/git/puppet/lib/puppet/type/file.rb:562:in `recurse_remote'
/usr/src/git/puppet/lib/puppet/type/file.rb:561:in `collect'
/usr/src/git/puppet/lib/puppet/type/file.rb:561:in `recurse_remote'
/usr/src/git/puppet/lib/puppet/type/file.rb:483:in `recurse'
/usr/src/git/puppet/lib/puppet/type/file.rb:385:in `eval_generate'
/usr/src/git/puppet/lib/puppet/transaction.rb:349:in `send'
/usr/src/git/puppet/lib/puppet/transaction.rb:349:in 
`generate_additional_resources'
/usr/src/git/puppet/lib/puppet/transaction.rb:193:in `eval_generate'
/usr/src/git/puppet/lib/puppet/transaction.rb:240:in 
`eval_children_and_apply_resource'
/usr/src/git/puppet/lib/puppet/transaction.rb:207:in `eval_resource'
/usr/src/git/puppet/lib/puppet/transaction.rb:296:in `evaluate'
/usr/src/git/puppet/lib/puppet/transaction.rb:295:in `thinmark'
/usr/src/git/puppet/lib/puppet/util.rb:405:in `measure'
/usr/lib/ruby/1.8/benchmark.rb:342:in `realtime'
/usr/src/git/puppet/lib/puppet/util.rb:405:in `thinmark'
/usr/src/git/puppet/lib/puppet/transaction.rb:297:in `evaluate'
/usr/src/git/puppet/lib/puppet/transaction.rb:289:in `collect'
/usr/src/git/puppet/lib/puppet/transaction.rb:289:in `evaluate'
/usr/src/git/puppet/lib/puppet/resource/catalog.rb:142:in `apply'
/usr/src/git/puppet/lib/puppet/configurer.rb:153:in `run'
/usr/src/git/puppet/lib/puppet/configurer.rb:152:in `benchmark'
/usr/src/git/puppet/lib/puppet/util.rb:177:in `measure'
/usr/lib/ruby/1.8/benchmark.rb:342:in `realtime'
/usr/src/git/puppet/lib/puppet/util.rb:177:in `benchmark'
/usr/src/git/puppet/lib/puppet/configurer.rb:152:in `run'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `run'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `lock'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `run'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `synchronize'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `run'
/usr/src/git/puppet/lib/puppet/agent.rb:51:in `with_client'
/usr/src/git/puppet/lib/puppet/agent.rb:58:in `run'
/usr/src/git/puppet/lib/puppet/application/puppetd.rb:103:in `onetime'
/usr/src/git/puppet/lib/puppet/application/puppetd.rb:94:in `onetime'
/usr/src/git/puppet/lib/puppet/application.rb:226:in `send'
/usr/src/git/puppet/lib/puppet/application.rb:226:in `run_command'
/usr/src/git/puppet/lib/puppet/application.rb:217:in `run'
/usr/src/git/puppet/lib/puppet/application.rb:217:in `exit_on_fail'
/usr/src/git/puppet/lib/puppet/application.rb:217:in `run'
sbin/puppetd:159
err: //allusers::bjones/Allusers::Userfile[bjones/bin]/File[/home/bjones/bin]: 
Failed to generate additional resources using 'eval_generate': 

NOTE:  There's nothing after that final colon except for a single space.

------------------------------------------------------------------------------
2:

/usr/src/git/puppet/lib/puppet/parameter.rb:401:in `fail'
/usr/src/git/puppet/lib/puppet/type/file/source.rb:157:in `init_metadata'
/usr/src/git/puppet/lib/puppet/type/file/source.rb:149:in `each'
/usr/src/git/puppet/lib/puppet/type/file/source.rb:149:in `init_metadata'
/usr/src/git/puppet/lib/puppet/type/file/source.rb:146:in `init_metadata'
/usr/src/git/puppet/lib/puppet/util/cacher.rb:106:in `send'
/usr/src/git/puppet/lib/puppet/util/cacher.rb:106:in `cached_value'
/usr/src/git/puppet/lib/puppet/util/cacher.rb:46:in `metadata'
/usr/src/git/puppet/lib/puppet/util/cacher.rb:45:in `metadata'
/usr/src/git/puppet/lib/puppet/type/file/source.rb:111:in `copy_source_values'
/usr/src/git/puppet/lib/puppet/type/file.rb:630:in `retrieve'
/usr/src/git/puppet/lib/puppet/type.rb:726:in `evaluate'
/usr/src/git/puppet/lib/puppet/transaction.rb:62:in `apply'
/usr/src/git/puppet/lib/puppet/transaction.rb:251:in 
`eval_children_and_apply_resource'
/usr/src/git/puppet/lib/puppet/transaction.rb:250:in `thinmark'
/usr/src/git/puppet/lib/puppet/util.rb:405:in `measure'
/usr/lib/ruby/1.8/benchmark.rb:342:in `realtime'
/usr/src/git/puppet/lib/puppet/util.rb:405:in `thinmark'
/usr/src/git/puppet/lib/puppet/transaction.rb:252:in 
`eval_children_and_apply_resource'
/usr/src/git/puppet/lib/puppet/transaction.rb:207:in `eval_resource'
/usr/src/git/puppet/lib/puppet/transaction.rb:296:in `evaluate'
/usr/src/git/puppet/lib/puppet/transaction.rb:295:in `thinmark'
/usr/src/git/puppet/lib/puppet/util.rb:405:in `measure'
/usr/lib/ruby/1.8/benchmark.rb:342:in `realtime'
/usr/src/git/puppet/lib/puppet/util.rb:405:in `thinmark'
/usr/src/git/puppet/lib/puppet/transaction.rb:297:in `evaluate'
/usr/src/git/puppet/lib/puppet/transaction.rb:289:in `collect'
/usr/src/git/puppet/lib/puppet/transaction.rb:289:in `evaluate'
/usr/src/git/puppet/lib/puppet/resource/catalog.rb:142:in `apply'
/usr/src/git/puppet/lib/puppet/configurer.rb:153:in `run'
/usr/src/git/puppet/lib/puppet/configurer.rb:152:in `benchmark'
/usr/src/git/puppet/lib/puppet/util.rb:177:in `measure'
/usr/lib/ruby/1.8/benchmark.rb:342:in `realtime'
/usr/src/git/puppet/lib/puppet/util.rb:177:in `benchmark'
/usr/src/git/puppet/lib/puppet/configurer.rb:152:in `run'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `run'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `lock'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `run'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `synchronize'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `run'
/usr/src/git/puppet/lib/puppet/agent.rb:51:in `with_client'
/usr/src/git/puppet/lib/puppet/agent.rb:58:in `run'
/usr/src/git/puppet/lib/puppet/application/puppetd.rb:103:in `onetime'
/usr/src/git/puppet/lib/puppet/application/puppetd.rb:94:in `onetime'
/usr/src/git/puppet/lib/puppet/application.rb:226:in `send'
/usr/src/git/puppet/lib/puppet/application.rb:226:in `run_command'
/usr/src/git/puppet/lib/puppet/application.rb:217:in `run'
/usr/src/git/puppet/lib/puppet/application.rb:217:in `exit_on_fail'
/usr/src/git/puppet/lib/puppet/application.rb:217:in `run'
sbin/puppetd:159
err: 
//allusers::tss/Allusers::Userfile[tss/.screenrc]/File[/home/tss/.screenrc]: 
Failed to retrieve current state of resource:  Could not retrieve file metadata 
for puppet://billy.bor.usg.edu/allusers/tss/.screenrc:  at 
/usr/src/git/bor/puppet/modules/allusers/manifests/init.pp:23

------------------------------------------------------------------------------
3:
/usr/src/git/puppet/lib/puppet/parameter.rb:401:in `fail'
/usr/src/git/puppet/lib/puppet/type/file/source.rb:157:in `init_metadata'
/usr/src/git/puppet/lib/puppet/type/file/source.rb:149:in `each'
/usr/src/git/puppet/lib/puppet/type/file/source.rb:149:in `init_metadata'
/usr/src/git/puppet/lib/puppet/type/file/source.rb:146:in `init_metadata'
/usr/src/git/puppet/lib/puppet/util/cacher.rb:106:in `send'
/usr/src/git/puppet/lib/puppet/util/cacher.rb:106:in `cached_value'
/usr/src/git/puppet/lib/puppet/util/cacher.rb:46:in `metadata'
/usr/src/git/puppet/lib/puppet/util/cacher.rb:45:in `metadata'
/usr/src/git/puppet/lib/puppet/type/file/source.rb:111:in `copy_source_values'
/usr/src/git/puppet/lib/puppet/type/file.rb:630:in `retrieve'
/usr/src/git/puppet/lib/puppet/type.rb:726:in `evaluate'
/usr/src/git/puppet/lib/puppet/transaction.rb:62:in `apply'
/usr/src/git/puppet/lib/puppet/transaction.rb:251:in 
`eval_children_and_apply_resource'
/usr/src/git/puppet/lib/puppet/transaction.rb:250:in `thinmark'
/usr/src/git/puppet/lib/puppet/util.rb:405:in `measure'
/usr/lib/ruby/1.8/benchmark.rb:342:in `realtime'
/usr/src/git/puppet/lib/puppet/util.rb:405:in `thinmark'
/usr/src/git/puppet/lib/puppet/transaction.rb:252:in 
`eval_children_and_apply_resource'
/usr/src/git/puppet/lib/puppet/transaction.rb:207:in `eval_resource'
/usr/src/git/puppet/lib/puppet/transaction.rb:296:in `evaluate'
/usr/src/git/puppet/lib/puppet/transaction.rb:295:in `thinmark'
/usr/src/git/puppet/lib/puppet/util.rb:405:in `measure'
/usr/lib/ruby/1.8/benchmark.rb:342:in `realtime'
/usr/src/git/puppet/lib/puppet/util.rb:405:in `thinmark'
/usr/src/git/puppet/lib/puppet/transaction.rb:297:in `evaluate'
/usr/src/git/puppet/lib/puppet/transaction.rb:289:in `collect'
/usr/src/git/puppet/lib/puppet/transaction.rb:289:in `evaluate'
/usr/src/git/puppet/lib/puppet/resource/catalog.rb:142:in `apply'
/usr/src/git/puppet/lib/puppet/configurer.rb:153:in `run'
/usr/src/git/puppet/lib/puppet/configurer.rb:152:in `benchmark'
/usr/src/git/puppet/lib/puppet/util.rb:177:in `measure'
/usr/lib/ruby/1.8/benchmark.rb:342:in `realtime'
/usr/src/git/puppet/lib/puppet/util.rb:177:in `benchmark'
/usr/src/git/puppet/lib/puppet/configurer.rb:152:in `run'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `run'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `lock'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `run'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `synchronize'
/usr/src/git/puppet/lib/puppet/agent.rb:53:in `run'
/usr/src/git/puppet/lib/puppet/agent.rb:51:in `with_client'
/usr/src/git/puppet/lib/puppet/agent.rb:58:in `run'
/usr/src/git/puppet/lib/puppet/application/puppetd.rb:103:in `onetime'
/usr/src/git/puppet/lib/puppet/application/puppetd.rb:94:in `onetime'
/usr/src/git/puppet/lib/puppet/application.rb:226:in `send'
/usr/src/git/puppet/lib/puppet/application.rb:226:in `run_command'
/usr/src/git/puppet/lib/puppet/application.rb:217:in `run'
/usr/src/git/puppet/lib/puppet/application.rb:217:in `exit_on_fail'
/usr/src/git/puppet/lib/puppet/application.rb:217:in `run'
sbin/puppetd:159
err: //networker/File[/usr/local/bin/NSRpre_process]: Failed to retrieve 
current state of resource:  Could not retrieve file metadata for 
puppet://billy.bor.usg.edu/networker/NSRpre_process:  at 
/usr/src/git/bor/puppet/modules/networker/manifests/init.pp:26
----------------------------------------
Bug #3013: util.rb:execute broken on Ruby <1.8.3
http://projects.reductivelabs.com/issues/3013

Author: Ricky Zhou
Status: Ready for Testing
Priority: Urgent
Assigned to: Markus Roberts
Category: exec
Target version: 0.25.3
Affected version: 0.25.2
Keywords: 
Branch: http://github.com/MarkusQ/puppet/tree/ticket/0.25.x/3013


Apparently the patch in ticket #2731 introduced one more issue by using 
readpartial, which isn't available until ruby 1.8.3 (RHEL4 at least is 
affected).  I'm not sure how this is normally handled in ruby, but if the 
readpartial function is not available, the code should fall back to sysread 
(along with some code for handling EINTR).

Anybody with better ruby knowledge know how this should be done?


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

Reply via email to