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