After updating kile to 2.1.2 kile process remains in memory after closing. Reproducible: Always Steps to Reproduce: 1. Start kile 2. Close kile window 3. Actual Results: kile process remains in memory Expected Results: kile process should be terminated No such problem with kile-2.1.1.
Backtrace for kile process that remains after closing. (gdb) thread apply all bt full Thread 4 (Thread 0xb5627b40 (LWP 2825)): #0 0x009ae416 in __kernel_vsyscall () No symbol table info available. #1 0x04667044 in __GI___poll (fds=0xb4d022b0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 resultvar = <optimized out> oldtype = -516 result = <optimized out> #2 0x01eddebc in g_poll () from /lib/libglib-2.0.so.0 No symbol table info available. #3 0x01ecf310 in ?? () from /lib/libglib-2.0.so.0 No symbol table info available. #4 0x01ecf472 in g_main_context_iteration () from /lib/libglib-2.0.so.0 No symbol table info available. #5 0x04ddfbc2 in QEventDispatcherGlib::processEvents (this=0xb4d00468, flags=...) at kernel/qeventdispatcher_glib.cpp:424 d = 0xb4d00478 canWait = <optimized out> savedFlags = {i = 0} result = <optimized out> #6 0x04dac31d in QEventLoop::processEvents (this=this@entry=0xb56271c8, flags=...) at kernel/qeventloop.cpp:149 d = 0xb4d02238 #7 0x04dac619 in QEventLoop::exec (this=0xb56271c8, flags=...) at kernel/qeventloop.cpp:204 d = 0xb4d02238 locker = {val = 158347188} app = 0xb562717c #8 0x04c9687c in QThread::exec (this=0x96f9be0) at thread/qthread.cpp:501 d = 0x9702f68 locker = {val = 158347188} eventLoop = {<QObject> = {_vptr.QObject = 0x4f10e28, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x4e8f7e0 "QObject", data = 0x4e8f880, extradata = 0x4f0f928}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x4dc6f70 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0xb4d02238}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x4e985a0 "Qt", data = 0x4e9bec0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x830c5a0, stringdata = 0x4ea1fc0 "QEventLoop", data = 0x4ea1fe0, extradata = 0x4f10e68}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x4e16cb0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}} returnCode = <optimized out> #9 0x04d8a4fe in QInotifyFileSystemWatcherEngine::run (this=0x96f9be0) at io/qfilesystemwatcher_inotify.cpp:248 sn = {<QObject> = {_vptr.QObject = 0x4f10f88, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x4e8f7e0 "QObject", data = 0x4e8f880, extradata = 0x4f0f928}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x4dc6f70 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0xb4d020e8}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x4e985a0 "Qt", data = 0x4e9bec0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x830c5a0, stringdata = 0x4ea31c0 "QSocketNotifier", data = 0x4ea3200, extradata = 0x4f10fc8}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x4e172b0 <QSocketNotifier::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, sockfd = 13, sntype = QSocketNotifier::Read, snenabled = true} #10 0x04c99cc1 in QThreadPrivate::start (arg=0x96f9be0) at thread/qthread_unix.cpp:298 __clframe = {__cancel_routine = 0x4c98b70 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x96f9be0, __do_it = 1, __cancel_type = <optimized out>} thr = 0x96f9be0 data = 0x9703038 #11 0x002ceadf in start_thread (arg=0xb5627b40) at pthread_create.c:309 __res = <optimized out> pd = 0xb5627b40 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {3010548, 0, 4001536, -1251839128, 1415071673, -915926829}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 pagesize_m1 = <optimized out> sp = <optimized out> freesize = <optimized out> #12 0x0467155e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133 ---Type <return> to continue, or q <return> to quit--- No locals. Thread 3 (Thread 0xb4ce4b40 (LWP 2826)): #0 0x009ae416 in __kernel_vsyscall () No symbol table info available. #1 0x0466a021 in select () at ../sysdeps/unix/syscall-template.S:82 No locals. #2 0x04d88744 in QProcessManager::run (this=0x4f129b8) at io/qprocess_unix.cpp:245 readset = {fds_bits = {16, 0 <repeats 31 times>}} nselect = <optimized out> c = 0 '\000' #3 0x04c99cc1 in QThreadPrivate::start (arg=0x4f129b8) at thread/qthread_unix.cpp:298 __clframe = {__cancel_routine = 0x4c98b70 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x4f129b8, __do_it = 1, __cancel_type = <optimized out>} thr = 0x4f129b8 data = 0x9465960 #4 0x002ceadf in start_thread (arg=0xb4ce4b40) at pthread_create.c:309 __res = <optimized out> pd = 0xb4ce4b40 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {3010548, 0, 4001536, -1261550744, 205014970, -915926829}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 pagesize_m1 = <optimized out> sp = <optimized out> freesize = <optimized out> #5 0x0467155e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133 No locals. Thread 2 (Thread 0xb3e39b40 (LWP 2883)): #0 0x009ae416 in __kernel_vsyscall () No symbol table info available. #1 0x002d212c in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:172 No locals. #2 0x0049e79d in QTWTF::TCMalloc_PageHeap::scavengerThread (this=this@entry=0x5ad040) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359 No locals. #3 0x0049e7d0 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0x5ad040) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464 No locals. #4 0x002ceadf in start_thread (arg=0xb3e39b40) at pthread_create.c:309 __res = <optimized out> pd = 0xb3e39b40 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {3010548, 0, 4001536, -1276931224, 1469597620, -915926829}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 pagesize_m1 = <optimized out> sp = <optimized out> freesize = <optimized out> #5 0x0467155e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133 No locals. Thread 1 (Thread 0xb779c7c0 (LWP 2824)): #0 0x009ae416 in __kernel_vsyscall () No symbol table info available. #1 0x04667044 in __GI___poll (fds=0x9e2a330, nfds=11, timeout=2448) at ../sysdeps/unix/sysv/linux/poll.c:87 resultvar = <optimized out> oldtype = -516 result = <optimized out> #2 0x01eddebc in g_poll () from /lib/libglib-2.0.so.0 No symbol table info available. #3 0x01ecf310 in ?? () from /lib/libglib-2.0.so.0 ---Type <return> to continue, or q <return> to quit--- No symbol table info available. #4 0x01ecf472 in g_main_context_iteration () from /lib/libglib-2.0.so.0 No symbol table info available. #5 0x04ddfbc2 in QEventDispatcherGlib::processEvents (this=0x94367e0, flags=...) at kernel/qeventdispatcher_glib.cpp:424 d = 0x9463280 canWait = <optimized out> savedFlags = {i = 0} result = <optimized out> #6 0x0123401b in QGuiEventDispatcherGlib::processEvents (this=0x94367e0, flags=...) at kernel/qguieventdispatcher_glib.cpp:207 d = 0x9463280 saved_flags = {i = 0} returnValue = 252 #7 0x04dac31d in QEventLoop::processEvents (this=this@entry=0xbffdd6f8, flags=...) at kernel/qeventloop.cpp:149 d = 0xadda3a8 #8 0x04dac619 in QEventLoop::exec (this=0xbffdd6f8, flags=...) at kernel/qeventloop.cpp:204 d = 0xadda3a8 locker = {val = 155409724} app = 0xbffdd6ac #9 0x04db185b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148 threadData = 0x9435c78 eventLoop = {<QObject> = {_vptr.QObject = 0x4f10e28, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x4e8f7e0 "QObject", data = 0x4e8f880, extradata = 0x4f0f928}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x4dc6f70 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0xadda3a8}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x4e985a0 "Qt", data = 0x4e9bec0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x830c5a0, stringdata = 0x4ea1fc0 "QEventLoop", data = 0x4ea1fe0, extradata = 0x4f10e68}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x4e16cb0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}} returnCode = <optimized out> #10 0x0117f825 in QApplication::exec () at kernel/qapplication.cpp:3815 No locals. #11 0x08072902 in main (argc=1, argv=0xbffddbf4) at /usr/src/debug/kile-2.1.2/src/main.cpp:171 restore = <optimized out> kile = 0x959b078 aboutData = {d = 0x943a3a0} running = <optimized out> app = {<QApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x6bd8008, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x4e8f7e0 "QObject", data = 0x4e8f880, extradata = 0x4f0f928}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x4dc6f70 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, d_ptr = {d = 0x9459290}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x4e985a0 "Qt", data = 0x4e9bec0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x830c5a0, stringdata = 0x4ea2060 "QCoreApplication", data = 0x4ea2100, extradata = 0x4f10ed0}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x4e16e10 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, static self = 0xbffdd930}, static staticMetaObject = {d = {superdata = 0x4f10ec0, stringdata = 0x18b7260 "QApplication", data = 0x18b74a0, extradata = 0x1afdde0}}, static staticMetaObjectExtraData = {objects = 0x0, static_metacall = 0x11855b0 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}}, static staticMetaObject = {d = { superdata = 0x1afddd0, stringdata = 0x6b2b280 "KApplication", data = 0x6b2b420, extradata = 0x6bd8060}}, static staticMetaObjectExtraData = { objects = 0x0, static_metacall = 0x6994670 <KApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>}, static loadedByKdeinit = false, static KApp = 0xbffdd930, d = 0x9504548} dbus = {static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x5285900 "QDBusConnection", data = 0x5285b20, extradata = 0x0}}, d = 0x94bbea0} options = {d = 0x944d988} args = 0x944dcd0 (gdb) q A debugging session is active. Inferior 1 [process 2824] will be detached. Quit anyway? (y or n) y Detaching from program: /usr/bin/kile, process 2824
Created attachment 70936 [details] Force termination of Kile Unfortunately, I cannot reproduce the problem here. But could you maybe check whether the attached patch fixes the problem for you? Thanks.
(In reply to comment #2) > Created attachment 70936 [details] > Force termination of Kile > > Unfortunately, I cannot reproduce the problem here. > > But could you maybe check whether the attached patch fixes the problem for > you? Thanks. Attached patch fixes Kile termination.
Git commit d96f74f72a7b1b0d28ef4c736aa34428eea4fb3a by Michel Ludwig. Committed on 09/05/2012 at 21:23. Pushed by mludwig into branch '2.1'. Force termination of Kile when the main window is closed. Under some circumstances the Kile process would still remain in memory otherwise. M +4 -3 src/kile.cpp http://commits.kde.org/kile/d96f74f72a7b1b0d28ef4c736aa34428eea4fb3a
Git commit 97d3b04fd2f0de89a33378cf8f6208c3e251acb8 by Michel Ludwig. Committed on 09/05/2012 at 21:23. Pushed by mludwig into branch 'master'. Force termination of Kile when the main window is closed. Under some circumstances the Kile process would still remain in memory otherwise. M +4 -3 src/kile.cpp http://commits.kde.org/kile/97d3b04fd2f0de89a33378cf8f6208c3e251acb8