[chef] Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: segfault with CentOS 5.4/5.5 + ruby 1.8.7 + chef 0.10.0


Chronological Thread 
  • From: Sergio Rubio < >
  • To:
  • Subject: [chef] Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: segfault with CentOS 5.4/5.5 + ruby 1.8.7 + chef 0.10.0
  • Date: Thu, 9 Jun 2011 17:32:29 +0200
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; b=bwlDoqsIh7TYyvp/DPrULDY1iOMj1PmRLgZo6BmzTvHFkJ3lvPmGjLTaAHdoh3EfZR KjhLhpZHsIgb7TpRaN6t/i+fwIYwZs8xdX2+DCg88VfJpbRvE4Dl5qVzlBY8t7ATx0kP OQmiS0bxT03iTWJrzv6+TFd1PKDbXOHgCgjj8=

On Thu, Jun 9, 2011 at 5:12 PM, Daniel DeLeo < "> > wrote:

On Thursday, June 9, 2011 at 5:55 AM, Sergio Rubio wrote:

> On Thu, Jun 9, 2011 at 12:44 PM, Sergio Rubio < "> (mailto: "> )> wrote:
> >
> > I've opened a bug in case anyone is interested:
> >
> > http://redmine.ruby-lang.org/issues/4856
> >
> > Let's hope we can get some assistance from devs.
> >
> > Rgds.
>
> I've made some progress tracing this. I've replaced the popen4 in yum provider with simple shell quotes and my previous test no longer crashes ruby.
>
> If you are interested in testing the fix (albeit incomplete), the yum.rb provider patch is here:
>
> https://gist.github.com/1016667
>
> Did not have a chance to test Matthew Kent patches, but I'd like to have a look at them if time permits. We can patch the RBEL RPMs and do not wait to the 0.10.2 release if required.
>
> Rgds.
I ran into similar issues when I developed Chef::ShellOut, which I found were caused by object allocation during GC. Since I did not have the option of forcing people to upgrade to a ruby without the issue, I disabled GC for the affected portion of the code. You could try replacing popen4 with shell_out and see if this fixes the issue.

https://github.com/opscode/chef/blob/master/chef/lib/chef/shell_out.rb
https://github.com/opscode/chef/blob/master/chef/lib/chef/shell_out/unix.rb



Awesome.

Disabling GC and re enabling it after the loop fixes the segfault also. Not sure if playing with GC is better than replacing the popen4 with some other stuff, as I don't know the code base at all.

If you guys feel like both approaches are valid, I can add a patch to the Chef RPM to alleviate some of the pain the CentOS users are dealing with.

Rgds.


--
Dan DeLeo





Archive powered by MHonArc 2.6.16.

§