Bug 682091

Summary: pidgin hangs when specific text is cut/pasted into the chat
Product: [Fedora] Fedora Reporter: Bojan Smojver <bojan>
Component: pidginAssignee: Stu Tomlinson <stu>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 14CC: fedora, itamar, stu
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-08-16 15:53:57 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Bojan Smojver 2011-03-04 04:39:30 UTC
Description of problem:
When a string like this (between the dashes):
---------------------
jdbc:oracle:thin:@machine.some.domain.org:12345:D
ATABASE
---------------------

Is cut/pasted into a sametime chat, pidgin hangs. CPU utilisation goes close to 90% and strace shows a whole bunch of gettimeofday() calls only.

Version-Release number of selected component (if applicable):
pidgin-2.7.10-1.fc14.i686

How reproducible:
Always.

Steps to Reproduce:
1. Cut/paste above text into sametime (maybe other?) chat.
2. Hang.
  
Actual results:
Hangs.

Expected results:
Should not hang.

Additional info:

Comment 1 Bojan Smojver 2011-03-04 04:55:38 UTC
Backtrace from gdb (note that the actual fqdn and port have been sanitized):
----------------------
Program received signal SIGINT, Interrupt.
pango_default_break (
    text=0x940e628 "jdbc:oracle:thin:@machine.come.domain.org:12345:D", 
    length=54, analysis=0xbfd85924, attrs=0x9370c20, attrs_len=55)
    at break.c:1305
1305	      switch (sentence_state)
(gdb) t a a bt

Thread 1 (Thread 0xb7771850 (LWP 16632)):
#0  pango_default_break (
    text=0x940e628 "jdbc:oracle:thin:@machine.some.domain.org:12345:D", 
    length=54, analysis=0xbfd85924, attrs=0x9370c20, attrs_len=55)
    at break.c:1305
#1  0x00d81c43 in pango_break (
    text=0x940e628 "jdbc:oracle:thin:@machine.some.domain.org:12345:D", 
    length=54, analysis=0xbfd85924, attrs=0x9370c20, attrs_len=55)
    at break.c:1699
#2  0x00d955a7 in get_items_log_attrs (layout=0x93db680) at pango-layout.c:3637
#3  pango_layout_check_lines (layout=0x93db680) at pango-layout.c:3829
#4  0x00d968f5 in pango_layout_get_extents_internal (layout=0x93db680, 
    ink_rect=0x0, logical_rect=<value optimized out>, line_extents=0x0)
    at pango-layout.c:2431
#5  0x06d5b2d9 in IA__gtk_text_layout_get_line_display (layout=0x936e978, 
    line=0x9364690, size_only=0) at gtktextlayout.c:2470
#6  0x06d5d460 in IA__gtk_text_layout_get_iter_location (layout=0x936e978, 
    iter=0xbfd85c78, rect=0xbfd85cb0) at gtktextlayout.c:2935
#7  0x080931cd in ?? ()
#8  0x008ea648 in g_cclosure_marshal_VOID__BOXED (closure=0x9367e28, 
    return_value=0x0, n_param_values=2, param_values=0x94c2190, 
    invocation_hint=0xbfd85e30, marshal_data=0x0) at gmarshal.c:568
---Type <return> to continue, or q <return> to quit---
#9  0x008cdbe3 in g_closure_invoke (closure=0x9367e28, return_value=0x0, 
    n_param_values=2, param_values=0x94c2190, invocation_hint=0xbfd85e30)
    at gclosure.c:766
#10 0x008e00f0 in signal_emit_unlocked_R (node=0x8dc4cc0, detail=0, 
    instance=0x9345b18, emission_return=0x0, instance_and_params=0x94c2190)
    at gsignal.c:3252
#11 0x008e924e in g_signal_emit_valist (instance=0x9345b18, signal_id=19, 
    detail=0, 
    var_args=0xbfd85ff0 "\371\317\335\006\204*\376\006X`ؿ\362\212\320\006p\235\002\t8`ؿ") at gsignal.c:2983
#12 0x008e9403 in g_signal_emit (instance=0x9345b18, signal_id=19, detail=0)
    at gsignal.c:3040
#13 0x06de426f in IA__gtk_widget_size_allocate (widget=0x9345b18, 
    allocation=0xbfd860b4) at gtkwidget.c:4097
#14 0x06d08f8f in gtk_scrolled_window_size_allocate (widget=0x9092920, 
    allocation=0xbfd86480) at gtkscrolledwindow.c:1437
