Package: libvte4
Version: 1:0.12.2-4
Severity: normal
If your gnome-terminal's window is full of email addresses,
gnome-terminal starts to take 100% cpu as soon as your mouse is put over
the text.
To reproduce it, open a gnome-terminal, maximise it and enter the
following at the prompt :
$ python -c "print(['[EMAIL PROTECTED]' for i in range(500)])"
You end up with a window full of email addresses and when your cursor
pass over the window, gnome-terminal take 100% for a while.
If you run it inside gdb and interrupt it, you'll get the following back
trace :
(gdb) bt
#0 0xa76a757d in regfree () from /lib/tls/i686/cmov/libc.so.6
#1 0xa76b3287 in re_compile_fastmap () from /lib/tls/i686/cmov/libc.so.6
#2 0xa76ba54a in re_compile_pattern () from /lib/tls/i686/cmov/libc.so.6
#3 0xa76bd649 in regexec () from /lib/tls/i686/cmov/libc.so.6
#4 0xa7e964b8 in _vte_regex_exec (regex=0x81a8980,
string=0x82b212a "[EMAIL PROTECTED] ', '[EMAIL PROTECTED] ', '[EMAIL
PROTECTED] ', '[EMAIL PROTECTED] ', '[EMAIL PROTECTED] ', '[EMAIL PROTECTED] ',
'[EMAIL PROTECTED] ', '[EMAIL PROTECTED] ', '[EMAIL PROTECTED] ', '[EMAIL
PROTECTED] ', '[EMAIL PROTECTED] ', 'toto"..., nmatch=256, matches=0xafccff8c)
at /home/arthur/src/debian/vte-0.12.2/./src/vteregex.c:252
#5 0xa7e89ac4 in vte_terminal_match_check_internal (terminal=0x8125be0,
column=82, row=28, tag=0x0, start=0xafcd07e0, end=0xafcd07dc)
at /home/arthur/src/debian/vte-0.12.2/./src/vte.c:1256
#6 0xa7e89da1 in vte_terminal_match_hilite (terminal=0x8125be0, x=660, y=398)
at /home/arthur/src/debian/vte-0.12.2/./src/vte.c:4620
#7 0xa7e8a29c in vte_terminal_motion_notify (widget=0x8125be0,
event=0x810b850) at /home/arthur/src/debian/vte-0.12.2/./src/vte.c:5761
#8 0xa7ca6250 in _gtk_marshal_BOOLEAN__BOXED (closure=0x80fdcd8,
return_value=0xafcd09c0, n_param_values=2, param_values=0xafcd0a9c,
invocation_hint=0xafcd09ac, marshal_data=0xa7e8a1c0) at gtkmarshalers.c:83
#9 0xa780ff49 in g_type_class_meta_marshal (closure=0x80fdcd8,
return_value=0xafcd09c0, n_param_values=2, param_values=0xafcd0a9c,
invocation_hint=0xafcd09ac, marshal_data=0xbc) at gclosure.c:567
#10 0xa781198b in IA__g_closure_invoke (closure=0x80fdcd8,
return_value=0xafcd09c0, n_param_values=2, param_values=0xafcd0a9c,
invocation_hint=0xafcd09ac) at gclosure.c:490
#11 0xa782256f in signal_emit_unlocked_R (node=0x80fdbb0, detail=0,
instance=0x8125be0, emission_return=0xafcd0c5c,
instance_and_params=0xafcd0a9c) at gsignal.c:2478
#12 0xa7823208 in IA__g_signal_emit_valist (instance=0x8125be0, signal_id=52,
detail=0,
var_args=0xafcd0ce0 "[EMAIL PROTECTED]") at gsignal.c:2209
#13 0xa78235d9 in IA__g_signal_emit (instance=0x8125be0, signal_id=52,
detail=0) at gsignal.c:2243
#14 0xa7d8fe84 in gtk_widget_event_internal (widget=0x8125be0, event=0x810b850)
at gtkwidget.c:3751
#15 0xa7c9fbd3 in IA__gtk_propagate_event (widget=0x8125be0, event=0x810b850)
at gtkmain.c:2195
#16 0xa7ca0e07 in IA__gtk_main_do_event (event=0x810b850) at gtkmain.c:1424
#17 0xa7b39eea in gdk_event_dispatch (source=0x80ad648, callback=0,
user_data=0x0) at gdkevents-x11.c:2291
#18 0xa7769731 in IA__g_main_context_dispatch (context=0x80ad690) at
gmain.c:2045
#19 0xa776c7a6 in g_main_context_iterate (context=0x80ad690, block=1,
dispatch=1, self=0x80b25d0) at gmain.c:2677
#20 0xa776cb67 in IA__g_main_loop_run (loop=0x80aebf0) at gmain.c:2881
#21 0xa7ca1281 in IA__gtk_main () at gtkmain.c:1003
#22 0x0805ffc6 in ?? ()
#23 0x080abaa0 in ?? ()
#24 0x08080cbb in _IO_stdin_used ()
#25 0x0805cc10 in ?? ()
#26 0x00000000 in ?? ()
Having looked at vte_terminal_match_check_internal in src/vte.c, it
seems that every token inside the buffer is search against the list of
registered regexps.
Arthur Petitpierre.
-- System Information:
Debian Release: 4.0
APT prefers testing
APT policy: (900, 'testing'), (800, 'unstable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-2-686
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Versions of packages libvte4 depends on:
ii libatk1.0-0 1.12.3-1 The ATK accessibility toolkit
ii libc6 2.3.6.ds1-8 GNU C Library: Shared libraries
ii libcairo2 1.2.4-4 The Cairo 2D vector graphics libra
ii libfontconfig1 2.4.1-2 generic font configuration library
ii libglib2.0-0 2.12.4-1 The GLib library of C routines
ii libgtk2.0-0 2.8.20-3 The GTK+ graphical user interface
ii libice6 1:1.0.1-2 X11 Inter-Client Exchange library
ii libncurses5 5.5-5 Shared libraries for terminal hand
ii libpango1.0-0 1.14.7-1 Layout and rendering of internatio
ii libsm6 1:1.0.1-3 X11 Session Management library
ii libvte-common 1:0.12.2-4 Terminal emulator widget for GTK+
ii libx11-6 2:1.0.3-3 X11 client-side library
ii libxcursor1 1.1.7-4 X cursor management library
ii libxext6 1:1.0.1-2 X11 miscellaneous extension librar
ii libxfixes3 1:4.0.1-4 X11 miscellaneous 'fixes' extensio
ii libxft2 2.1.8.2-8 FreeType-based font drawing librar
ii libxi6 1:1.0.1-3 X11 Input extension library
ii libxinerama1 1:1.0.1-4.1 X11 Xinerama extension library
ii libxrandr2 2:1.1.0.2-4 X11 RandR extension library
ii libxrender1 1:0.9.1-3 X Rendering Extension client libra
libvte4 recommends no packages.
-- no debconf information