[chef] Re: 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: Daniel DeLeo < >
  • To:
  • Subject: [chef] Re: 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 08:36:08 -0700


On Thursday, June 9, 2011 at 8:32 AM, Sergio Rubio wrote:

> On Thu, Jun 9, 2011 at 5:12 PM, Daniel DeLeo 
> <
>  
> (mailto: )>
>  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: )
> > >  
> > > (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.
Yeah, that would be great. I'm in favor of switching popen4 to shell_out if 
you can since the API is cleaner and it has built-in support for nice error 
messages when a command fails as well as live updating of output to a tty in 
some conditions.

Feel free to hop on to #chef-hacking on freenode.net (http://freenode.net) if 
you have development questions, or you can mail the chef-dev list as well.
-- 
Dan DeLeo 
> >  --
> >  Dan DeLeo




Archive powered by MHonArc 2.6.16.

§