#15 0x008ea648 in g_cclosure_marshal_VOID__BOXED (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x9386368, 
    invocation_hint=0xbfd86280, marshal_data=0x6d08da0) at gmarshal.c:568
#16 0x008cc538 in g_type_class_meta_marshal (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x9386368, 
    invocation_hint=0xbfd86280, marshal_data=0x80) at gclosure.c:877
#17 0x008cdb10 in g_closure_invoke (closure=0x8dc7010, return_value=0x0, 
---Type <return> to continue, or q <return> to quit---
    n_param_values=2, param_values=0x9386368, invocation_hint=0xbfd86280)
    at gclosure.c:766
#18 0x008df86e in signal_emit_unlocked_R (node=0x8dc4cc0, detail=0, 
    instance=0x9092920, emission_return=0x0, instance_and_params=0x9386368)
    at gsignal.c:3182
#19 0x008e924e in g_signal_emit_valist (instance=0x9092920, signal_id=19, 
    detail=0, var_args=0xbfd86440 "\330{\335\b`") at gsignal.c:2983
#20 0x008e9403 in g_signal_emit (instance=0x9092920, signal_id=19, detail=0)
    at gsignal.c:3040
#21 0x06de426f in IA__gtk_widget_size_allocate (widget=0x9092920, 
    allocation=0xbfd86528) at gtkwidget.c:4097
#22 0x06bb34e2 in gtk_box_size_allocate (widget=0x93612d8, 
    allocation=0xbfd868e0) at gtkbox.c:500
#23 0x008ea648 in g_cclosure_marshal_VOID__BOXED (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x9386740, 
    invocation_hint=0xbfd866e0, marshal_data=0x6bb3250) at gmarshal.c:568
#24 0x008cc538 in g_type_class_meta_marshal (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x9386740, 
    invocation_hint=0xbfd866e0, marshal_data=0x80) at gclosure.c:877
#25 0x008cdb10 in g_closure_invoke (closure=0x8dc7010, return_value=0x0, 
    n_param_values=2, param_values=0x9386740, invocation_hint=0xbfd866e0)
    at gclosure.c:766
#26 0x008df86e in signal_emit_unlocked_R (node=0x8dc4cc0, detail=0, 
---Type <return> to continue, or q <return> to quit---
    instance=0x93612d8, emission_return=0x0, instance_and_params=0x9386740)
    at gsignal.c:3182
#27 0x008e924e in g_signal_emit_valist (instance=0x93612d8, signal_id=19, 
    detail=0, var_args=0xbfd868a0 "\034") at gsignal.c:2983
#28 0x008e9403 in g_signal_emit (instance=0x93612d8, signal_id=19, detail=0)
    at gsignal.c:3040
#29 0x06de426f in IA__gtk_widget_size_allocate (widget=0x93612d8, 
    allocation=0xbfd86958) at gtkwidget.c:4097
#30 0x06c43245 in gtk_frame_size_allocate (widget=0x90460d8, 
    allocation=0xbfd86d10) at gtkframe.c:663
#31 0x008ea648 in g_cclosure_marshal_VOID__BOXED (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x9426f40, 
    invocation_hint=0xbfd86b10, marshal_data=0x6c43000) at gmarshal.c:568
#32 0x008cc538 in g_type_class_meta_marshal (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x9426f40, 
    invocation_hint=0xbfd86b10, marshal_data=0x80) at gclosure.c:877
#33 0x008cdb10 in g_closure_invoke (closure=0x8dc7010, return_value=0x0, 
    n_param_values=2, param_values=0x9426f40, invocation_hint=0xbfd86b10)
    at gclosure.c:766
#34 0x008df86e in signal_emit_unlocked_R (node=0x8dc4cc0, detail=0, 
    instance=0x90460d8, emission_return=0x0, instance_and_params=0x9426f40)
    at gsignal.c:3182
#35 0x008e924e in g_signal_emit_valist (instance=0x90460d8, signal_id=19, 
---Type <return> to continue, or q <return> to quit---
    detail=0, var_args=0xbfd86cd0 "\330{\335\b\002") at gsignal.c:2983
#36 0x008e9403 in g_signal_emit (instance=0x90460d8, signal_id=19, detail=0)
    at gsignal.c:3040
#37 0x06de426f in IA__gtk_widget_size_allocate (widget=0x90460d8, 
    allocation=0xbfd86db8) at gtkwidget.c:4097
