Issue #2254 has been updated by Markus Roberts.

Fixed as #2637
----------------------------------------
Bug #2254: puppetmaster hangs after client connects from behind a NAT
http://projects.reductivelabs.com/issues/2254

Author: Alex Urbanowicz
Status: Rejected
Priority: Normal
Assigned to: 
Category: network
Target version: 
Affected version: 0.24.8
Keywords: select puppetmaster hang network
Branch: 


This issue affects both 0.24.8 and 0.22.4 (tested with both clients and 
servers):

The network setup is such that some puppets connect from behind a static NAT. 
They connect to address and port that passes connections to puppetmaster:8140. 
In this setup, after a NAT-ed puppet connects, puppetmaster hangs and stops 
servicing all incoming connections. After it is stopped, it barfs the following:
<pre>
May 13 12:40:48 stonka puppetmasterd[28832]: Caught TERM; shutting down
May 13 12:40:48 stonka puppetmasterd[28832]: Signal caught here:
May 13 12:40:48 stonka puppetmasterd[28832]: 
/usr/lib/ruby/site_ruby/1.8/puppet/external/event-loop/event-loop.rb:127:in 
`call'
May 13 12:40:48 stonka puppetmasterd[28832]: 
/usr/lib/ruby/site_ruby/1.8/puppet/external/event-loop/event-loop.rb:127:in 
`select'
May 13 12:40:48 stonka puppetmasterd[28832]: 
/usr/lib/ruby/site_ruby/1.8/puppet/external/event-loop/event-loop.rb:127:in 
`select'
May 13 12:40:48 stonka puppetmasterd[28832]: 
/usr/lib/ruby/site_ruby/1.8/puppet/external/event-loop/event-loop.rb:116:in 
`iterate'
May 13 12:40:48 stonka puppetmasterd[28832]: 
/usr/lib/ruby/site_ruby/1.8/puppet/external/event-loop/event-loop.rb:107:in 
`run'
May 13 12:40:48 stonka puppetmasterd[28832]: 
/usr/lib/ruby/site_ruby/1.8/puppet.rb:320:in `start'
May 13 12:40:48 stonka puppetmasterd[28832]: /usr/sbin/puppetmasterd:285
May 13 12:40:48 stonka puppetmasterd[28832]: Shutting down
</pre>
Here is puppetmaster's strace of a hang:
<pre>
8832 <... select resumed> )            = 0 (Timeout)
28832 select(13, [8 10 11], [], [], {0, 0}) = 0 (Timeout)
28832 select(13, [8 11], [], [], {0, 0}) = 0 (Timeout)
28832 select(13, [8 10 11], [], [], {0, 499969} <unfinished ...>
28832 <... select resumed> )            = 0 (Timeout)
28832 select(13, [8 10 11], [], [], {0, 0}) = 0 (Timeout)
28832 select(13, [8 11], [], [], {0, 0}) = 0 (Timeout)
28832 select(13, [8 10 11], [], [], {0, 499968} <unfinished ...>
28832 <... select resumed> )            = 0 (Timeout)
28832 select(13, [8 10 11], [], [], {0, 0}) = 0 (Timeout)
28832 select(13, [8 11], [], [], {0, 0}) = 0 (Timeout)
28832 select(13, [8 10 11], [], [], {0, 499966} <unfinished ...>
28832 <... select resumed> )            = 0 (Timeout)
28832 select(13, [8 10 11], [], [], {0, 0}) = 0 (Timeout)
28832 select(13, [8 11], [], [], {0, 0}) = 0 (Timeout)
28832 select(13, [8 10 11], [], [], {0, 499964} <unfinished ...>
28832 <... select resumed> )            = 0 (Timeout)
28832 select(13, [8 10 11], [], [], {0, 0}) = 0 (Timeout)
28832 select(13, [8 11], [], [], {0, 0}) = 0 (Timeout)
28832 select(13, [8 10 11], [], [], {0, 499969} <unfinished ...>
28832 <... select resumed> )            = 0 (Timeout)
28832 select(13, [8 10 11], [], [], {0, 195} <unfinished ...>
28832 <... select resumed> )            = 0 (Timeout)
28832 select(13, [8 10 11], [], [], {0, 0}) = 0 (Timeout)
28832 select(13, [8 11], [], [], {0, 0}) = 0 (Timeout)
28832 stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2679, ...}) = 0
28832 write(10, "\25\3\1\0 
Li,T\2\26\300\313~\22\341\217\325\300\3061v-\340\245\262) \265#M\275"..., 37) = 
37
28832 close(10)                         = 0
28832 munmap(0xb7f70000, 4096)          = 0
28832 close(10)                         = -1 EBADF (Bad file descriptor)
28832 munmap(0xb7f71000, 4096)          = 0
28832 select(13, [8 11], [], [], NULL <unfinished ...>
</pre>

[here it hangs untill killed]

meanwhile all client puppetds hang on:
<pre>
debug: Loaded state in 0.00 seconds
debug: Retrieved facts in 1.54 seconds
debug: Retrieving catalog
debug: Calling puppetmaster.getconfig
</pre>
until it timeouts

complete strace log is attached

As for network connection checks, they were done: SSL cetificates negotiation 
between puppets and puppetmaster works all the way, also the connection was 
checked using netcat, so it is not na network setup problem.


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