[Lazarus] GUI freeze under GTK2
denisgolovan
denisgolovan at yandex.ru
Tue Feb 21 19:46:03 CET 2017
Nope.
No change with this unit.
Still freezes, stack track is the same.
BR,
Denis
21.02.2017, 17:49, "Cyrax via Lazarus" <lazarus at lists.lazarus-ide.org>:
> On 20.02.2017 22:37, denisgolovan via Lazarus wrote:
>> Hi all
>>
>> Recently, I've started experiencing rather nasty bug - my GUI application started freezing when scrolling VirtualTreeView component vertically using scrollbar.
>> VTV itself is rather old version (last commit from May 17 2015). FPC and Lazarus are from trunk, svn rev.35396 and rev.54204.
>> I am under Gentoo x64, gtk2 widgetset, gtk+ library v2.24.31-r1.
>>
>> When paused after freezing, callstack always shows the following stack trace. So I assume there is some infinite loop running.
>>
>> #0 poll at :0
>> #1 ?? at :0
>> #2 ?? at :0
>> #3 xcb_wait_for_reply at :0
>> #4 _XReply at :0
>> #5 XGetGeometry at :0
>> #6 gdk_window_get_frame_extents at :0
>> #7 gdk_window_get_root_origin at :0
>> #8 GETWIDGETRELATIVEPOSITION(0x7fffed8cc490, 0, 0) at gtk2/gtk2proc.inc:7001
>> #9 SENDSIZENOTIFICATIONTOLCL(0x7fffed8cc490) at gtk2/gtk2proc.inc:6530
>> #10 GTKSIZE_ALLOCATECB(0x7fffed8cc490, 0x7fffffffcd20, 0x7fffed90a040) at gtk2/gtk2callback.inc:2530
>> #11 g_closure_invoke(0x7fffed93ac50, 0x0, 0x0, 2, 0x7fffffffcab0, 0x7fffffffcab0, 0x7fffffffca50, 0x7fffffffca50) at /var/tmp/paludis/dev-libs-glib-2.48.2/work/glib-2.48.2/gobject/gclosure.c:804
>> #12 signal_emit_unlocked_R(0x7fffee036f40, 0x7fffee036f40, 0, 0, 0x7fffed8cc490, 0x7fffed8cc490, 0x0, 0x0, 0x7fffffffcab0, 0x7fffffffcab0) at /var/tmp/paludis/dev-libs-glib-2.48.2/work/glib-2.48.2/gobject/gsignal.c:3629
>> #13 g_signal_emit_valist(<optimized out>, <optimized out>, <optimized out>, 0x7fffffffcc40, 0x7fffffffcc40) at /var/tmp/paludis/dev-libs-glib-2.48.2/work/glib-2.48.2/gobject/gsignal.c:3385
>> #14 g_signal_emit(<optimized out>, <optimized out>, <optimized out>) at /var/tmp/paludis/dev-libs-glib-2.48.2/work/glib-2.48.2/gobject/gsignal.c:3441
>> #15 gtk_widget_size_allocate at :0
>> #16 ?? at :0
>> #17 _g_closure_invoke_va(0x7fffed8c96a0, 0x7fffed8c96a0, 0x0, 0x0, 0x7fffed8cc490, 0x7fffed8cc490, 0x7fffffffd060, 0x7fffffffd060, <optimized out>, 0x0) at /var/tmp/paludis/dev-libs-glib-2.48.2/work/glib-2.48.2/gobject/gclosure.c:867
>> #18 g_signal_emit_valist(0x7fffed8cc490, <optimized out>, 0, 0x7fffffffd060, 0x7fffffffd060) at /var/tmp/paludis/dev-libs-glib-2.48.2/work/glib-2.48.2/gobject/gsignal.c:3294
>> #19 g_signal_emit(<optimized out>, <optimized out>, <optimized out>) at /var/tmp/paludis/dev-libs-glib-2.48.2/work/glib-2.48.2/gobject/gsignal.c:3441
>> #20 ?? at :0
>> #21 ?? at :0
>> #22 g_main_dispatch(0x7fffee0442c0) at /var/tmp/paludis/dev-libs-glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3154
>> #23 g_main_context_dispatch(0x7fffee0442c0, 0x7fffee0442c0) at /var/tmp/paludis/dev-libs-glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3769
>> #24 g_main_context_iterate(0x7fffee0442c0, 0x7fffee0442c0, 0, 0, 1, 1, <optimized out>) at /var/tmp/paludis/dev-libs-glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3840
>> #25 g_main_context_iteration(0x7fffee0442c0, 0) at /var/tmp/paludis/dev-libs-glib-2.48.2/work/glib-2.48.2/glib/gmain.c:3901
>> #26 APPPROCESSMESSAGES(0x7fffee1b6040) at gtk2/gtk2widgetset.inc:2328
>> #27 HANDLEMESSAGE(0x7fffee079540) at include/application.inc:1274
>> #28 RUNLOOP(0x7fffee079540) at include/application.inc:1411
>> #29 APPRUN(0x7fffee1b6040, {Proc = {procedure (POINTER)} 0x7fffffffd430, Self = 0x7fffee079540}) at include/interfacebase.inc:54
>> #30 RUN(0x7fffee079540) at include/application.inc:1399
>>
>> Any hints on how to resolve?
>
> Can you try attached unit source file? You need to add in your main
> program sources before any LCL units and after cthreads/cmem units.
> ,--
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus-ide.org
> http://lists.lazarus-ide.org/listinfo/lazarus
--
Regards,
Denis Golovan
More information about the Lazarus
mailing list