After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 329195 - Scrolling a big text file, gedit freezes.
Scrolling a big text file, gedit freezes.
Status: RESOLVED FIXED
Product: gtksourceview
Classification: Platform
Component: General
1.6.x
Other All
: High major
: ---
Assigned To: GTK Sourceview maintainers
GTK Sourceview maintainers
Depends on:
Blocks:
 
 
Reported: 2006-01-30 11:52 UTC by sangu
Modified: 2014-02-15 12:53 UTC
See Also:
GNOME target: ---
GNOME version: 2.15/2.16



Description sangu 2006-01-30 11:52:49 UTC
Please describe the problem:
Scrolling a big text file ( like this file attachment 54109 [details] ), gedit freezes.
(gdb) bt
  • #0 _int_free
    from /lib/libc.so.6
  • #1 free
    from /lib/libc.so.6
  • #2 re_search_internal
    from /lib/libc.so.6
  • #3 re_search_stub
    from /lib/libc.so.6
  • #4 re_search
    from /lib/libc.so.6
  • #5 gtk_source_regex_search
    from /usr/lib/libgtksourceview-1.0.so.0
  • #6 ??
    from /usr/lib/libgtksourceview-1.0.so.0
  • #7 gtk_source_buffer_can_undo
    from /usr/lib/libgtksourceview-1.0.so.0
  • #8 gtk_source_view_get_show_line_numbers
    from /usr/lib/libgtksourceview-1.0.so.0
  • #9 gedit_view_expose
    at gedit-view.c line 1815
  • #10 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #11 g_type_class_meta_marshal
    at gclosure.c line 567
  • #12 IA__g_closure_invoke
    at gclosure.c line 490
  • #13 signal_emit_unlocked_R
    at gsignal.c line 2476
  • #14 IA__g_signal_emit_valist
    at gsignal.c line 2207
  • #15 IA__g_signal_emit
    at gsignal.c line 2241
  • #16 gtk_widget_event_internal
    at gtkwidget.c line 3735
  • #17 IA__gtk_main_do_event
    at gtkmain.c line 1370
  • #18 gdk_window_process_updates_internal
    at gdkwindow.c line 2215
  • #19 IA__gdk_window_process_updates
    at gdkwindow.c line 2305
  • #20 gtk_text_view_value_changed
    at gtktextview.c line 6667
  • #21 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #22 IA__g_closure_invoke
    at gclosure.c line 490
  • #23 signal_emit_unlocked_R
  • #24 IA__g_signal_emit_valist
    at gsignal.c line 2197
  • #25 IA__g_signal_emit
    at gsignal.c line 2241
  • #26 IA__gtk_adjustment_value_changed
    at gtkadjustment.c line 393
  • #27 IA__gtk_adjustment_set_value
    at gtkadjustment.c line 376
  • #28 gtk_range_real_change_value
    at gtkrange.c line 2475
  • #29 _gtk_marshal_BOOLEAN__ENUM_DOUBLE
    at gtkmarshalers.c line 203
  • #30 g_type_class_meta_marshal
    at gclosure.c line 567
  • #31 IA__g_closure_invoke
    at gclosure.c line 490
  • #32 signal_emit_unlocked_R
  • #33 IA__g_signal_emit_valist
    at gsignal.c line 2207
  • #34 IA__g_signal_emit
    at gsignal.c line 2241
  • #35 update_slider_position
    at gtkrange.c line 1366
  • #36 gtk_range_motion_notify
    at gtkrange.c line 1515
  • #37 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #38 g_type_class_meta_marshal
    at gclosure.c line 567
  • #39 IA__g_closure_invoke
    at gclosure.c line 490
  • #40 signal_emit_unlocked_R
    at gsignal.c line 2476
  • #41 IA__g_signal_emit_valist
    at gsignal.c line 2207
  • #42 IA__g_signal_emit
    at gsignal.c line 2241
  • #43 gtk_widget_event_internal
    at gtkwidget.c line 3735
  • #44 IA__gtk_propagate_event
    at gtkmain.c line 2175
  • #45 IA__gtk_main_do_event
    at gtkmain.c line 1412
  • #46 gdk_event_dispatch
    at gdkevents-x11.c line 2291
  • #47 IA__g_main_context_dispatch
    at gmain.c line 1916
  • #48 g_main_context_iterate
    at gmain.c line 2547
  • #49 IA__g_main_loop_run
    at gmain.c line 2751
  • #50 IA__gtk_main
    at gtkmain.c line 991
  • #51 main
    at gedit.c line 519

Steps to reproduce:
1. Load a big text file ( attachment 54109 [details] ) 
2. Scroll on gedit.
3. 


Actual results:


Expected results:


Does this happen every time?
always

Other information:
gedit-2.13.4-1
glib2-2.9.5-1
gtk2-2.8.11-1
pango-1.11.2-1
libgnome-2.13.7-3
libgnomeui-2.13.3-1
libbonobo-2.13.1-8
libbonoboui-2.13.1-4
Comment 1 Paolo Borelli 2006-01-30 12:53:16 UTC
I can reproduce the freeze also with gtksourceview's test-widget. moving to GtkSourceView
Comment 2 Daniel Holbach 2006-07-17 10:46:03 UTC
https://launchpad.net/distros/ubuntu/+source/gtksourceview/+bug/52975 mentions http://patrickguignot.free.fr/sf/nouvelles_sf.html as another 'test case'. Bumping Version.
Comment 3 Paolo Maggi 2006-07-26 13:28:20 UTC
If I load the files, gedit uses 100% of CPU for a few minutes, then it start working quite well.
So, AFAIK, the problem is that the syntax hl is too slow with very big XML files.
May be this bug is somewhat related to bug #330406.
Comment 4 Paolo Maggi 2006-07-26 13:36:27 UTC
Muntyan: we have seen that on the sample XML attached to this bug the new syntax hl engine does not block but it is very very slow when highlighting text. You can litteraly see it highlighting the text line after line.
Comment 5 Yevgen Muntyan 2006-07-26 18:07:05 UTC
(In reply to comment #4)
> Muntyan: we have seen that on the sample XML attached to this bug the new
> syntax hl engine does not block but it is very very slow when highlighting
> text. You can litteraly see it highlighting the text line after line.
> 

Should be much better now. I guess it was the problem with the tree, that engine walked all the nodes.
Comment 6 Yevgen Muntyan 2008-06-20 01:35:45 UTC
Closing as fixed. Both the engine and the lang file have been much improved.