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
Kind regards,
Jaromir.
Dne 19. července 2010 20:34 Chris Lalancette <clalance(a)redhat.com>napsal(a):
On 07/17/10 - 09:30:29PM, Jaromír Červenka wrote:
> Good evening,
>
> could anybody explain me this, please?
>
> divinus:~ # virsh
> error: cannot recv data: : Connection reset by peer
> error: failed to connect to the hypervisor
> divinus:~ #
>
> I am trying to imlement Chris's ruby-libvirt to my Ruby on Rails
> application. First few connection to libvirt daemon (thru ruby-libvirt
API)
> from my app are ok, but then somethings happend and it's not possible to
> connect anymore until I restart libvirt daemon manually by init.d script
or
> until I restart apache (or WEBrick). And it's not possible connect to
virsh
> from shell also! See messages above.
>
> When I try ruby-libvirt from bare Ruby script, everythig is fine -
doesn't
> matter how many times I connect. It's strange.
>
> Does anybody have experience with ruby-libvirt in RoR application?
That is pretty strange. One way that I could imagine this happening is if
libvirtd runs out of file descriptors (or some other resource), and then
can't accept any new connections. There have been some bugs in libvirtd
that
cause that, though it could equally be that your objects aren't being
garbage collected by the Ruby VM. What version of libvirtd are you testing
against? If it's possible, I wonder if you can force a garbage collection
run in ruby and see if that frees up any resources?
--
Chris Lalancette