
On Mon, Jul 09, 2018 at 02:00:06PM +0200, Michal Privoznik wrote:
On 07/09/2018 12:44 PM, Daniel P. Berrangé wrote:
On Mon, Jul 09, 2018 at 11:56:10AM +0200, Michal Privoznik wrote:
After f14c37ce4c2ccd111 the cleanup path for qemuBuildInterfaceCommandLine() and qemuBuildNetCommandLine() tries to connect to nwfilter driver in order to tear down any NWFilter that was brought up during cmd line construction. Since we also have negative test cases where errors during cmd line build are expected the cleanup paths are executed and NWFilter removal is attempted.
Fortunately, there is another bug that by pure luck prevented us from actually spawning the daemon and thus modifying actual user data. See next commit for explanation.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/driver.h | 2 +- tests/qemuxml2argvmock.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/driver.h b/src/driver.h index 0b1f7a2269..0a0d8facee 100644 --- a/src/driver.h +++ b/src/driver.h @@ -113,7 +113,7 @@ int virDriverLoadModule(const char *name,
virConnectPtr virGetConnectInterface(void); virConnectPtr virGetConnectNetwork(void); -virConnectPtr virGetConnectNWFilter(void); +virConnectPtr virGetConnectNWFilter(void) ATTRIBUTE_NOINLINE; virConnectPtr virGetConnectNodeDev(void); virConnectPtr virGetConnectSecret(void); virConnectPtr virGetConnectStorage(void); diff --git a/tests/qemuxml2argvmock.c b/tests/qemuxml2argvmock.c index 4df92cf396..13ccfb855d 100644 --- a/tests/qemuxml2argvmock.c +++ b/tests/qemuxml2argvmock.c @@ -233,3 +233,10 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev ATTRIBUTE_UNUSED) abort(); return 1729; } + + +virConnectPtr +virGetConnectNWFilter(void) +{ + return NULL; +}
In qemuxml2argvtest.c we actally set a fake shared connection, but I only set it for two of the drivers. We should just register it for all the drivers. eg expand these lines:
virSetConnectSecret(conn); virSetConnectStorage(conn);
Oh, that means I have to provide some basic implementation. I can't just set conn->nwFilterDriver = NULL; because then virGetConnectNWFilte() would still try to connect.
You shouldn't have to provide any impl - virGetConnectNWFilter() merely cares about the virConnectPtr being non-NULL - it doesn't check if the conn->nwfilterDriver pointer is set. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|