Issue #5018 has been updated by Ivo Tamboer.

A similar bug is also visible in 0.25.5 in CentOS/EPEL. Upon adding a 
puppet-dashboard or foreman report; it errors "err: Could not retrieve catalog; 
skipping run" to syslog. Altering the order of the reports does not seem to 
help. not forking the process does.
----------------------------------------
Bug #5018: tagmail causes indirector error
https://projects.puppetlabs.com/issues/5018

Author: Tomoyuki Kano
Status: Accepted
Priority: Normal
Assignee: 
Category: 
Target version: Statler
Affected Puppet version: 
Keywords: 
Branch: 


When "tagmail" specified to "reports" then Puppet Master returns empty response 
to the Puppet::Indirector::REST.save

Puppet client trace:

    /usr/lib/ruby/1.8/net/protocol.rb:135:in `sysread'
    /usr/lib/ruby/1.8/net/protocol.rb:135:in `rbuf_fill'
    /usr/lib/ruby/1.8/timeout.rb:67:in `timeout'
    /usr/lib/ruby/1.8/timeout.rb:101:in `timeout'
    /usr/lib/ruby/1.8/net/protocol.rb:134:in `rbuf_fill'
    /usr/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
    /usr/lib/ruby/1.8/net/protocol.rb:126:in `readline'
    /usr/lib/ruby/1.8/net/http.rb:2028:in `read_status_line'
    /usr/lib/ruby/1.8/net/http.rb:2017:in `read_new'
    /usr/lib/ruby/1.8/net/http.rb:1051:in `request'
    /usr/lib/ruby/1.8/net/http.rb:1037:in `request'
    /usr/lib/ruby/1.8/net/http.rb:543:in `start'
    /usr/lib/ruby/1.8/net/http.rb:1035:in `request'
    /usr/lib/ruby/1.8/net/http.rb:857:in `put'
    /usr/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:90:in `save'
    /usr/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:253:in `save'
    /usr/lib/ruby/site_ruby/1.8/puppet/indirector.rb:64:in `save'
    /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:178:in `send_report'
    /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:172:in `run'
    /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:39:in `run'
    /usr/lib/ruby/site_ruby/1.8/puppet/agent/locker.rb:21:in `lock'
    /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:39:in `run'
    /usr/lib/ruby/1.8/sync.rb:230:in `synchronize'
    /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:39:in `run'
    /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:103:in `with_client'
    /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:37:in `run'
    /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:171:in `call'
    /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:171:in `controlled_run'
    /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:35:in `run'
    /usr/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:114:in `onetime'
    /usr/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:88:in `run_command'
    /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:300:in `run'
    /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:397:in `exit_on_fail'
    /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:300:in `run'
    /usr/sbin/puppetd:4
    err: Could not send report: end of file reached

Work around:
Dont fork send mail process

    --- puppet/reports/tagmail.rb.~1~       2010-10-02 10:08:57.000000000 +0900
    +++ puppet/reports/tagmail.rb           2010-10-16 17:15:23.358309703 +0900
    @@ -119,7 +119,6 @@
    # Send the email reports.
    def send(reports)
    -    pid = fork do
    if Puppet[:smtpserver] != "none"
    begin
    Net::SMTP.start(Puppet[:smtpserver]) do |smtp|
    @@ -159,10 +158,6 @@
    else
    raise Puppet::Error, "SMTP server is unset and could not find sendmail"
    end
    -    end
    -
    -    # Don't bother waiting for the pid to return.
    -    Process.detach(pid)
    end
    end
    
    


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