Bug 190073 - Kdevelop crashing when editing project Pascal
Summary: Kdevelop crashing when editing project Pascal
Status: RESOLVED INTENTIONAL
Alias: None
Product: kdevelop
Classification: Applications
Component: Language Support: Pascal (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-19 15:12 UTC by Nikkes
Modified: 2009-04-22 09:42 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nikkes 2009-04-19 15:12:56 UTC
Version:           3.5.4-1.7 (using KDE 3.5.10)
OS:                Linux
Installed from:    SuSE RPMs

to Reproduce this problem:
1. start kdevelop
2. Create pascal project (for ex. Project -> Create Project -> Pascal -> FreePascal -> Simlpe Application)
3. Editing (Type any text included some pascal operators, then delete text and input more any abracadabra. Over some times KDevelop will be crashed.)

very grateful for any help. This application is very important to prepare students.

QT: 3.3.8b; kernel: i686 2.6.27.21-0.1-pae

Console log:
user@linux:~> kdevelop
QLayout "unnamed" added to IndexView "unnamed", which already has a layout
QObject::connect: No such signal KListBox::clicked(QListBoxItem*item)
QObject::connect:  (sender name:   'srcDistFileListBox')
QObject::connect:  (receiver name: 'dist_widget')
ASSERT: "part && parent" in /usr/src/packages/BUILD/kdevelop-3.5.3/parts/fileview/partwidget.cpp (41)
kdevelop: xcb_lock.c:33: _XCBUnlockDisplay: Assertion `xcb_get_request_sent(dpy->xcb->connection) == dpy->request' failed.
KCrash: Application 'kdevelop' crashing...
----
kdevelop.kcrash:
[Thread debugging using libthread_db enabled]
[New Thread 0xb499bb90 (LWP 5773)]
(no debugging symbols found)
[KCrash handler]
#6  0xffffe430 in __kernel_vsyscall ()
#7  0xb6b2f990 in raise () from /lib/libc.so.6
#8  0xb6b312c8 in abort () from /lib/libc.so.6
#9  0xb6b2878e in __assert_fail () from /lib/libc.so.6
#10 0xb641082e in ?? () from /usr/lib/libX11.so.6
#11 0xb64027cc in XSetForeground () from /usr/lib/libX11.so.6
#12 0xb6f50b00 in ?? () from /usr/lib/qt3/lib/libqt-mt.so.3
#13 0xb6f5163e in QPainter::updatePen() () from /usr/lib/qt3/lib/libqt-mt.so.3
#14 0xb70014e6 in QPainter::setPen(QColor const&) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#15 0xb5c1da76 in PlastikStyle::renderDot(QPainter*, QPoint const&, QColor const&, bool, bool) const () from /opt/kde3/lib/kde3/plugins/styles/plastik.so
#16 0xb5c23978 in PlastikStyle::drawPrimitive(QStyle::PrimitiveElement, QPainter*, QRect const&, QColorGroup const&, unsigned int, QStyleOption const&) const
    () from /opt/kde3/lib/kde3/plugins/styles/plastik.so
#17 0xb6373f60 in KStyle::drawComplexControl(QStyle::ComplexControl, QPainter*, QWidget const*, QRect const&, QColorGroup const&, unsigned int, unsigned int, unsigned int, QStyleOption const&) const () from /opt/kde3/lib/libkdefx.so.4
#18 0xb5c26b0d in PlastikStyle::drawComplexControl(QStyle::ComplexControl, QPainter*, QWidget const*, QRect const&, QColorGroup const&, unsigned int, unsigned int, unsigned int, QStyleOption const&) const ()
   from /opt/kde3/lib/kde3/plugins/styles/plastik.so
#19 0xb71101b7 in QScrollBar::drawControls(unsigned int, unsigned int, QPainter*) const () from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0xb71102ab in QScrollBar::paintEvent(QPaintEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#21 0xb4b0d4e9 in KateScrollBar::paintEvent(QPaintEvent*) ()
   from /opt/kde3/lib/kde3/libkatepart.so
#22 0xb7031813 in QWidget::event(QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#23 0xb6f9172d in QApplication::internalNotify(QObject*, QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#24 0xb6f926dd in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#25 0xb7729952 in KApplication::notify(QObject*, QEvent*) ()
   from /opt/kde3/lib/libkdecore.so.4
#26 0xb6f60571 in QWidget::repaint(QRegion const&, bool) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#27 0xb6f938e5 in QApplication::sendPostedEvents(QObject*, int) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#28 0xb6f939a6 in QApplication::sendPostedEvents() ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#29 0xb6f3bd55 in QEventLoop::processEvents(unsigned int) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#30 0xb6faa090 in QEventLoop::enterLoop() ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#31 0xb6fa9f26 in QEventLoop::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3
#32 0xb6f91dbf in QApplication::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3
#33 0x0804e5cc in ?? ()
#34 0xb6b1b705 in __libc_start_main () from /lib/libc.so.6
#35 0x0804da91 in ?? ()
Comment 1 Dario Andres 2009-04-19 15:43:30 UTC
Looks like it is crashing in the Plastik widget style drawing code. Could you try with another widget style ?

Also I wonder if:
"
#9  0xb6b2878e in __assert_fail () from /lib/libc.so.6
#10 0xb641082e in ?? () from /usr/lib/libX11.so.6
"
is the "xcb_xlib_lock" assert which could be bypassed using this workaround:
"export LIBXCB_ALLOW_SLOPPY_LOCK=1" before loading the application from Konsole/shell.

Thanks
Comment 2 Nikkes 2009-04-19 16:05:20 UTC
Thanks for such a quick reply!
unfortunately export LIBXCB_ALLOW_SLOPPY_LOCK=1 did not help...
about widgets...  where i can change widget???
 i found this bug and on just installed OS Linux.
Comment 3 Dario Andres 2009-04-19 16:07:54 UTC
You can change the widget style using the KControl application (the KDE Control Center). You need to select the Appearance option and then the Style option. You can select another widget style now (I don't remember the available widget styles on KDE3, but it should be a big list)
Thanks
Comment 4 Nikkes 2009-04-19 16:21:15 UTC
i changed widget to KDE classic. its don't helped.
attempt recompile kdevelop also not helped :(
Comment 5 Dario Andres 2009-04-19 16:33:15 UTC
Could you please attach a new backtrace when using the KDE Classic style ?
Have you tried with any other style ?
Thanks
Comment 6 Nikkes 2009-04-19 16:52:14 UTC
of course!  ist in KDE classic style:
[Thread debugging using libthread_db enabled]
[New Thread 0xb45e8b90 (LWP 4674)]
(no debugging symbols found)
0xffffe430 in __kernel_vsyscall ()
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb6464c35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb6b14b3d in pthread_cond_wait () from /lib/libc.so.6
#3  0xb5de70c7 in ?? () from /usr/lib/libxcb.so.1
#4  0xb5de806c in xcb_send_request () from /usr/lib/libxcb.so.1
#5  0xb63423e6 in _XPutXCBBuffer () from /usr/lib/libX11.so.6
#6  0xb63427b0 in ?? () from /usr/lib/libX11.so.6
#7  0xb63342cf in XSetClipMask () from /usr/lib/libX11.so.6
#8  0xb6e8232b in ?? () from /usr/lib/qt3/lib/libqt-mt.so.3
#9  0xb6e83851 in QPainter::updatePen() () from /usr/lib/qt3/lib/libqt-mt.so.3
#10 0xb6f3266f in QPainter::setPen(QPen const&) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#11 0xb6f33b62 in QPainter::fillRect(int, int, int, int, QBrush const&) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#12 0xb478ad9e in KateIconBorder::paintBorder(int, int, int, int) ()
   from /opt/kde3/lib/kde3/libkatepart.so
#13 0xb478b73b in KateIconBorder::paintEvent(QPaintEvent*) ()
   from /opt/kde3/lib/kde3/libkatepart.so
#14 0xb6f63813 in QWidget::event(QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#15 0xb6ec372d in QApplication::internalNotify(QObject*, QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#16 0xb6ec46dd in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#17 0xb765b952 in KApplication::notify(QObject*, QEvent*) ()
   from /opt/kde3/lib/libkdecore.so.4
#18 0xb6e92571 in QWidget::repaint(QRegion const&, bool) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#19 0xb6ec58e5 in QApplication::sendPostedEvents(QObject*, int) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0xb6ec59a6 in QApplication::sendPostedEvents() ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#21 0xb6e6dd55 in QEventLoop::processEvents(unsigned int) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#22 0xb6edc090 in QEventLoop::enterLoop() ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#23 0xb6edbf26 in QEventLoop::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3
#24 0xb6ec3dbf in QApplication::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3
#25 0x0804e5cc in ?? ()
#26 0xb6a4d705 in __libc_start_main () from /lib/libc.so.6
#27 0x0804da91 in ?? ()

It's in QtCurve style:
[Thread debugging using libthread_db enabled]
[New Thread 0xb47c6b90 (LWP 4626)]
(no debugging symbols found)
[KCrash handler]
#6  0xffffe430 in __kernel_vsyscall ()
#7  0xb6bdf990 in raise () from /lib/libc.so.6
#8  0xb6be12c8 in abort () from /lib/libc.so.6
#9  0xb6bd878e in __assert_fail () from /lib/libc.so.6
#10 0xb64c082e in ?? () from /usr/lib/libX11.so.6
#11 0xb64b25d7 in XSetClipRectangles () from /usr/lib/libX11.so.6
#12 0xb6ffc689 in ?? () from /usr/lib/qt3/lib/libqt-mt.so.3
#13 0xb7001121 in QPainter::updateBrush() ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#14 0xb70b1a9f in QPainter::setBrush(QBrush const&) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#15 0xb70b1b53 in QPainter::fillRect(int, int, int, int, QBrush const&) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#16 0xb4968d9e in KateIconBorder::paintBorder(int, int, int, int) ()
   from /opt/kde3/lib/kde3/libkatepart.so
#17 0xb496973b in KateIconBorder::paintEvent(QPaintEvent*) ()
   from /opt/kde3/lib/kde3/libkatepart.so
#18 0xb70e1813 in QWidget::event(QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#19 0xb704172d in QApplication::internalNotify(QObject*, QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0xb70426dd in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#21 0xb77d9952 in KApplication::notify(QObject*, QEvent*) ()
   from /opt/kde3/lib/libkdecore.so.4
#22 0xb7010571 in QWidget::repaint(QRegion const&, bool) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#23 0xb70438e5 in QApplication::sendPostedEvents(QObject*, int) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#24 0xb70439a6 in QApplication::sendPostedEvents() ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#25 0xb6febd55 in QEventLoop::processEvents(unsigned int) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#26 0xb705a090 in QEventLoop::enterLoop() ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#27 0xb7059f26 in QEventLoop::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3
#28 0xb7041dbf in QApplication::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3
#29 0x0804e5cc in ?? ()
#30 0xb6bcb705 in __libc_start_main () from /lib/libc.so.6
#31 0x0804da91 in ?? ()
Comment 7 Dario Andres 2009-04-19 16:56:50 UTC
Strange, the last two backtrace seems to be a bit different from the original one.
Are your X.org (the video server) packages updated? 
Thanks
Comment 8 Nikkes 2009-04-19 17:14:28 UTC
 No... in system installed follow packacges:
xorg-X11 7.4-8.13
xorg-X11-driver-video 7.4-19.5.1
xorg-X11-libxcb 7.4-1.24
xorg-X11-server 7.4-17.4.1
but on other computer i try update X.org from repository
opensuse/X11 to xorg-x11-server-7.4-42.4 and its not
solved the problem. I also tried to update the
QT libraries and Kernel and nothing have not results...
Comment 9 Andreas Pakulat 2009-04-19 20:45:57 UTC
this is either a distro bug or a bug in X11, please report to the apropriate place. (using invalid as I don't know wether its upstream/X11 or downstream/distro)
Comment 10 Lubos Lunak 2009-04-20 15:31:21 UTC
"Assertion `xcb_get_request_sent(dpy->xcb->connection) == dpy->request' failed.", from I can gather, usually means a threading problem. Since disabling the Pascal parser (kdeveloprc:General Options:EnablePascalBgParser:false] seems to avoid this problem, it's very likely that the parser does or triggers calls to X from concurrent threads.
Comment 11 Andreas Pakulat 2009-04-20 18:06:41 UTC
Heh, didn't realize that pascal does have a parser and that it is actually threaded. Well, then this is a wontfix as KDevelop3 is dead and even more so the pascal support.
Comment 12 Nikkes 2009-04-22 09:42:07 UTC
Excellent! Disabling pascal parser resolve this problem!  Many thanks!!!!

The point is that the pascal is still the language for the compulsory study in schools in RussianFederation. Resolve this problem was very important for Pedagogical University.
 Once again, thanks for the help!