On 30.11.2012 20:04, Laine Stump wrote: > On 11/19/2012 11:51 AM, Michal Privoznik wrote: >> Currently, we are only keeping a inactive XML configuration >> in status dir. This is no longer enough as we need to keep >> this class_id attribute so we don't overwrite old entries >> when the daemon restarts. > > Aha! So you're looking at solving the problem in a different way - save > everything to the status file rather than recomputing it as you restart. > > While I like the idea of having the network status file hold this > information, I think its reliability is suspect. What if a guest's > process is terminated while libvirtd isn't running? Or what if libvirtd > exits unexpectedly after the commands to setup bandwidth have been > executed, but before the new network state file has been written (or > vice versa, depending on the code). > > Also, networks aren't properly shut down when the host is being shutdown > (there's no equivalent to the libvirt-guests service, although at least > one person a month or two ago requested it). If guest is being shut down, the networkReleaseActualDevice() is called, isn't it? And this should update the floor_sum. Even if libvirtd is restarted and qemu process dies meanwhile, qemuProcessStop is called and this calls the networkReleaseActualDevice() so I think we are safe here. > > > If everybody agrees that saving this info to a file and re-reading it on > start up is reliable, though, then we might as well do the same thing > with the device pool (although it's currently a bit different - the > inuse count is stored in the virNetworkDef rather than Obj, and is > reported during net-dumpxml) With new code we can update this. > >> However, since there has already >> been a libvirt release > > *a* libvirt release? :-) That 'a' belongs to 'release'. It doesn't matter which release it was. Yeah, now that I re-read it again it's a mess :) > > >> which has just <network/> as root element, >> and we want to keep things compatible, detect that loaded >> status file is older one, and don't scream about it. >> --- >> src/conf/network_conf.c | 199 ++++++++++++++++++++++++++++++++++--------- >> src/conf/network_conf.h | 2 + >> src/libvirt_private.syms | 1 + >> src/network/bridge_driver.c | 9 +-- >> 4 files changed, 165 insertions(+), 46 deletions(-) >> > > ACK. > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list