[libvirt] ruby-libvirt issue

Chris Lalancette clalance at redhat.com
Thu Aug 5 14:59:49 UTC 2010


On 08/05/10 - 12:35:03PM, Daniel P. Berrange wrote:
> On Thu, Jul 29, 2010 at 02:32:06PM -0400, Chris Lalancette wrote:
> > On 07/29/10 - 07:41:26PM, Jaromír Červenka wrote:
> > > Hi,
> > > 
> > > i think that I know where is the problem. My "messages" log says:
> > > 
> > > Jul 29 19:36:41 divinus libvirtd: 19:36:41.032: error :
> > > qemudDispatchServer:1315 : Too many active clients (100), dropping
> > > connection
> > > 
> > > It looks like that ruby-libvirt doesn't closing connection, when it's
> > > running under passenger/rails/apache. The "100" is my defined number in
> > > /etc/libvirt/libvirtd.conf
> > 
> > Ah, OK.  So then the question becomes whether the problem is in the ruby
> > bindings not releasing the object in certain circumstances, or in rails
> > holding onto the object too long.  Unfortunately I'm not really that familiar
> > with rails or passenger, so I'm not entirely sure how to figure out where the
> > problem is.
> > 
> > I'll see if I can do a bit of testing and look at object lifetimes from the
> > point-of-view of ruby-libvirt to try and eliminate that from the equation.
> 
> Does ruby-libvirt rely on garbage collection to close the
> connection, or is there an explicit 'close' method on the
> virConnect binding. It is generally not workable to rely
> on garbage collection for closing connections because of
> the unpredictability of  when that may run.

It's an explicit close method.  So my guess is that somewhere a close is
being missed in Jaromír's application.

-- 
Chris Lalancette




More information about the libvir-list mailing list