libvirt/src/rpc
Yi Wang ab5bb6f346 rpc: fix keep alive timer segfault
ka maybe have been freeed in virObjectUnref, application using
virKeepAliveTimer will segfault when unlock ka. We should keep
ka's refs positive before using it.

#0  0x00007fd8f79970e8 in virClassIsDerivedFrom (klass=0xdeadbeef, parent=0x7fd8e8001b80) at util/virobject.c:169
#1  0x00007fd8f799742e in virObjectIsClass (anyobj=anyobj entry=0x7fd8e800b9c0, klass=<optimized out>) at util/virobject.c:365
#2  0x00007fd8f79974e4 in virObjectUnlock (anyobj=0x7fd8e800b9c0) at util/virobject.c:338
#3  0x00007fd8f7ac477e in virKeepAliveTimer (timer=<optimized out>, opaque=0x7fd8e800b9c0) at rpc/virkeepalive.c:177
#4  0x00007fd8f7e5c9cf in libvirt_virEventInvokeTimeoutCallback () from /usr/lib64/python2.7/site-packages/libvirtmod.so
#5  0x00007fd8ff64db94 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#6  0x00007fd8ff64f1ad in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
#7  0x00007fd8ff64d85f in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#8  0x00007fd8ff64d950 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#9  0x00007fd8ff64d950 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#10 0x00007fd8ff64f1ad in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
#11 0x00007fd8ff5dc098 in function_call () from /lib64/libpython2.7.so.1.0
#12 0x00007fd8ff5b7073 in PyObject_Call () from /lib64/libpython2.7.so.1.0
#13 0x00007fd8ff5c6085 in instancemethod_call () from /lib64/libpython2.7.so.1.0
#14 0x00007fd8ff5b7073 in PyObject_Call () from /lib64/libpython2.7.so.1.0
#15 0x00007fd8ff648ff7 in PyEval_CallObjectWithKeywords () from /lib64/libpython2.7.so.1.0
#16 0x00007fd8ff67d7e2 in t_bootstrap () from /lib64/libpython2.7.so.1.0
#17 0x00007fd8ff358df3 in start_thread () from /lib64/libpthread.so.0
#18 0x00007fd8fe97d3ed in clone () from /lib64/libc.so.6

Signed-off-by: Yi Wang <wang.yi59@zte.com.cn>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2017-04-24 12:19:13 +02:00
..
gendispatch.pl rpcgen: Add support for generating funcs returning alloc'd typed params 2016-06-22 08:15:45 +02:00
genprotocol.pl genprotocol.pl: add darwin to fixup list 2016-11-24 17:17:43 +03:00
gensystemtap.pl build: predictably generate systemtap tapsets (bz 1173641) 2016-01-20 10:26:02 -05:00
virkeepalive.c rpc: fix keep alive timer segfault 2017-04-24 12:19:13 +02:00
virkeepalive.h
virkeepaliveprotocol.x
virnetclient.c Fix error reporting when poll returns POLLHUP/POLLERR 2017-04-20 10:15:46 +01:00
virnetclient.h remote: expose a new libssh transport 2016-11-15 15:50:51 +01:00
virnetclientprogram.c
virnetclientprogram.h
virnetclientstream.c refactoring: Use the return value of virObjectRef directly 2017-04-10 14:49:20 +02:00
virnetclientstream.h
virnetdaemon.c rpc: fix resource leak 2017-04-11 13:23:00 +02:00
virnetdaemon.h Change virNetDaemonGetServerNames to virNetDaemonGetServers 2016-03-11 12:58:41 +01:00
virnetlibsshsession.c rpc: libssh: allow a NULL known_hosts file 2017-01-11 13:37:24 +01:00
virnetlibsshsession.h libssh_transport: add new libssh-based transport 2016-11-15 15:50:51 +01:00
virnetmessage.c rpc: use virNetMessageClearPayload in client 2016-05-05 14:28:19 -04:00
virnetmessage.h rpc: use virNetMessageClearPayload in client 2016-05-05 14:28:19 -04:00
virnetprotocol.x rpc: protocol: Clarify VIR_NET_ERROR usage with streams 2016-05-02 10:13:04 -04:00
virnetsaslcontext.c Ignore SASL deprecation warnings on OS-X 2017-04-19 10:51:51 +01:00
virnetsaslcontext.h build: workaround broken SASL header (again) 2016-03-31 17:36:49 +02:00
virnetserver.c refactoring: Use the return value of virObjectRef directly 2017-04-10 14:49:20 +02:00
virnetserver.h rpc: virnetserver: Rename ClientSetProcessingControls to ClientSetLimits 2016-08-02 14:51:13 +02:00
virnetserverclient.c rpc: serverclient: Add option to suppress errors on EOF 2017-03-17 17:20:22 +01:00
virnetserverclient.h rpc: serverclient: Add option to suppress errors on EOF 2017-03-17 17:20:22 +01:00
virnetservermdns.c
virnetservermdns.h
virnetserverprogram.c virNet{Client,Server}*Stream: Update comment 2016-04-21 16:29:41 +02:00
virnetserverprogram.h daemonClientStream: Use unsigned int to store stream @serial 2016-04-21 16:29:41 +02:00
virnetserverservice.c rpc: Fix potentially segfaults 2017-02-12 15:02:42 -05:00
virnetserverservice.h rpc: allow selection of TCP address family 2015-06-11 12:11:18 +01:00
virnetsocket.c rpc: socket: Add possibility to suppress errors on read hangup 2017-03-17 17:19:00 +01:00
virnetsocket.h annotate all mocked functions with noinline 2017-04-19 10:51:51 +01:00
virnetsshsession.c build: add GCC 6.0 -Wlogical-op workaround 2016-04-11 12:09:14 +02:00
virnetsshsession.h
virnettlscontext.c Report what TLS priority string we use for a session 2017-03-16 11:03:33 +00:00
virnettlscontext.h rpc: allow priority string to be passed to TLS context 2016-06-08 13:48:45 +01:00