
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@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