Re: [PATCH] libvirt-tck: Ignore SIGPIPE in 051-daemon-hook.t

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

 



On 07/03/14 23:46, Mike Latimer wrote:
On Friday, March 07, 2014 05:16:48 PM Osier Yang wrote:
       $hook->cleanup();
+
+    # Restarting libvirtd broke the tck connection, so ignore sigpipe and
+    # undefine $tck to avoid a return code of 141
+    $SIG{PIPE} = 'IGNORE';
+    undef $tck;
We should get the libvirt "connection" closed before restarting
libvirtd, in tck, it should be "$tck->cleanup()".
I should have stated in the original email that "$tck->cleanup()" does not
help here. With just "$tck->cleanup()" after "$hook->cleanup()", the test
still exists with a return code of 141. If I add the code to ignore the
SIGPIPE, the test ends with the following messages:

libvirt error code: 38, message: Cannot write data: Broken pipe
libvirt error code: 1, message: internal error: client socket is closed

If the test restarts libvirtd (using `service libvirtd restart`), the only way
I can get it to end with an exit code of 0 is to undefine $tck.



Hm, $tck->cleanup() doesn't close the connection, it just destroy and
undefine the existing domains, networks, and pools.

<snip>
sub reset {
    my $self = shift;
    my $conn = shift || $self->conn;

    $self->reset_domains($conn);
    $self->reset_networks($conn);
    $self->reset_storage_pools($conn);
}

sub cleanup {
    my $self = shift;

    foreach my $conn (@{$self->{conns}}) {
        $self->reset($conn);
    }

    delete $self->{conns};
}
</snip>

So it looks like we need a new helper to close the connection.

Osier

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