#38 0x06bb34e2 in gtk_box_size_allocate (widget=0x9361280, 
    allocation=0xbfd87170) at gtkbox.c:500
#39 0x008ea648 in g_cclosure_marshal_VOID__BOXED (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x94bba28, 
    invocation_hint=0xbfd86f70, marshal_data=0x6bb3250) at gmarshal.c:568
#40 0x008cc538 in g_type_class_meta_marshal (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x94bba28, 
    invocation_hint=0xbfd86f70, marshal_data=0x80) at gclosure.c:877
#41 0x008cdb10 in g_closure_invoke (closure=0x8dc7010, return_value=0x0, 
    n_param_values=2, param_values=0x94bba28, invocation_hint=0xbfd86f70)
    at gclosure.c:766
#42 0x008df86e in signal_emit_unlocked_R (node=0x8dc4cc0, detail=0, 
    instance=0x9361280, emission_return=0x0, instance_and_params=0x94bba28)
    at gsignal.c:3182
#43 0x008e924e in g_signal_emit_valist (instance=0x9361280, signal_id=19, 
    detail=0, var_args=0xbfd87130 "\330{\335\b<K\334\b\213G\217")
    at gsignal.c:2983
#44 0x008e9403 in g_signal_emit (instance=0x9361280, signal_id=19, detail=0)
---Type <return> to continue, or q <return> to quit---
    at gsignal.c:3040
#45 0x06de426f in IA__gtk_widget_size_allocate (widget=0x9361280, 
    allocation=0xbfd87218) at gtkwidget.c:4097
#46 0x06bb34e2 in gtk_box_size_allocate (widget=0x8fbef18, 
    allocation=0xbfd875d0) at gtkbox.c:500
#47 0x008ea648 in g_cclosure_marshal_VOID__BOXED (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x9386990, 
    invocation_hint=0xbfd873d0, marshal_data=0x6bb3250) at gmarshal.c:568
#48 0x008cc538 in g_type_class_meta_marshal (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x9386990, 
    invocation_hint=0xbfd873d0, marshal_data=0x80) at gclosure.c:877
#49 0x008cdb10 in g_closure_invoke (closure=0x8dc7010, return_value=0x0, 
    n_param_values=2, param_values=0x9386990, invocation_hint=0xbfd873d0)
    at gclosure.c:766
#50 0x008df86e in signal_emit_unlocked_R (node=0x8dc4cc0, detail=0, 
    instance=0x8fbef18, emission_return=0x0, instance_and_params=0x9386990)
    at gsignal.c:3182
#51 0x008e924e in g_signal_emit_valist (instance=0x8fbef18, signal_id=19, 
    detail=0, var_args=0xbfd87590 "\330{\335\b") at gsignal.c:2983
#52 0x008e9403 in g_signal_emit (instance=0x8fbef18, signal_id=19, detail=0)
    at gsignal.c:3040
#53 0x06de426f in IA__gtk_widget_size_allocate (widget=0x8fbef18, 
    allocation=0xbfd87678) at gtkwidget.c:4097
---Type <return> to continue, or q <return> to quit---
#54 0x06bb34e2 in gtk_box_size_allocate (widget=0x936e9d0, 
    allocation=0xbfd87a30) at gtkbox.c:500
#55 0x008ea648 in g_cclosure_marshal_VOID__BOXED (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x94bbaa0, 
    invocation_hint=0xbfd87830, marshal_data=0x6bb3250) at gmarshal.c:568
#56 0x008cc538 in g_type_class_meta_marshal (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x94bbaa0, 
    invocation_hint=0xbfd87830, marshal_data=0x80) at gclosure.c:877
#57 0x008cdb10 in g_closure_invoke (closure=0x8dc7010, return_value=0x0, 
    n_param_values=2, param_values=0x94bbaa0, invocation_hint=0xbfd87830)
    at gclosure.c:766
#58 0x008df86e in signal_emit_unlocked_R (node=0x8dc4cc0, detail=0, 
    instance=0x936e9d0, emission_return=0x0, instance_and_params=0x94bbaa0)
    at gsignal.c:3182
#59 0x008e924e in g_signal_emit_valist (instance=0x936e9d0, signal_id=19, 
    detail=0, var_args=0xbfd879f0 "P\002\065\t\240\302\333\b\030zؿ\024A\217")
    at gsignal.c:2983
