On Mon, Aug 03, 2015 at 11:43:35AM +0200, Martin Kletzander wrote:
On Mon, Aug 03, 2015 at 09:27:37AM +0100, Daniel P. Berrange wrote:
>On Mon, Aug 03, 2015 at 09:05:53AM +0200, Martin Kletzander wrote:
>>Since its introduction in 2011 (particularly in commit f4324e329275),
>>the option doesn't work. It just effectively disables all incoming
>>connections. That's because the client private data that contain the
>>'keepalive_supported' boolean, are initialized to zeroes so the bool is
>>false and the only other place where the bool is used is when checking
>>whether the client supports keepalive. Thus, according to the server,
>>no client supports keepalive.
>>
>>Removing this instead of fixing it is better because a) apparently
>>nobody ever tried it since 2011 (4 years without one month) and b) we
>>cannot know whether the client supports keepalive until we get a ping or
>>pong keepalive packet. And that won't happen untile after we dispatched
>>the ConnectOpen call.
>>
>>Another two reasons would be c) the keepalive_required was tracked on
>>the server level, but keepalive_supported was in private data of the
>>client as well as the check that was made in the remote layer, thus
>>making all other instances of virNetServer miss this feature unless they
>>all implemented it for themselves and d) we can always add it back in
>>case there is a request and a use-case for it.
>>
>>Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
>>---
>>v2:
>> - Added a new daemontest file with current input/output.
>>
>> daemon/libvirtd-config.c | 4 ----
>> daemon/libvirtd-config.h | 2 --
>> daemon/libvirtd.aug | 2 --
>> daemon/libvirtd.c | 2 --
>> daemon/libvirtd.conf | 7 ------
>> daemon/libvirtd.h | 1 -
>> daemon/remote.c | 8 +------
>> daemon/test_libvirtd.aug.in | 2 --
>> src/libvirt_remote.syms | 1 -
>> src/locking/lock_daemon.c | 2 +-
>> src/lxc/lxc_controller.c | 2 +-
>> src/rpc/virnetserver.c | 25 +---------------------
>> src/rpc/virnetserver.h | 3 ---
>> ....json => input-data-no-keepalive-required.json} | 2 --
>> .../virnetdaemondata/output-data-admin-nomdns.json | 2 --
>> .../virnetdaemondata/output-data-anon-clients.json | 1 -
>> .../output-data-initial-nomdns.json | 1 -
>> tests/virnetdaemondata/output-data-initial.json | 1 -
>> ...json => output-data-no-keepalive-required.json} | 2 --
>> tests/virnetdaemontest.c | 2 +-
>> 20 files changed, 5 insertions(+), 67 deletions(-)
>> copy tests/virnetdaemondata/{input-data-admin-nomdns.json =>
input-data-no-keepalive-required.json} (96%)
>> copy tests/virnetdaemondata/{input-data-admin-nomdns.json =>
output-data-no-keepalive-required.json} (96%)
>>
>
>>diff --git a/daemon/libvirtd.aug b/daemon/libvirtd.aug
>>index a70aa1dddf90..7c7992dd0568 100644
>>--- a/daemon/libvirtd.aug
>>+++ b/daemon/libvirtd.aug
>>@@ -79,11 +79,9 @@ module Libvirtd =
>>
>> let keepalive_entry = int_entry "keepalive_interval"
>> | int_entry "keepalive_count"
>>- | bool_entry "keepalive_required"
>>
>> let admin_keepalive_entry = int_entry "admin_keepalive_interval"
>> | int_entry "admin_keepalive_count"
>>- | bool_entry "admin_keepalive_required"
>>
>> let misc_entry = str_entry "host_uuid"
>>
>
>We should not remove entries from this file in general as it will
>cause augeas to fail to load any existing files with the config
>option present.
>
So you are suggesting leaving them just here, but removing them from
everywhere else, right? I'll send a v3 if that's the case.
Yes, that's what we did with the 'log_buffer' setting we removed in
the past. Actually we left it in libvirtd.conf too with a comment
saying it was no longer used, for sake of historical reference
Regards,
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|