On Thu, Feb 17, 2022 at 10:56:11 +0100, Michal Prívozník wrote: > On 2/17/22 10:45, Peter Krempa wrote: > > On Thu, Feb 17, 2022 at 10:39:59 +0100, Michal Prívozník wrote: > >> On 2/16/22 16:41, Peter Krempa wrote: > >>> The fix was on RPC level so everything should advertise it. > >>> > >>> Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> > >>> --- > >>> src/driver.c | 4 +++- > >>> 1 file changed, 3 insertions(+), 1 deletion(-) [...] > git show -W b0f78d626a18bcecae3a4d165540ab88bfbfc9ee -- > src/libvirt-network.c > > You'll see that the public API was given @command and then @section > arguments, but the callback was called with @section and @command > (reversed). This went unnoticed because both arguments are of the same > type (thus RPC serializer didn't report any error) and because the > public API is called again on the daemon side (during dispatch) so the > order was swapped again and thus network driver saw arguments in correct > order. Problem arose only when split daemons were introduced -> suddenly > the API was called three times (one time at client, one time at > virtqemud and finally in virnetworkd), so there was imbalance of > swapping. And yes, if client connected to virtnetworkd directly > everything worked, because again - two swapps were done. > > > > >> > >> I'm not objecting to this patch, just trying to shed more light into the > >> problem. > > > > I can update the comment. Actually the idea is that the comment captures > > the reason for the flag, so it should be acurate. > > > > Yeah, it's just that I'm unable to come with anything better. How about: /* Feature flag exposes that the accidental switching of order of * arguments in the public API trampoline virNetworkUpdate is known. * Updated clients thus use the correct ordering with an updated * server. All drivers must signal support for this feature. */