Bug 299569 - kile process remains in memory after closing
Summary: kile process remains in memory after closing
Status: RESOLVED FIXED
Alias: None
Product: kile
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: ---
Assignee: Michel Ludwig
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-05-07 17:02 UTC by nucleo
Modified: 2012-05-09 19:29 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Force termination of Kile (1.05 KB, patch)
2012-05-07 20:27 UTC, Michel Ludwig
Details

Note You need to log in before you can comment on or make changes to this bug.
Description nucleo 2012-05-07 17:02:31 UTC
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.
Comment 1 nucleo 2012-05-07 17:33:41 UTC
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
Comment 2 Michel Ludwig 2012-05-07 20:27:58 UTC
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.
Comment 3 nucleo 2012-05-07 21:45:27 UTC
(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.
Comment 4 Michel Ludwig 2012-05-09 19:28:59 UTC
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
Comment 5 Michel Ludwig 2012-05-09 19:29:01 UTC
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