mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-31 10:23:09 +00:00
a42b46dd7d
When the host is shutting down then we get PrepareForShutdown signal on DBus to which we react by creating a thread which runs virStateStop() and thus qemuStateStop(). But if scheduling the thread is delayed just a but it may happen that we receive SIGTERM (sent by systemd) to which we respond by quitting our event loop and cleaning up everything (including drivers). And only after that the thread gets to run only to find qemu_driver being NULL. What we can do is to delay exiting event loop and join the thread that's executing virStateStop(). If the join doesn't happen in given timeout (currently 30 seconds) then libvirtd shuts down forcefully anyways (see virNetDaemonRun()). Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1895359 Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1739564 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
283 lines
7.1 KiB
Plaintext
283 lines
7.1 KiB
Plaintext
#
|
|
# Private symbols used in RPC operations. Add symbols here, and see
|
|
# Makefile.am for more details.
|
|
#
|
|
# Keep this file sorted by header name, then by symbols with each header.
|
|
#
|
|
|
|
# Generated files
|
|
xdr_*;
|
|
# Hack only required for Win32 to make tests link properly,
|
|
# as the wildcard above doesn't work there. Fortunately
|
|
# Win32 builds don't require the other xdr_* syms exported.
|
|
# since there's no libvirtd built.
|
|
xdr_virNetMessageError;
|
|
|
|
|
|
# rpc/virnetclient.h
|
|
virNetClientAddProgram;
|
|
virNetClientAddStream;
|
|
virNetClientClose;
|
|
virNetClientDupFD;
|
|
virNetClientGetFD;
|
|
virNetClientGetTLSKeySize;
|
|
virNetClientHasPassFD;
|
|
virNetClientIsEncrypted;
|
|
virNetClientIsOpen;
|
|
virNetClientKeepAliveIsSupported;
|
|
virNetClientKeepAliveStart;
|
|
virNetClientKeepAliveStop;
|
|
virNetClientLocalAddrStringSASL;
|
|
virNetClientNewExternal;
|
|
virNetClientNewLibSSH2;
|
|
virNetClientNewSSH;
|
|
virNetClientNewTCP;
|
|
virNetClientNewUNIX;
|
|
virNetClientRegisterAsyncIO;
|
|
virNetClientRegisterKeepAlive;
|
|
virNetClientRemoteAddrStringSASL;
|
|
virNetClientRemoveStream;
|
|
virNetClientSendNonBlock;
|
|
virNetClientSendStream;
|
|
virNetClientSendWithReply;
|
|
virNetClientSetCloseCallback;
|
|
virNetClientSetTLSSession;
|
|
virNetClientSSHHelperCommand;
|
|
|
|
|
|
# rpc/virnetclientprogram.h
|
|
virNetClientProgramCall;
|
|
virNetClientProgramDispatch;
|
|
virNetClientProgramGetProgram;
|
|
virNetClientProgramGetVersion;
|
|
virNetClientProgramMatches;
|
|
virNetClientProgramNew;
|
|
|
|
|
|
# rpc/virnetclientstream.h
|
|
virNetClientStreamCheckSendStatus;
|
|
virNetClientStreamCheckState;
|
|
virNetClientStreamEOF;
|
|
virNetClientStreamEventAddCallback;
|
|
virNetClientStreamEventRemoveCallback;
|
|
virNetClientStreamEventUpdateCallback;
|
|
virNetClientStreamMatches;
|
|
virNetClientStreamNew;
|
|
virNetClientStreamQueuePacket;
|
|
virNetClientStreamRecvHole;
|
|
virNetClientStreamRecvPacket;
|
|
virNetClientStreamSendHole;
|
|
virNetClientStreamSendPacket;
|
|
virNetClientStreamSetError;
|
|
|
|
|
|
# rpc/virnetdaemon.h
|
|
virNetDaemonAddServer;
|
|
virNetDaemonAddShutdownInhibition;
|
|
virNetDaemonAddSignalHandler;
|
|
virNetDaemonAutoShutdown;
|
|
virNetDaemonGetServer;
|
|
virNetDaemonGetServers;
|
|
virNetDaemonHasClients;
|
|
virNetDaemonHasServer;
|
|
virNetDaemonIsPrivileged;
|
|
virNetDaemonNew;
|
|
virNetDaemonNewPostExecRestart;
|
|
virNetDaemonPreExecRestart;
|
|
virNetDaemonQuit;
|
|
virNetDaemonRemoveShutdownInhibition;
|
|
virNetDaemonRun;
|
|
virNetDaemonSetShutdownCallbacks;
|
|
virNetDaemonSetStateStopWorkerThread;
|
|
virNetDaemonUpdateServices;
|
|
|
|
|
|
# rpc/virnetmessage.h
|
|
virNetMessageAddFD;
|
|
virNetMessageClear;
|
|
virNetMessageClearPayload;
|
|
virNetMessageDecodeHeader;
|
|
virNetMessageDecodeLength;
|
|
virNetMessageDecodeNumFDs;
|
|
virNetMessageDecodePayload;
|
|
virNetMessageDupFD;
|
|
virNetMessageEncodeHeader;
|
|
virNetMessageEncodeNumFDs;
|
|
virNetMessageEncodePayload;
|
|
virNetMessageEncodePayloadRaw;
|
|
virNetMessageFree;
|
|
virNetMessageNew;
|
|
virNetMessageQueuePush;
|
|
virNetMessageQueueServe;
|
|
virNetMessageSaveError;
|
|
|
|
|
|
# rpc/virnetserver.h
|
|
virNetServerAddClient;
|
|
virNetServerAddProgram;
|
|
virNetServerAddService;
|
|
virNetServerAddServiceTCP;
|
|
virNetServerAddServiceUNIX;
|
|
virNetServerClose;
|
|
virNetServerGetClient;
|
|
virNetServerGetClients;
|
|
virNetServerGetCurrentClients;
|
|
virNetServerGetCurrentUnauthClients;
|
|
virNetServerGetMaxClients;
|
|
virNetServerGetMaxUnauthClients;
|
|
virNetServerGetName;
|
|
virNetServerGetThreadPoolParameters;
|
|
virNetServerHasClients;
|
|
virNetServerNeedsAuth;
|
|
virNetServerNew;
|
|
virNetServerNewPostExecRestart;
|
|
virNetServerNextClientID;
|
|
virNetServerPreExecRestart;
|
|
virNetServerProcessClients;
|
|
virNetServerSetClientAuthenticated;
|
|
virNetServerSetClientLimits;
|
|
virNetServerSetThreadPoolParameters;
|
|
virNetServerSetTLSContext;
|
|
virNetServerUpdateServices;
|
|
virNetServerUpdateTlsFiles;
|
|
|
|
|
|
# rpc/virnetserverclient.h
|
|
virNetServerClientAddFilter;
|
|
virNetServerClientClose;
|
|
virNetServerClientCloseLocked;
|
|
virNetServerClientDelayedClose;
|
|
virNetServerClientGetAuth;
|
|
virNetServerClientGetFD;
|
|
virNetServerClientGetID;
|
|
virNetServerClientGetIdentity;
|
|
virNetServerClientGetInfo;
|
|
virNetServerClientGetPrivateData;
|
|
virNetServerClientGetReadonly;
|
|
virNetServerClientGetSELinuxContext;
|
|
virNetServerClientGetTimestamp;
|
|
virNetServerClientGetTLSKeySize;
|
|
virNetServerClientGetTLSSession;
|
|
virNetServerClientGetTransport;
|
|
virNetServerClientGetUNIXIdentity;
|
|
virNetServerClientHasTLSSession;
|
|
virNetServerClientImmediateClose;
|
|
virNetServerClientInit;
|
|
virNetServerClientInitKeepAlive;
|
|
virNetServerClientIsAuthenticated;
|
|
virNetServerClientIsAuthPendingLocked;
|
|
virNetServerClientIsClosedLocked;
|
|
virNetServerClientIsLocal;
|
|
virNetServerClientIsSecure;
|
|
virNetServerClientLocalAddrStringSASL;
|
|
virNetServerClientNew;
|
|
virNetServerClientNewPostExecRestart;
|
|
virNetServerClientPreExecRestart;
|
|
virNetServerClientRemoteAddrStringSASL;
|
|
virNetServerClientRemoteAddrStringURI;
|
|
virNetServerClientRemoveFilter;
|
|
virNetServerClientSendMessage;
|
|
virNetServerClientSetAuthLocked;
|
|
virNetServerClientSetAuthPendingLocked;
|
|
virNetServerClientSetCloseHook;
|
|
virNetServerClientSetDispatcher;
|
|
virNetServerClientSetIdentity;
|
|
virNetServerClientSetQuietEOF;
|
|
virNetServerClientSetReadonly;
|
|
virNetServerClientStartKeepAlive;
|
|
virNetServerClientWantCloseLocked;
|
|
|
|
|
|
# rpc/virnetserverprogram.h
|
|
virNetServerProgramDispatch;
|
|
virNetServerProgramGetID;
|
|
virNetServerProgramGetPriority;
|
|
virNetServerProgramGetVersion;
|
|
virNetServerProgramMatches;
|
|
virNetServerProgramNew;
|
|
virNetServerProgramSendReplyError;
|
|
virNetServerProgramSendStreamData;
|
|
virNetServerProgramSendStreamError;
|
|
virNetServerProgramSendStreamHole;
|
|
virNetServerProgramUnknownError;
|
|
|
|
|
|
# rpc/virnetserverservice.h
|
|
virNetServerServiceClose;
|
|
virNetServerServiceGetAuth;
|
|
virNetServerServiceGetMaxRequests;
|
|
virNetServerServiceGetPort;
|
|
virNetServerServiceGetTLSContext;
|
|
virNetServerServiceIsReadonly;
|
|
virNetServerServiceNewFDs;
|
|
virNetServerServiceNewPostExecRestart;
|
|
virNetServerServiceNewTCP;
|
|
virNetServerServiceNewUNIX;
|
|
virNetServerServicePreExecRestart;
|
|
virNetServerServiceSetDispatcher;
|
|
virNetServerServiceToggle;
|
|
|
|
|
|
# rpc/virnetsocket.h
|
|
virNetSocketAccept;
|
|
virNetSocketAddIOCallback;
|
|
virNetSocketCheckProtocols;
|
|
virNetSocketClose;
|
|
virNetSocketDupFD;
|
|
virNetSocketGetFD;
|
|
virNetSocketGetPath;
|
|
virNetSocketGetPort;
|
|
virNetSocketGetSELinuxContext;
|
|
virNetSocketGetUNIXIdentity;
|
|
virNetSocketHasCachedData;
|
|
virNetSocketHasPassFD;
|
|
virNetSocketHasPendingData;
|
|
virNetSocketIsLocal;
|
|
virNetSocketListen;
|
|
virNetSocketLocalAddrStringSASL;
|
|
virNetSocketNewConnectCommand;
|
|
virNetSocketNewConnectExternal;
|
|
virNetSocketNewConnectLibSSH2;
|
|
virNetSocketNewConnectSockFD;
|
|
virNetSocketNewConnectSSH;
|
|
virNetSocketNewConnectTCP;
|
|
virNetSocketNewConnectUNIX;
|
|
virNetSocketNewListenFD;
|
|
virNetSocketNewListenTCP;
|
|
virNetSocketNewListenUNIX;
|
|
virNetSocketNewPostExecRestart;
|
|
virNetSocketPreExecRestart;
|
|
virNetSocketRead;
|
|
virNetSocketRecvFD;
|
|
virNetSocketRemoteAddrStringSASL;
|
|
virNetSocketRemoteAddrStringURI;
|
|
virNetSocketRemoveIOCallback;
|
|
virNetSocketSendFD;
|
|
virNetSocketSetBlocking;
|
|
virNetSocketSetTLSSession;
|
|
virNetSocketUpdateIOCallback;
|
|
virNetSocketWrite;
|
|
|
|
|
|
# rpc/virnettlscontext.h
|
|
virNetTLSContextCheckCertificate;
|
|
virNetTLSContextNewClient;
|
|
virNetTLSContextNewClientPath;
|
|
virNetTLSContextNewServer;
|
|
virNetTLSContextNewServerPath;
|
|
virNetTLSInit;
|
|
virNetTLSSessionGetHandshakeStatus;
|
|
virNetTLSSessionGetKeySize;
|
|
virNetTLSSessionGetX509DName;
|
|
virNetTLSSessionHandshake;
|
|
virNetTLSSessionNew;
|
|
virNetTLSSessionRead;
|
|
virNetTLSSessionSetIOCallbacks;
|
|
virNetTLSSessionWrite;
|
|
|
|
|
|
# Let emacs know we want case-insensitive sorting
|
|
# Local Variables:
|
|
# sort-fold-case: t
|
|
# End:
|