#60 0x008e9403 in g_signal_emit (instance=0x936e9d0, signal_id=19, detail=0)
    at gsignal.c:3040
#61 0x06de426f in IA__gtk_widget_size_allocate (widget=0x936e9d0, 
    allocation=0xbfd87acc) at gtkwidget.c:4097
#62 0x06cb9088 in gtk_notebook_size_allocate (widget=0x8fbbc00, 
    allocation=0xbfd87e80) at gtknotebook.c:2271
---Type <return> to continue, or q <return> to quit---
#63 0x008ea648 in g_cclosure_marshal_VOID__BOXED (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x9427028, 
    invocation_hint=0xbfd87c80, marshal_data=0x6cb8f40) at gmarshal.c:568
#64 0x008cc538 in g_type_class_meta_marshal (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x9427028, 
    invocation_hint=0xbfd87c80, marshal_data=0x80) at gclosure.c:877
#65 0x008cdb10 in g_closure_invoke (closure=0x8dc7010, return_value=0x0, 
    n_param_values=2, param_values=0x9427028, invocation_hint=0xbfd87c80)
    at gclosure.c:766
#66 0x008df86e in signal_emit_unlocked_R (node=0x8dc4cc0, detail=0, 
    instance=0x8fbbc00, emission_return=0x0, instance_and_params=0x9427028)
    at gsignal.c:3182
#67 0x008e924e in g_signal_emit_valist (instance=0x8fbbc00, signal_id=19, 
    detail=0, var_args=0xbfd87e40 "\330{\335\bЖp") at gsignal.c:2983
#68 0x008e9403 in g_signal_emit (instance=0x8fbbc00, signal_id=19, detail=0)
    at gsignal.c:3040
#69 0x06de426f in IA__gtk_widget_size_allocate (widget=0x8fbbc00, 
    allocation=0xbfd87f28) at gtkwidget.c:4097
#70 0x06bb34e2 in gtk_box_size_allocate (widget=0x936ea28, 
    allocation=0xbfd882e0) at gtkbox.c:500
#71 0x008ea648 in g_cclosure_marshal_VOID__BOXED (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x9426b68, 
    invocation_hint=0xbfd880e0, marshal_data=0x6bb3250) at gmarshal.c:568
---Type <return> to continue, or q <return> to quit---
#72 0x008cc538 in g_type_class_meta_marshal (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x9426b68, 
    invocation_hint=0xbfd880e0, marshal_data=0x80) at gclosure.c:877
#73 0x008cdb10 in g_closure_invoke (closure=0x8dc7010, return_value=0x0, 
    n_param_values=2, param_values=0x9426b68, invocation_hint=0xbfd880e0)
    at gclosure.c:766
#74 0x008df86e in signal_emit_unlocked_R (node=0x8dc4cc0, detail=0, 
    instance=0x936ea28, emission_return=0x0, instance_and_params=0x9426b68)
    at gsignal.c:3182
#75 0x008e924e in g_signal_emit_valist (instance=0x936ea28, signal_id=19, 
    detail=0, var_args=0xbfd882a0 "\002\200") at gsignal.c:2983
#76 0x008e9403 in g_signal_emit (instance=0x936ea28, signal_id=19, detail=0)
    at gsignal.c:3040
#77 0x06de426f in IA__gtk_widget_size_allocate (widget=0x936ea28, 
    allocation=0xbfd88340) at gtkwidget.c:4097
#78 0x06df3719 in gtk_window_size_allocate (widget=0x9045cf8, 
    allocation=0xbfd886f0) at gtkwindow.c:4994
#79 0x008ea648 in g_cclosure_marshal_VOID__BOXED (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x94c1fb8, 
    invocation_hint=0xbfd884f0, marshal_data=0x6df35f0) at gmarshal.c:568
#80 0x008cc538 in g_type_class_meta_marshal (closure=0x8dc7010, 
    return_value=0x0, n_param_values=2, param_values=0x94c1fb8, 
    invocation_hint=0xbfd884f0, marshal_data=0x80) at gclosure.c:877
---Type <return> to continue, or q <return> to quit---
#81 0x008cdbe3 in g_closure_invoke (closure=0x8dc7010, return_value=0x0, 
    n_param_values=2, param_values=0x94c1fb8, invocation_hint=0xbfd884f0)
    at gclosure.c:766
#82 0x008df86e in signal_emit_unlocked_R (node=0x8dc4cc0, detail=0, 
    instance=0x9045cf8, emission_return=0x0, instance_and_params=0x94c1fb8)
    at gsignal.c:3182
