{"thread":{"id":"5490","subject":"Some issues with current qgit on exit","startedAt":"2006-09-05T22:00:50Z","lastAt":"2006-09-08T11:32:22Z","messageCount":3,"participants":["Pavel Roskin","Marco Costalba"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"26376","messageId":"1157493650.2803.8.camel@dv","threadId":"5490","inReplyTo":null,"subject":"Some issues with current qgit on exit","fromName":"Pavel Roskin","fromEmail":"proski@gnu.org","sentAt":"2006-09-05T22:00:50Z","receivedAt":"2006-09-05T22:00:50Z","isPatch":false,"sender":{"key":"proski@gnu.org","avatar":null},"body":"Hi, Marco!\n\nThe current qgit reports assertion failure on exit:\nASSERT in tabWdg_currentChanged\n\nThat's how you can trigger it:\n\nselect one of the patches\ndouble click on the entry to open the \"patch\" tab\ndouble click on one of the modified files on the right\nswitch back to the \"rev list\" or \"patch\" tab\nclose qgit by Ctrl-Q\n\nI've tried to debug the problem.  MainImpl::currentTabType() returns -1.\nIt's possible that the logic in that function is flawed, or maybe it\ndoesn't work properly on exit.\n\nAnother problem is segmentation fault when closing qgit with more that\none file tab and the \"rev list\" tab selected:\n\nselect one of the patches\nselect \"view file\" in the pop-up menu on one of the files\nactivate the \"rev list\" tab\nselect \"view file in new tab\" on the same file\nactivate the \"rev list\" tab\nclose qgit by Ctrl-Q\n\nProgram received signal SIGSEGV, Segmentation fault.\n[Switching to Thread 46998824734480 (LWP 3112)]\n0x0000001400040038 in ?? ()\n(gdb) where\n#0  0x0000001400040038 in ?? ()\n#1  0x000000000046c336 in MainImpl::tabWdg_currentChanged (this=0x794490, w=0x12098d0)\n    at mainimpl.cpp:788\n#2  0x000000000048b33b in MainBase::qt_invoke (this=0x794490, _id=93, _o=0x7fffe87794a0)\n    at mainbase.moc.cc:240\n#3  0x0000000000497f19 in MainImpl::qt_invoke (this=0x794490, _id=93, _o=0x7fffe87794a0)\n    at mainimpl.moc.cc:350\n#4  0x00002abec28a8929 in QObject::activate_signal () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#5  0x00002abec2bf77e4 in QTabWidget::currentChanged ()\n   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#6  0x00002abec2bf7741 in QTabWidget::qt_invoke () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#7  0x00002abec28a8929 in QObject::activate_signal () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#8  0x00002abec28a9578 in QObject::activate_signal () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#9  0x00002abec29cd85d in QTabBar::setTabEnabled () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#10 0x00002abec29d0bde in QTabWidget::removePage () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#11 0x00002abec29cffcc in QTabWidget::eventFilter () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#12 0x00002abec28a7fc2 in QObject::activate_filters () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#13 0x00002abec28a8037 in QObject::event () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#14 0x00002abec28dfaf8 in QWidget::event () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#15 0x00002abec2847da5 in QApplication::internalNotify ()\n   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#16 0x00002abec2849274 in QApplication::notify () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#17 0x00002abec28a97b8 in QObject::removeChild () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#18 0x00002abec28aa898 in QObject::~QObject$base () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#19 0x00002abec28e2720 in QWidget::~QWidget$base () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#20 0x00000000004a8a91 in ~TabFile (this=0xac9e40) at filebase.uic.cc:513\n#21 0x0000000000440b14 in ~FileView (this=0xac9b80) at fileview.cpp:99\n#22 0x00002abec28a8089 in QObject::event () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#23 0x00002abec2847da5 in QApplication::internalNotify ()\n#24 0x00002abec2849274 in QApplication::notify () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#25 0x00002abec2848da9 in QApplication::sendPostedEvents ()\n   from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#26 0x00002abec285f5fa in QEventLoop::enterLoop () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#27 0x00002abec285f442 in QEventLoop::exec () from /usr/lib64/qt-3.3/lib/libqt-mt.so.3\n#28 0x000000000047d134 in main (argc=1, argv=0x7fffe8779df8) at qgit.cpp:17\n\n\nAll this is observed on the current development Fedora Core 6 with Qt \n3.3.6 and gcc 4.1.1, architecture is x86_64.\n\n-- \nRegards,\nPavel Roskin\n"},{"id":"26428","messageId":"e5bfff550609061028y25aeb928i2c49d4a5d1be7a60@mail.gmail.com","threadId":"5490","inReplyTo":"1157493650.2803.8.camel@dv","subject":"Re: Some issues with current qgit on exit","fromName":"Marco Costalba","fromEmail":"mcostalba@gmail.com","sentAt":"2006-09-06T17:28:10Z","receivedAt":"2006-09-06T17:28:10Z","isPatch":false,"sender":{"key":"mcostalba@gmail.com","avatar":null},"body":"On 9/6/06, Pavel Roskin <proski@gnu.org> wrote:\n> Hi, Marco!\n>\nHello Pavel,\n\n  nice to hear you again!\n\n> The current qgit reports assertion failure on exit:\n> ASSERT in tabWdg_currentChanged\n>\n> That's how you can trigger it:\n>\n> select one of the patches\n> double click on the entry to open the \"patch\" tab\n> double click on one of the modified files on the right\n> switch back to the \"rev list\" or \"patch\" tab\n> close qgit by Ctrl-Q\n>\n> I've tried to debug the problem.  MainImpl::currentTabType() returns -1.\n> It's possible that the logic in that function is flawed, or maybe it\n> doesn't work properly on exit.\n>\n> Another problem is segmentation fault when closing qgit with more that\n> one file tab and the \"rev list\" tab selected:\n>\n> select one of the patches\n> select \"view file\" in the pop-up menu on one of the files\n> activate the \"rev list\" tab\n> select \"view file in new tab\" on the same file\n> activate the \"rev list\" tab\n> close qgit by Ctrl-Q\n>\n\nThanks for the very good bug reports. I have just  pushed the fix: it\nwas a bogus delayed delete on exit the origin of this issues.\n\nI was planning (well, still I am) to release new version this week\nend, and your bug report is arrived just in time ;-)\n\nThanks\nMarco\n"},{"id":"26580","messageId":"1157715142.3018.1.camel@dv","threadId":"5490","inReplyTo":"e5bfff550609061028y25aeb928i2c49d4a5d1be7a60@mail.gmail.com","subject":"Re: Some issues with current qgit on exit","fromName":"Pavel Roskin","fromEmail":"proski@gnu.org","sentAt":"2006-09-08T11:32:22Z","receivedAt":"2006-09-08T11:32:22Z","isPatch":false,"sender":{"key":"proski@gnu.org","avatar":null},"body":"Hi, Marco!\n\nOn Wed, 2006-09-06 at 19:28 +0200, Marco Costalba wrote:\n\n> Thanks for the very good bug reports. I have just  pushed the fix: it\n> was a bogus delayed delete on exit the origin of this issues.\n\nYou never cease to amaze me by your quick (and hopefully correct) fixes.\n\n> I was planning (well, still I am) to release new version this week\n> end, and your bug report is arrived just in time ;-)\n\nI tried to push qgit a bit harder, and it's still easy to crash:\n\nRun qgit\nSelect a patch and an affected file in the file pane\nPress Ctrl-A to open a tab for that file\nPress Ctrl-Shift-A and hold it for some time to open more tabs\nClose qgit before all tabs load\n\nTwo things can happen.  Either glibc detects double free or it doesn't.\n\nOutput in the case when double free is not detected:\n\nThrown exception 'Closing file viewer'\nASSERT in remove: 22228848 is not the first in list\nException 'Closing file viewer' not handled in file viewer...re-throw\nASSERT in remove: 15 is not the first in list\nException 'Closing file viewer' not handled in file viewer...re-throw\nASSERT in remove: 14 is not the first in list\nException 'Closing file viewer' not handled in file viewer...re-throw\nASSERT in remove: 13449472 is not the first in list\nException 'Closing file viewer' not handled in file viewer...re-throw\nASSERT in remove: 18662832 is not the first in list\nException 'Closing file viewer' not handled in file viewer...re-throw\nASSERT in remove: 15427120 is not the first in list\nException 'Closing file viewer' not handled in file viewer...re-throw\nASSERT in remove: 10 is not the first in list\nException 'Closing file viewer' not handled in file viewer...re-throw\nASSERT in remove: 9 is not the first in list\nException 'Closing file viewer' not handled in file viewer...re-throw\nASSERT in remove: 8 is not the first in list\nException 'Closing file viewer' not handled in file viewer...re-throw\nterminate called after throwing an instance of 'int'\nAborted (core dumped)\n\n\nOutput in the case if double free is detected, filtered through c++filt\n(I have no idea how to make the glibc stack trace show qgit symbols)\n\nThrown exception 'Closing file viewer'\nCatched exception 'Closing file viewer' while in updating file viewer\n*** glibc detected *** ./qgit: double free or corruption (out): 0x00007fff47d997a0 ***\n======= Backtrace: =========\n/lib64/libc.so.6[0x2b8863438b00]\n/lib64/libc.so.6(cfree+0x8c)[0x2b886343c27c]\n./qgit[0x499138]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QWidget::~QWidget()+0x152)[0x372399a6a2]\n./qgit[0x4b3416]\n./qgit[0x497ea1]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QObject::event(QEvent*)+0x79)[0x3723960089]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QWidget::event(QEvent*)+0x28)[0x3723997af8]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QMainWindow::event(QEvent*)+0x25)[0x3723a554b5]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QApplication::internalNotify(QObject*, QEvent*)+0x85)[0x37238ffda5]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QApplication::notify(QObject*, QEvent*)+0xa4)[0x3723901274]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QApplication::sendPostedEvents(QObject*, int)+0x179)[0x3723900da9]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QEventLoop::processEvents(unsigned int)+0x3fa)[0x37238af11a]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QEventLoop::processEvents(unsigned int, int)+0x48)[0x37239174f8]\n./qgit[0x47751a]\n./qgit[0x444e21]\n./qgit[0x449f7f]\n./qgit[0x44a159]\n./qgit[0x43ae3a]\n./qgit[0x440715]\n./qgit[0x435291]\n./qgit[0x435448]\n./qgit[0x43f4a6]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QObject::event(QEvent*)+0x96)[0x37239600a6]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QApplication::internalNotify(QObject*, QEvent*)+0x85)[0x37238ffda5]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QApplication::notify(QObject*, QEvent*)+0xa4)[0x3723901274]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QApplication::sendPostedEvents(QObject*, int)+0x179)[0x3723900da9]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QEventLoop::processEvents(unsigned int)+0x3fa)[0x37238af11a]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QEventLoop::processEvents(unsigned int, int)+0x48)[0x37239174f8]\n./qgit[0x47751a]\n./qgit[0x444e21]\n./qgit[0x449f7f]\n./qgit[0x44a159]\n./qgit[0x43ae3a]\n./qgit[0x440715]\n./qgit[0x435291]\n./qgit[0x435448]\n./qgit[0x43f4a6]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QObject::event(QEvent*)+0x96)[0x37239600a6]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QApplication::internalNotify(QObject*, QEvent*)+0x85)[0x37238ffda5]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QApplication::notify(QObject*, QEvent*)+0xa4)[0x3723901274]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QApplication::sendPostedEvents(QObject*, int)+0x179)[0x3723900da9]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QEventLoop::processEvents(unsigned int)+0x3fa)[0x37238af11a]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QEventLoop::processEvents(unsigned int, int)+0x48)[0x37239174f8]\n./qgit[0x47751a]\n./qgit[0x444e21]\n./qgit[0x449f7f]\n./qgit[0x44a159]\n./qgit[0x43ae3a]\n./qgit[0x440715]\n./qgit[0x435291]\n./qgit[0x435448]\n./qgit[0x43f4a6]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QObject::event(QEvent*)+0x96)[0x37239600a6]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QApplication::internalNotify(QObject*, QEvent*)+0x85)[0x37238ffda5]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QApplication::notify(QObject*, QEvent*)+0xa4)[0x3723901274]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QApplication::sendPostedEvents(QObject*, int)+0x179)[0x3723900da9]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QEventLoop::processEvents(unsigned int)+0x3fa)[0x37238af11a]\n/usr/lib64/qt-3.3/lib/libqt-mt.so.3(QEventLoop::processEvents(unsigned int, int)+0x48)[0x37239174f8]\n./qgit[0x47751a]\n./qgit[0x444e21]\n./qgit[0x449f7f]\n./qgit[0x44a159]\n======= Memory map: ========\n00400000-00526000 r-xp 00000000 08:08 1523903                            /usr/local/src/qgit/src/qgit\n00726000-00729000 rw-p 00126000 08:08 1523903                            /usr/local/src/qgit/src/qgit\n00729000-03635000 rw-p 00729000 00:00 0                                  [heap]\n371ca00000-371ca17000 r-xp 00000000 08:01 4836913                        /usr/lib64/libart_lgpl_2.so.2.3.17\n371ca17000-371cc16000 ---p 00017000 08:01 4836913                        /usr/lib64/libart_lgpl_2.so.2.3.17\n371cc16000-371cc17000 rw-p 00016000 08:01 4836913                        /usr/lib64/libart_lgpl_2.so.2.3.17\n371ce00000-371ce30000 r-xp 00000000 08:01 4848834                        /usr/lib64/liblcms.so.1.0.15\n371ce30000-371d030000 ---p 00030000 08:01 4848834                        /usr/lib64/liblcms.so.1.0.15\n371d030000-371d032000 rw-p 00030000 08:01 4848834                        /usr/lib64/liblcms.so.1.0.15\n371d032000-371d034000 rw-p 371d032000 00:00 0 \n371d200000-371d213000 r-xp 00000000 08:01 4850552                        /usr/lib64/libXft.so.2.1.2\n371d213000-371d412000 ---p 00013000 08:01 4850552                        /usr/lib64/libXft.so.2.1.2\n371d412000-371d413000 rw-p 00012000 08:01 4850552                        /usr/lib64/libXft.so.2.1.2\n371e600000-371e614000 r-xp 00000000 08:01 4843230                        /usr/lib64/libz.so.1.2.3\n371e614000-371e813000 ---p 00014000 08:01 4843230                        /usr/lib64/libz.so.1.2.3\n371e813000-371e814000 rw-p 00013000 08:01 4843230                        /usr/lib64/libz.so.1.2.3\n371ea00000-371ea05000 r-xp 00000000 08:01 4844451                        /usr/lib64/libXdmcp.so.6.0.0\n371ea05000-371ec04000 ---p 00005000 08:01 4844451                        /usr/lib64/libXdmcp.so.6.0.0\n371ec04000-371ec05000 rw-p 00004000 08:01 4844451                        /usr/lib64/libXdmcp.so.6.0.0\n371ee00000-371ee02000 r-xp 00000000 08:01 4842899                        /usr/lib64/libXau.so.6.0.0\n371ee02000-371f001000 ---p 00002000 08:01 4842899                        /usr/lib64/libXau.so.6.0.0\n371f001000-371f002000 rw-p 00001000 08:01 4842899                        /usr/lib64/libXau.so.6.0.0\n371f200000-371f304000 r-xp 00000000 08:01 4845440                        /usr/lib64/libX11.so.6.2.0\n371f304000-371f504000 ---p 00104000 08:01 4845440                        /usr/lib64/libX11.so.6.2.0\n371f504000-371f50b000 rw-p 00104000 08:01 4845440                        /usr/lib64/libX11.so.6.2.0\n371f600000-371f610000 r-xp 00000000 08:01 4848836                        /usr/lib64/libXext.so.6.4.0\n371f610000-371f810000 ---p 00010000 08:01 4848836                        /usr/lib64/libXext.so.6.4.0\n371f810000-371f811000 rw-p 00010000 08:01 4848836                        /usr/lib64/libXext.so.6.4.0\n371fa00000-371fa20000 r-xp 00000000 08:01 3790170                        /lib64/libexpat.so.0.5.0\n371fa20000-371fc1f000 ---p 00020000 08:01 3790170                        /lib64/libexpat.so.0.5.0\n371fc1f000-371fc22000 rw-p 0001f000 08:01 3790170                        /lib64/libexpat.so.0.5.0\n3720200000-3720209000 r-xp 00000000 08:01 4848835                        /usr/lib64/libXrender.so.1.3.0\n3720209000-3720408000 ---p 00009000 08:01 4848835                        /usr/lib64/libXrender.so.1.3.0\n3720408000-3720409000 rw-p 00008000 08:01 4848835                        /usr/lib64/libXrender.so.1.3.0\n3720600000-372063c000 r-xp 00000000 08:01 4850470                        /usr/lib64/libfontconfig.so.1.0.4\n372063c000-372083c000 ---p 0003c000 08:01 4850470                        /usr/lib64/libfontconfig.so.1.0.4\n372083c000-3720841000 rw-p 0003c000 08:01 4850470                        /usr/lib64/libfontconfig.so.1.0.4\n3720841000-3720844000 rw-p 3720841000 00:00 0 \n3720a00000-3720a23000 r-xp 00000000 08:01 4841936                        /usr/lib64/libpng12.so.0.10.0\n3720a23000-3720c23000 ---p 00023000 08:01 4841936                        /usr/lib64/libpng12.so.0.10.0\n3720c23000-3720c24000 rw-p 00023000 08:01 4841936                        /usr/lib64/libpng12.so.0.10.0\n3720e00000-3720e02000 r-xp 00000000 08:01 4850036                        /usr/lib64/libXinerama.so.1.0.0\n3720e02000-3721001000 ---p 00002000 08:01 4850036                        /usr/lib64/libXinerama.so.1.0.0\n3721001000-3721002000 rw-p 00001000 08:01 4850036                        /usr/lib64/libXinerama.so.1.0.0\n3721200000-3721203000 r-xp 00000000 08:01 4848837                        /usr/lib64/libXrandr.so.2.0.0\n3721203000-3721402000 ---p 00003000 08:01 4848837                        /usr/lib64/libXrandr.so.2.0.0\n3721402000-3721403000 rw-p 00002000 08:01 4848837                        /usr/lib64/libXrandr.so.2.0.0\n3721600000-372160a000 r-xp 00000000 08:01 4849031                        /usr/lib64/libXcursor.so.1.0.2\n372160a000-3721809000 ---p 0000a000 08:01 4849031                        /usr/lib64/libXcursor.so.1.0.2\n3721809000-372180a000 rw-p 00009000 08:01 4849031                        /usr/lib64/libXcursor.so.1.0.2\n3721a00000-3721a05000 r-xp 00000000 08:01 4848838                        /usr/lib64/libXfixes.so.3.1.0\n3721a05000-3721c04000 ---p 00005000 08:01 4848838                        /usr/lib64/libXfixes.so.3.1.0\n3721c04000-3721c05000 rw-p 00004000 08:01 4848838                        /usr/lib64/libXfixes.so.3.1.0\n3721e00000-3721e31000 r-xp 00000000 08:01 4851247 Aborted (core dumped)\n\n\nAs always, it's Fedora development on x86_64.\n\n-- \nRegards,\nPavel Roskin\n"}]}