trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: May 2012

Re: [trinity-devel] kwrite crash - it is tdelibs! (tqt3-46, tdelibs-47, tdebase-46 => crash)

From: /dev/ammo42 <mickeytintincolle@...>
Date: Fri, 4 May 2012 21:27:23 +0200
On Fri, 04 May 2012 10:20:28 -0500
"David C. Rankin" <drankinatty@...> wrote:

> Tim, Darrell, All,
> 
>   tdelibs is the package that causes the kwrite/kate/etc.. crash when
> built on gcc 47. The backtrace is good this time and points to:
> 
> at (i=<optimized out>, this=<optimized out>)
> at /opt/tqt3/include/ntqstring.h:641 641             { return i <
> d->len ? d->unicode[i] : TQChar::null; }
> 
> (full backtrace below)
> 
>   This last night/this morning I build gcc 4.6 and gcc 4.7 packages
> from 5/3 GIT sources. The test was as follows (removing ksycoca
> between each):
> 
> (1) I installed the gcc 4.6 packages -- no crash occurred.
> (2) installed tqt3 built on gcc 4.7 -- no crash occurred.
> (3) uninstalled tqt3, reinstalled tqt3 built on gcc 4.6
> (4) installed tdelibs built on gcc 4.7 -- kwrite CRASH
> 
> ** Note: tdelibs built on gcc 4.7 is 9.64 MIB larger than when built
> on gcc 4.6
> 
>   A summary of the test is in the following chart:
> 
>             tqt3-46 tdelibs-46 tdebase-46 tqt3-47 tdelibs-47
> tdebase-47
> 
> tqt3-46        --      OK         OK         ++     CRASH     no test
> 
> tdelibs-46     OK      --         OK         OK       ++      no test
> 
> tdebase-46     OK      OK         --         OK     CRASH        ++
> 
>   FULL BACKTRACE:
> 
> at (i=<optimized out>, this=<optimized out>)
> at /opt/tqt3/include/ntqstring.h:641 641             { return i <
> d->len ? d->unicode[i] : TQChar::null; } (gdb) bt
> #0  at (i=<optimized out>, this=<optimized out>) at
> /opt/tqt3/include/ntqstring.h:641
> #1  operator[] (this=<optimized out>, i=<optimized out>) at
> /opt/tqt3/include/ntqstring.h:642
> #2  width (tabWidth=<optimized out>, italic=<optimized out>,
> bold=<optimized out>, col=<optimized out>, text=..., this=<optimized
> out>) at /build/src/tdelibs/kate/part/katefont.h:67
> #3  width (tabWidth=<optimized out>, col=<optimized out>, text=...,
> fs=..., this=<optimized out>)
>     at /build/src/tdelibs/kate/part/kateattribute.h:55
> #4  KateRenderer::textWidth (this=0x22fc280, textLine=...,
> startcol=0, maxwidth=817, needWrap=0x7fff8df70e98,
> endX=0x7fff8df70e8c)
> at /build/src/tdelibs/kate/part/katerenderer.cpp:797 #5
> 0x00007fe5ae37f674 in KateViewInternal::range
> (this=this@entry=0x23fa0c0, realLine=realLine@entry=0,
> previous=previous@entry=0x0)
> at /build/src/tdelibs/kate/part/kateviewinternal.cpp:1331 #6
> 0x00007fe5ae380b32 in KateViewInternal::range
> (this=this@entry=0x23fa0c0, realLine=0, viewLine=viewLine@entry=1)
> at /build/src/tdelibs/kate/part/kateviewinternal.cpp:1418 #7
> 0x00007fe5ae3824c9 in KateViewInternal::viewLineOffset
> (this=this@entry=0x23fa0c0, virtualCursor=..., offset=0,
> keepX=keepX@entry=false)
> at /build/src/tdelibs/kate/part/kateviewinternal.cpp:1578 #8
> 0x00007fe5ae385d25 in KateViewInternal::makeVisible
> (this=this@entry=0x23fa0c0, c=..., endCol=117,
> force=force@entry=false, center=center@entry=false,
> calledExternally=calledExternally@entry=false)
> at /build/src/tdelibs/kate/part/kateviewinternal.cpp:781 #9
> 0x00007fe5ae386352 in KateViewInternal::updateCursor
> (this=this@entry=0x23fa0c0, newCursor=..., force=force@entry=true,
> center=center@entry=false,
> calledExternally=calledExternally@entry=false)
> at /build/src/tdelibs/kate/part/kateviewinternal.cpp:2204 #10
> 0x00007fe5ae38a4c0 in KateViewInternal::editEnd (this=0x23fa0c0,
> editTagLineStart=0, editTagLineEnd=<optimized out>,
> tagFrom=<optimized out>)
> at /build/src/tdelibs/kate/part/kateviewinternal.cpp:3385 #11
> 0x00007fe5ae326ef0 in KateDocument::editEnd (this=0x232f2c0)
> at /build/src/tdelibs/kate/part/katedocument.cpp:1032 #12
> 0x00007fe5ae320f5b in KateDocument::paste (this=0x232f2c0,
> view=0x24352e0) at /build/src/tdelibs/kate/part/katedocument.cpp:3249
> #13 0x00007fe5ae358a53 in KateView::paste (this=0x24352e0)
> at /build/src/tdelibs/kate/part/kateview.cpp:1597 #14
> 0x00007fe5ae388102 in KateViewInternal::mouseReleaseEvent
> (this=0x23fa0c0, e=0x7fff8df71920)
> at /build/src/tdelibs/kate/part/kateviewinternal.cpp:2965 #15
> 0x00007fe5b424b0b3 in TQWidget::event (this=0x23fa0c0,
> e=0x7fff8df71920) at kernel/qwidget.cpp:4725 #16 0x00007fe5b41b5f9d
> in TQApplication::internalNotify (this=0x7fff8df71ff0,
> receiver=0x23fa0c0, e=0x7fff8df71920) at kernel/qapplication.cpp:2638
> #17 0x00007fe5b41b5627 in TQApplication::notify (this=0x7fff8df71ff0,
> receiver=0x23fa0c0, e=0x7fff8df71920) at kernel/qapplication.cpp:2424
> #18 0x00007fe5b5177894 in KApplication::notify (this=0x7fff8df71ff0,
> receiver=0x23fa0c0,
>     event=0x7fff8df71920)
> at /build/src/tdelibs/tdecore/kapplication.cpp:583 #19
> 0x00007fe5b4148e59 in TQApplication::sendSpontaneousEvent
> (receiver=0x23fa0c0, event=0x7fff8df71920) at
> kernel/ntqapplication.h:526 #20 0x00007fe5b4142735 in
> TQETWidget::translateMouseEvent (this=0x23fa0c0,
> event=0x7fff8df71ce0) at kernel/qapplication_x11.cpp:4380 #21
> 0x00007fe5b414005d in TQApplication::x11ProcessEvent
> (this=0x7fff8df71ff0, event=0x7fff8df71ce0) at
> kernel/qapplication_x11.cpp:3557 #22 0x00007fe5b415b2c8 in
> TQEventLoop::processEvents (this=0x2272f90, flags=4) at
> kernel/qeventloop_x11.cpp:195 #23 0x00007fe5b41c9118 in
> TQEventLoop::enterLoop (this=0x2272f90) at kernel/qeventloop.cpp:201
> #24 0x00007fe5b41c8fe9 in TQEventLoop::exec (this=0x2272f90) at
> kernel/qeventloop.cpp:148 #25 0x00007fe5b41b60cd in
> TQApplication::exec (this=0x7fff8df71ff0) at
> kernel/qapplication.cpp:2761 #26 0x00007fe5b84f1448 in kdemain
> (argc=1, argv=0x7fff8df72688)
> at /build/src/tdebase/kate/app/kwritemain.cpp:692 #27
> 0x00000000004007a4 in main (argc=1, argv=0x7fff8df72688)
> at /build/src/build/kate/app/kwrite_tdeinit_executable.cpp:2 (gdb)
> 
>   I think this should help isolate where the crash is coming from. I
> will need to punt to the experts. This backtrace seems to point to
> the crash in kate/part, but I don't understand why it is blowing up
> in tqt3. That's where you experts will have to figure it out.
If it's an infinite loop your backtraces will be at random places in
the loop. I think it would be a good idea to do 2 consecutive
backtraces and check if they are the same; and if they are, do a 3rd
backtrace with the same binary ;)
> 
>   Let me know if you want additional tests. I have my box set up for
> it now, so all you have to do it tell me what to run. Let's get this
> bug squashed and R14 will be the best and most up-to-date release
> ever!
>