#83 0x008e924e in g_signal_emit_valist (instance=0x9045cf8, signal_id=19, 
    detail=0, var_args=0xbfd886b0 "") at gsignal.c:2983
#84 0x008e9403 in g_signal_emit (instance=0x9045cf8, signal_id=19, detail=0)
    at gsignal.c:3040
#85 0x06de426f in IA__gtk_widget_size_allocate (widget=0x9045cf8, 
    allocation=0x9045d1c) at gtkwidget.c:4097
#86 0x06bf2b90 in IA__gtk_container_resize_children (container=0x9045cf8)
    at gtkcontainer.c:1477
#87 0x06df317d in gtk_window_move_resize (container=0x9045cf8)
    at gtkwindow.c:6403
#88 gtk_window_check_resize (container=0x9045cf8) at gtkwindow.c:5408
#89 0x008e9bc4 in g_cclosure_marshal_VOID__VOID (closure=0x8ddcc00, 
    return_value=0x0, n_param_values=1, param_values=0x9431330, 
    invocation_hint=0xbfd889d0, marshal_data=0x6df2bf0) at gmarshal.c:79
#90 0x008cc538 in g_type_class_meta_marshal (closure=0x8ddcc00, 
    return_value=0x0, n_param_values=1, param_values=0x9431330, 
    invocation_hint=0xbfd889d0, marshal_data=0x174) at gclosure.c:877
---Type <return> to continue, or q <return> to quit---
#91 0x008cdbe3 in g_closure_invoke (closure=0x8ddcc00, return_value=0x0, 
    n_param_values=1, param_values=0x9431330, invocation_hint=0xbfd889d0)
    at gclosure.c:766
#92 0x008dfef5 in signal_emit_unlocked_R (node=0x8ddcc30, detail=0, 
    instance=0x9045cf8, emission_return=0x0, instance_and_params=0x9431330)
    at gsignal.c:3290
#93 0x008e924e in g_signal_emit_valist (instance=0x9045cf8, signal_id=82, 
    detail=0, 
    var_args=0xbfd88b8c "\204*\376\006\204*\376\006\370\\\004\t\270\213ؿ\342*\277\006\370\\\004\t\330{\335\b\270\213ؿ\212*\277\006\310\354-")
    at gsignal.c:2983
#94 0x008e9403 in g_signal_emit (instance=0x9045cf8, signal_id=82, detail=0)
    at gsignal.c:3040
#95 0x06bf278a in IA__gtk_container_check_resize (container=0x9045cf8)
    at gtkcontainer.c:1431
#96 0x06bf2ae2 in gtk_container_idle_sizer (data=0x0) at gtkcontainer.c:1356
#97 0x0023b248 in gdk_threads_dispatch (data=0x9437870) at gdk.c:512
#98 0x007ee042 in g_idle_dispatch (source=0x94dacf8, 
    callback=0x23b1e0 <gdk_threads_dispatch>, user_data=0x9437870)
    at gmain.c:4254
#99 0x007f2192 in g_main_dispatch (context=0x8d9e2f8) at gmain.c:2149
#100 g_main_context_dispatch (context=0x8d9e2f8) at gmain.c:2702
#101 0x007f2978 in g_main_context_iterate (context=0x8d9e2f8, block=1, 
---Type <return> to continue, or q <return> to quit---
    dispatch=1, self=<value optimized out>) at gmain.c:2780
#102 0x007f304b in g_main_loop_run (loop=0x90566f8) at gmain.c:2988
#103 0x06c8b499 in IA__gtk_main () at gtkmain.c:1237
#104 0x080cfdf9 in main ()
----------------------

Comment 2 Fedora End Of Life 2012-08-16 15:54:00 UTC
This message is a notice that Fedora 14 is now at end of life. Fedora 
has stopped maintaining and issuing updates for Fedora 14. It is 
Fedora's policy to close all bug reports from releases that are no 
longer maintained.  At this time, all open bugs with a Fedora 'version'
of '14' have been closed as WONTFIX.

(Please note: Our normal process is to give advanced warning of this 
occurring, but we forgot to do that. A thousand apologies.)

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, feel free to reopen 
this bug and simply change the 'version' to a later Fedora version.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we were unable to fix it before Fedora 14 reached end of life. If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora, you are encouraged to click on 
"Clone This Bug" (top right of this page) and open it against that 
version of Fedora.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping