libvirt/src/rpc
Marc Hartmayer 45e00c7f2d rpc: Fix deadlock if there is no worker pool available
@srv must be unlocked for the call virNetServerProcessMsg otherwise a
deadlock can occur.

Since the pointer 'srv->workers' will never be changed after
initialization and the thread pool has it's own locking we can release
the lock of 'srv' earlier. This also fixes the deadlock.

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2018-07-21 07:46:42 -04:00
..
gendispatch.pl remote: add support for nwfilter binding objects 2018-06-26 11:22:07 +01:00
genprotocol.pl perl: Don't hardcode interpreter path 2017-09-19 16:04:53 +02:00
gensystemtap.pl perl: Don't hardcode interpreter path 2017-09-19 16:04:53 +02:00
Makefile.inc.am src: Always build virnettlscontext into libvirt-net-rpc.la 2018-06-05 14:32:26 +02:00
virkeepalive.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virkeepalive.h
virkeepaliveprotocol.x Define keepalive protocol 2011-11-24 11:44:08 +01:00
virnetclient.c all: Replace virGetLastError with virGetLastErrorCode where we can 2018-06-05 18:44:05 +02:00
virnetclient.h remote: expose a new libssh transport 2016-11-15 15:50:51 +01:00
virnetclientprogram.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virnetclientprogram.h
virnetclientstream.c rpc/: Remove spaces after casts 2018-05-03 22:31:37 +02:00
virnetclientstream.h Introduce virNetClientStreamRecvHole 2017-05-18 07:42:13 +02:00
virnetdaemon.c util: Clean up consumers of virJSONValueArraySize 2018-05-10 14:59:15 -04:00
virnetdaemon.h src: Drop most of #ifdef WITH_GNUTLS 2018-06-05 14:32:36 +02:00
virnetlibsshsession.c all: Replace virGetLastError with virGetLastErrorCode where we can 2018-06-05 18:44:05 +02:00
virnetlibsshsession.h libssh_transport: add new libssh-based transport 2016-11-15 15:50:51 +01:00
virnetmessage.c rpc: for messages with FDs always decode count of FDs from the message 2017-09-27 18:56:32 +02:00
virnetmessage.h
virnetprotocol.x rpc: Bump maximum message size to 32M 2017-05-24 14:02:29 +02:00
virnetsaslcontext.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virnetsaslcontext.h
virnetserver.c rpc: Fix deadlock if there is no worker pool available 2018-07-21 07:46:42 -04:00
virnetserver.h src: Drop most of #ifdef WITH_GNUTLS 2018-06-05 14:32:36 +02:00
virnetserverclient.c src: Drop most of #ifdef WITH_GNUTLS 2018-06-05 14:32:36 +02:00
virnetserverclient.h src: Drop most of #ifdef WITH_GNUTLS 2018-06-05 14:32:36 +02:00
virnetservermdns.c Use ATTRIBUTE_FALLTHROUGH 2017-06-12 19:11:30 -04:00
virnetservermdns.h
virnetserverprogram.c rpc/: Remove spaces after casts 2018-05-03 22:31:37 +02:00
virnetserverprogram.h rpc: pass virNetServer to post-exec restart callback in typesafe manner 2018-01-31 15:15:25 +00:00
virnetserverservice.c src: Drop most of #ifdef WITH_GNUTLS 2018-06-05 14:32:36 +02:00
virnetserverservice.h src: Drop most of #ifdef WITH_GNUTLS 2018-06-05 14:32:36 +02:00
virnetsocket.c rpc/: Remove spaces after casts 2018-05-03 22:31:37 +02:00
virnetsocket.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virnetsshsession.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virnetsshsession.h
virnettlscontext.c Remove check for gnutls/crypto.h 2018-05-16 10:40:40 +02:00
virnettlscontext.h