The Puppet Labs Issue Tracker has Moved: https://tickets.puppetlabs.com

This issue tracker is now in read-only archive mode and automatic ticket export has been disabled. Redmine users will need to create a new JIRA account to file tickets using https://tickets.puppetlabs.com. See the following page for information on filing tickets with JIRA:

Bug #5018

tagmail causes indirector error

Added by Tomoyuki Kano over 5 years ago. Updated over 3 years ago.

Status:AcceptedStart date:10/16/2010
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-
Affected Puppet version: Branch:
Keywords:

We've Moved!

Ticket tracking is now hosted in JIRA: https://tickets.puppetlabs.com


Description

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

History

#1 Updated by Nigel Kersten over 5 years ago

  • Status changed from Unreviewed to Accepted

#2 Updated by Michael Scherer over 5 years ago

I see this bug as well, using puppet 2.6.2, with the following configuration :

reports = tagmail,store

Using ( ie, using tagmail as the last report ) :

reports = store,tagmail

is enough to work around the problem.

#3 Updated by Nigel Kersten over 5 years ago

  • Target version changed from 69 to 2.7.x

#4 Updated by Ivo Tamboer about 5 years ago

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.

#5 Updated by Anonymous over 3 years ago

  • Target version deleted (2.7.x)

#6 Updated by Anonymous over 3 years ago

As the 2.7.x line is winding down, I am removing the target at 2.7.x from tickets in the system. The 2.7 line should only receive fixes for major problems (crashes, for instance) or security problems.

Also available in: Atom PDF