| Summary: | crash when closing a document (FreeBSD, Solaris) | ||
|---|---|---|---|
| Product: | [Applications] kdevelop | Reporter: | Daniel Franke <franke.daniel> |
| Component: | general | Assignee: | KDevelop Developers <kdevelop-devel> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | dako, davojan, dw, eugenydzh, igorpopov, lofi, voliyny |
| Priority: | NOR | ||
| Version First Reported In: | 3.0.0a4 | ||
| Target Milestone: | --- | ||
| Platform: | Compiled Sources | ||
| OS: | Solaris | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Daniel Franke
2003-04-30 16:13:40 UTC
Adding the following info: try to close any file any time ... Open a project, open a file and close it again without editing anything -> crash is it the same backtrace as http://bugs.kde.org/show_bug.cgi?id=57594 and http://bugs.kde.org/show_bug.cgi?id=57841 ? I can not reproduce it here. Can you do a cvs update, and see if the problem presists? If it does please specify you QT version. I updated to current CVS 030704, full debug build, run in gdb:
Action: add some characters to file, right-click file-tab -> close
[last messages in gdb]:
kdevelop (cpp support): updating sourceinfo
kdevelop (class view): MethodListAction::refresh
kdevelop (class view): MethodListAction::refresh
kdevelop (class view): MethodListAction::refresh
kdevelop (class view): MethodListAction::refresh
kdevelop (cpp support): ProblemReporter::reparse()
kdevelop (cpp support): ---> file added
kdevelop (cpp support): CppSupportPart::customEvent()
kdevelop (cpp support): ----------> file
/home/franke/devel/sibsim/src/quantitative-phenotype/quantitative-phenotype.cpp
parsed
kdevelop (cpp support): CppCodeCompletion::computeRecoveryPoints
kdevelop (cpp support): found 1 recovery points
kparts: ReadWritePart::setModified( true)
kdevelop (core): MainWindowIDEAl::slotNewStatus()
kdevelop (cpp support): ProblemReporter::reparse()
kdevelop (cpp support): ---> file added
kdevelop (cpp support): CppSupportPart::customEvent()
kdevelop (cpp support): ----------> file
/home/franke/devel/sibsim/src/quantitative-phenotype/quantitative-phenotype.cpp
parsed
kdevelop (cpp support): CppCodeCompletion::computeRecoveryPoints
kdevelop (cpp support): found 1 recovery points
kparts: ReadWritePart::setModified( false)
kdevelop (core): MainWindowIDEAl::slotNewStatus()
gideon: BookmarksPart::marksChanged()
gideon: found a MarkInterface
gideon: No bookmarks in - Deleting
Program received signal SIGSEGV, Segmentation fault.
0x807f0 in _ZN8QPtrListI12HistoryEntryE10deleteItemEPv (
this=<incomplete type>, d=0xcc9120) at /usr/local/qt3/include/qshared.h:50
50 bool deref() { return !--count; }
[backtrace]
(gdb) bt
#0 0x807f0 in _ZN8QPtrListI12HistoryEntryE10deleteItemEPv (
this=<incomplete type>, d=0xcc9120) at /usr/local/qt3/include/qshared.h:50
#1 0x7e890a78 in _ZN6QGList6removeEPv () from /usr/local/qt3/lib/libqt-mt.so.3
#2 0x7d0e6628 in _ZN11HistoryPart11partRemovedEPN6KParts4PartE (
this=<incomplete type>, part=0x116c070)
at /usr/local/qt3/include/qptrlist.h:143
#3 0x7d0e6918 in _ZN11HistoryPart9qt_invokeEiP8QUObject (
this=<incomplete type>, _id=18268272, _o=0xffbee938)
at /usr/local/qt3/include/private/qucom_p.h:312
#4 0x7e6637f4 in
_ZN7QObject15activate_signalEP15QConnectionListP8QUObject ()
from /usr/local/qt3/lib/libqt-mt.so.3
#5 0x7f5c79ec in _ZN6KParts11PartManager11partRemovedEPNS_4PartE ()
from /usr/local/kde3/lib/libkparts.so.2
#6 0x7f5c647c in _ZN6KParts11PartManager10removePartEPNS_4PartE ()
from /usr/local/kde3/lib/libkparts.so.2
#7 0x4be9c in _ZN14PartController9closePartEPN6KParts4PartE (
this=<incomplete type>, part=0x116c070) at partcontroller.cpp:536
#8 0x4e51c in _ZN14PartController9qt_invokeEiP8QUObject (
this=<incomplete type>, _id=18268272, _o=0xffbeebe0)
at partcontroller.moc:168
#9 0x7e6638a8 in
_ZN7QObject15activate_signalEP15QConnectionListP8QUObject ()
from /usr/local/qt3/lib/libqt-mt.so.3
#10 0x7e663708 in _ZN7QObject15activate_signalEi ()
---Type <return> to continue, or q <return> to quit---
from /usr/local/qt3/lib/libqt-mt.so.3
#11 0x7f015c28 in _ZN7KAction9qt_invokeEiP8QUObject ()
from /usr/local/kde3/lib/libkdeui.so.4
#12 0x7e6638a8 in
_ZN7QObject15activate_signalEP15QConnectionListP8QUObject ()
from /usr/local/qt3/lib/libqt-mt.so.3
#13 0x7e663708 in _ZN7QObject15activate_signalEi ()
from /usr/local/qt3/lib/libqt-mt.so.3
#14 0x7ede73a8 in _ZN13KAccelPrivate11eventFilterEP7QObjectP6QEvent ()
from /usr/local/kde3/lib/libkdecore.so.4
#15 0x7e66158c in _ZN7QObject16activate_filtersEP6QEvent ()
from /usr/local/qt3/lib/libqt-mt.so.3
#16 0x7e6614cc in _ZN7QObject5eventEP6QEvent ()
from /usr/local/qt3/lib/libqt-mt.so.3
#17 0x7e692eb4 in _ZN7QWidget5eventEP6QEvent ()
from /usr/local/qt3/lib/libqt-mt.so.3
#18 0x7e72caac in _ZN11QMainWindow5eventEP6QEvent ()
from /usr/local/qt3/lib/libqt-mt.so.3
#19 0x7e612290 in _ZN12QApplication14internalNotifyEP7QObjectP6QEvent ()
from /usr/local/qt3/lib/libqt-mt.so.3
#20 0x7e611c84 in _ZN12QApplication6notifyEP7QObjectP6QEvent ()
from /usr/local/qt3/lib/libqt-mt.so.3
#21 0x7ed6d098 in _ZN12KApplication6notifyEP7QObjectP6QEvent ()
from /usr/local/kde3/lib/libkdecore.so.4
#22 0x7ede4568 in _ZN18KAccelEventHandler8x11EventEP7_XEvent ()
from /usr/local/kde3/lib/libkdecore.so.4
#23 0x7ed723c4 in _ZN12KApplication14x11EventFilterEP7_XEvent ()
from /usr/local/kde3/lib/libkdecore.so.4
#24 0x7e5ae854 in _Z17qt_x11EventFilterP7_XEvent ()
from /usr/local/qt3/lib/libqt-mt.so.3
#25 0x7e5b8888 in _ZN12QApplication15x11ProcessEventEP7_XEvent ()
from /usr/local/qt3/lib/libqt-mt.so.3
#26 0x7e5cd168 in _ZN10QEventLoop13processEventsEj ()
from /usr/local/qt3/lib/libqt-mt.so.3
#27 0x7e624bc8 in _ZN10QEventLoop9enterLoopEv ()
from /usr/local/qt3/lib/libqt-mt.so.3
#28 0x7e624a98 in _ZN10QEventLoop4execEv ()
from /usr/local/qt3/lib/libqt-mt.so.3
#29 0x7e6124c0 in _ZN12QApplication4execEv ()
from /usr/local/qt3/lib/libqt-mt.so.3
#30 0x41bac in main (argc=1, argv=0xb48e8) at main.cpp:125
(QT-version: 3.1.2)
Can you: - Uninstall gideon. - Delete all kdev* and gideon* files and directories in your ~/.kde directory. - Update to the latest CVS. - Install it - retry You are the only one reporting this. So there are big chances this this will fix it!
Please imagine following setup:
* SUN Blade2000, Dual sparc processor, solaris 8,
gcc-3.2.2, kde 3.1.2 (compiler from sunfreeware.com, kde compiled from sources)
* standard desktop pc, single intel pentium IV, linux,
gcc-3.3, kde 3.1.1 (both SuSE 8.2 rpm packages)
* home directory mounted from a third source by NFS
* kdevelop CVS from 03/09/22, build once on linux, once on solaris
After removing all files as suggested, I tried to open and close a file on intel based platform.
Worked fine for me there. Then:
$>ssh -X my-solaris-box
$>gideon
opening the same file in my home directory and closing it afterwards -> crash. Of these
crashes I posted some backtraces earlier this month in the kdevelop mailing-list, Roberto Ragi
asked for them. Never heard of again.
Any suggestions?
Thnx!
P.S. I only recently switched from Win to linux here, so I can go on developing on linux, but
working on solaris using remote kdm login was really fun :)
The way I read comment #6 it says that the reported bug is fixed, but a crash with a different backtrace was found. If this is the case, this bug should be closed and a new opened. Closing bug, please reopen if I got it wrong. :) (Closing as INVALID as it seems to have been fixed by removing stale binaries.) Jens, comment #6 said: It worked fine on linux/intel - but didn't on solaris/sparc. I hadn't tried since then, time was too short. Maybe I can give it another try soon ... Daniel It seems we didn't fix this one after all: http://lists.kde.org/?l=kdevelop-devel&m=107106090030523&w=2 CVS 04/01/12:
Program received signal SIGSEGV, Segmentation fault.
0x6d390 in _ZN7QShared5derefEv (this=0x610072)
at /usr/local/qt3/include/qshared.h:50
50 bool deref() { return !--count; }
(gdb) bt
#0 0x6d390 in _ZN7QShared5derefEv (this=0x610072)
at /usr/local/qt3/include/qshared.h:50
#1 0x6bdfc in _ZN7QStringD1Ev (this=0x12bdff8)
at /usr/local/qt3/include/qstring.h:769
#2 0x8049c in _ZN12HistoryEntryD1Ev (this=<incomplete type>)
at /usr/local/qt3/include/qptrlist.h:119
#3 0x803e4 in _ZN8QPtrListI12HistoryEntryE10deleteItemEPv (
this=<incomplete type>, d=0x12bdfd0)
at /usr/local/qt3/include/qptrlist.h:119
#4 0x7e490a78 in _ZN6QGList6removeEPv () from /usr/local/qt3/lib/libqt-mt.so.3
#5 0x7ce97848 in _ZN8QPtrListI12HistoryEntryE6removeEPKS0_ (
this=<incomplete type>, d=0x12bdfd0)
at /usr/local/qt3/include/qptrlist.h:70
#6 0x7ce96cd4 in _ZN11HistoryPart11partRemovedEPN6KParts4PartE (
this=<incomplete type>, part=0x1178460) at historypart.cpp:245
#7 0x7ce96f4c in _ZN11HistoryPart9qt_invokeEiP8QUObject (
this=<incomplete type>, _id=2, _o=0xffbee850) at historypart.moc:110
#8 0x7e2637f4 in _ZN7QObject15activate_signalEP15QConnectionListP8QUObject ()
from /usr/local/qt3/lib/libqt-mt.so.3
#9 0x7f327e08 in _ZN6KParts11PartManager11partRemovedEPNS_4PartE ()
from /usr/local/kde3/lib/libkparts.so.2
#10 0x7f326898 in _ZN6KParts11PartManager10removePartEPNS_4PartE ()
from /usr/local/kde3/lib/libkparts.so.2
#11 0x49478 in _ZN14PartController9closePartEPN6KParts4PartE (
this=<incomplete type>, part=0x1178460) at partcontroller.cpp:625
#12 0x493b4 in _ZN14PartController15closeActivePartEv (this=<incomplete type>)
at partcontroller.cpp:595
#13 0x49d00 in _ZN14PartController15slotCloseWindowEv (this=<incomplete type>)
at partcontroller.cpp:718
#14 0x4c770 in _ZN14PartController9qt_invokeEiP8QUObject (
this=<incomplete type>, _id=14, _o=0xffbeebf0) at partcontroller.moc:201
#15 0x7e2638a8 in _ZN7QObject15activate_signalEP15QConnectionListP8QUObject ()
[...]
I had a closer look at historypart.cpp. In HistoryPart::HistoryPart,
autoDelete of HistoryPart::m_history is enabled:
--
m_history.setAutoDelete(true);
--
Diabling this, the crash described above disappears.
It seems as if 'part' is deleted twice in:
--
void HistoryPart::partRemoved(KParts::Part *part)
{
QPtrListIterator<HistoryEntry> it(m_history);
for ( ; it.current(); ++it)
if (it.current()->m_part == part)
m_history.remove(it.current()); // crash here, if autoDelete() == true
updateActions();
}
I can't get all the implications of disabling autoDelete, maybe anyone could explain this detail?
[btw, I' using qt-x11-free-3.1.2 (solaris)]
*** Bug 74385 has been marked as a duplicate of this bug. *** *** Bug 74936 has been marked as a duplicate of this bug. *** *** Bug 75066 has been marked as a duplicate of this bug. *** *** Bug 76164 has been marked as a duplicate of this bug. *** *** Bug 76641 has been marked as a duplicate of this bug. *** Better description *** Bug 77765 has been marked as a duplicate of this bug. *** Better description Fixed in HEAD. (The History plugin is history..) ;) *** Bug 80364 has been marked as a duplicate of this bug. *** Hmm, kdevelop 3.1.0 (using KDE 3.3.0) on FreeBSD 5.2.1 built from the cvsup'd /usr/ports has a remarkedly similar crash on the close of any file. No History plugin exists (as noted in Commet #20 above). |