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

Reply via email to