Re: [libvirt] Re: [PATCH 07/12] Domain Events - remote driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Just discovered one tiny problem here - need to check 'event' to see
> if the POLLHUP or POLLERR flags are set, and unregister the callback.
> Otherwise if you kill the server, the client will just spin on POLLHUP
> or ERR  forever. Something like this ought todo the trick
> 
>     if (event & (POLLERR | POLLHUP)) {
>          virEventRemoveHandle(fd);
>          return;
>     }
> 

I've been looking over the rest of your changes.
Generally, I agree all these suggestions are good ones...except for the code above

With this code in, I run the following test
1. start libvirtd
2. begin to monitor events with event-test
3. virsh create foo.xml

At this point, the event-test app encounters a HUP, or ERR, and stops monitoring for events - it will only ever get the "Started" event

I handle this in the event-test poll loop via

if ( pfd.revents & POLLHUP ) {
            DEBUG0("Reset by peer");
            return -1;
        }


Is it not a reasonable restriction to require the client app to handle a Hangup?


--
Libvir-list mailing list
Libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]