Puppet CPU 使用率达到 100% 时挂起

Puppet CPU 使用率达到 100% 时挂起

我们正在运行 puppet 来管理我们的 AWS 实例,并从自定义模块迁移apt到 puppetlabs 托管apt模块。一切似乎都运行正常,直到会话期间puppet apply,只要我们允许,puppet 进程就会挂在 %100 上。

我相信我已经将其缩小到在等待 apt 模块中的某些“响应”时挂起的 puppet,但我无法进一步弄清楚。我看到了一些相关的错误和问题(例如这里http://projects.puppetlabs.com/issues/12185#note-27),但我找不到好的答案。任何帮助都将不胜感激。

我们在 ubuntu 10.10 上运行 puppet 2.7.20。Puppet apt 模块版本是 1.1.0。

根据要求,以下是挂起前的最后几行调试信息:

    debug: /Stage[main]/Kpython/Kpython::Pip_install[simplejson]/Exec[kpython_pip_install         simplejson]: Autorequiring File[/mnt/tmp]
    debug: /Stage[puppet1]/Kbase::Users/Kbase::Users::Account[tfall]/File[/home/tfall/.ssh]: Autorequiring Group[users]
    debug: /Stage[puppet1]/Kbase::Users/Kbase::Users::Account[tfall]/File[/home/tfall/.ssh]: Autorequiring User[tfall]
    debug: /Stage[puppet1]/Kbase::Filesystem/File[/usr/local/krux/kbase]: Autorequiring File[/usr/local/krux]
    debug: /Stage[main]/Kvagrant/Kruby::Setup_gemset[kvagrant]/Kruby::Wrapper[kvagrant-irb]/Kutil::Symlink_bin[kvagrant-irb]/File[/usr/local/bin/kvagrant-irb]: Autorequiring File[/usr/local/bin]
    debug: /Stage[main]/Kvagrant/Kruby::Setup_gemset[kvagrant]/Kruby::Wrapper[kvagrant-irb]/Kutil::Symlink_bin[kvagrant-irb]/File[/usr/local/bin/kvagrant-irb]: Autorequiring File[/usr/local/krux/components/kruby/bin/kvagrant-irb]
    debug: /Stage[main]/Kpython/Kpython::Pip_install[boto]/Exec[kpython_pip_install boto]: Autorequiring File[/mnt/tmp]
    debug: /Stage[script1]/Kbase::Users::Finalize/Kbase::Users::Init_user[dbrans]/File[/home/dbrans/.ssh/known_hosts]: Autorequiring User[dbrans]
    debug: /Stage[puppet1]/Kbase::Users/Kbase::Users::Account[vsvaidya]/File[/home/vsvaidya]: Autorequiring Group[users]
    debug: /Stage[main]/Kvagrant/File[/usr/local/krux/components/kvagrant]: Autorequiring File[/usr/local/krux/components]
    debug: /Stage[main]/Kvagrant/File[/usr/local/krux/components/kvagrant]: Autorequiring Group[vagrant]
    debug: /Stage[main]/Kvagrant/File[/usr/local/krux/components/kvagrant]: Autorequiring User[vagrant]

这个puppet运行级别中的下一步应该与apt模块相关。

这是 strace 的输出(使用 ruby​​ 1.8.7 和 ruby​​ 1.9.1):

         rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
         rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
         rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
         rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
         rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
         rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
         rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
         rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
         rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

答案1

你运行的是哪种 Ruby?感觉就像这个问题,它说这是 FreeBSD,但结果却是 ruby​​ 问题。

相关内容