On Thu, Apr 26, 2018 at 05:08 PM +0200, John Ferlan <jferlan@xxxxxxxxxx> wrote: > On 04/12/2018 08:41 AM, Marc Hartmayer wrote: >> Use virNetServerGetProgram() to determine the virNetServerProgram >> instead of using hard coded global variables. This allows us to remove >> the global variables @remoteProgram and @qemuProgram as they're now no >> longer necessary. >> >> Signed-off-by: Marc Hartmayer <mhartmay@xxxxxxxxxxxxxxxxxx> >> Reviewed-by: Boris Fiuczynski <fiuczy@xxxxxxxxxxxxx> >> --- >> >> Note: I'm not 100% sure that there is no case where the lock for >> @client is already held by the thread which is calling >> virNetServerGetProgram and thus the lock order would be violated (the >> lock order has to be @server -> @client in the violating case it would >> be @client -> @server and therefore a deadlock might occur). >> > > Well the way I read virNetServerProgramDispatchCall it would seem both > @server and @client must be unlocked: > > /* > * When the RPC handler is called: > * > * - Server object is unlocked > * - Client object is unlocked > * > * Without locking, it is safe to use: > * > * 'args and 'ret' > */ > rv = (dispatcher->func)(server, client, msg, &rerr, arg, ret); Thanks for digging into that. > >> --- >> src/libvirt_remote.syms | 1 + >> src/remote/remote_daemon.c | 4 +- >> src/remote/remote_daemon.h | 3 - >> src/remote/remote_daemon_dispatch.c | 116 +++++++++++++++++++++++++++--------- >> src/rpc/gendispatch.pl | 6 ++ >> src/rpc/virnetserver.c | 23 +++++++ >> src/rpc/virnetserver.h | 2 + >> 7 files changed, 122 insertions(+), 33 deletions(-) >> > > Reviewed-by: John Ferlan <jferlan@xxxxxxxxxx> …and thanks for the review. > > John > -- Beste Grüße / Kind regards Marc Hartmayer IBM Deutschland Research & Development GmbH Vorsitzende des Aufsichtsrats: Martina Koederitz Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen Registergericht: Amtsgericht Stuttgart, HRB 243294 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list