Bug 216810 - nautilus-cd-burner freezes for 20s with 100% CPU utilization when changing discs
Summary: nautilus-cd-burner freezes for 20s with 100% CPU utilization when changing discs
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: nautilus-cd-burner
Version: 6
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Alexander Larsson
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: 217282
TreeView+ depends on / blocked
 
Reported: 2006-11-22 02:03 UTC by Dimi Paun
Modified: 2007-11-30 22:11 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-11-29 09:05:59 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
GNOME Bugzilla 350082 0 None None None Never

Description Dimi Paun 2006-11-22 02:03:55 UTC
Description of problem:
When selecting a different drive to burn to (from the "Write disc to" dropdown),
the application freezes (including UI redraws) for 20 seconds with 100% CPU
utilization.

Version-Release number of selected component (if applicable):
nautilus-cd-burner-2.16.0-3.fc6

How reproducible:
Always.

Steps to Reproduce:
1. Click "Write to Disc" button
2. Select a different drive to write to from the dropdown
3.
  
Actual results:
UI freezes for 20s with high CPU utilization.

Expected results:
Quick drive change.

Additional info:
This used to work just fine in FC5.
I have two drives in the system:

hdc: HL-DT-ST DVDRAM GSA-4163B, ATAPI CD/DVD-ROM drive
hdd: HL-DT-ST GCE-8525B, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
VP_IDE: IDE controller at PCI slot 0000:02:04.0
ACPI: PCI Interrupt 0000:02:04.0[A] -> GSI 23 (level, low) -> IRQ 17
VP_IDE: chipset revision 6
VP_IDE: VIA vt6410 (rev 06) IDE UDMA133 controller on pci0000:02:04.0
VP_IDE: 100% native mode on irq 17

While all this freeze is happening, 'tail -f /var/log/dmesg' doesn't output
_anything_, and top displays something like this:

 9639 dimi      25   0 87740  18m 8736 R  100  0.9   0:38.64 nautilus-cd-bur   
                                                            
   15 root      RT   0     0    0    0 S    7  0.0   0:25.08 posix_cpu_timer   
                                                            
 9580 dimi      15   0 98.1m  15m 9456 R    6  0.8   0:01.47 gnome-terminal    
                                                            
   17 root      -2   0     0    0    0 S    5  0.0   8:13.05 softirq-timer/1   
                                                            
 4433 root      15   0  146m  11m 7980 S    2  0.6   2:34.78 Xorg              
                                                            
  333 root     -47  -5     0    0    0 S    0  0.0   0:32.89 IRQ 15            
                                                            
 9663 dimi      15   0  2300 1068  788 R    0  0.1   0:00.18 top               
                                                            
    1 root      15   0  2036  648  552 S    0  0.0   0:28.29 init

Comment 1 Alexander Larsson 2006-11-22 11:29:45 UTC
Could you install the nautilus-cd-burner-debuginfo package (and gtk2-debuginfo,
glib2-debuginfo) and get a backtrace of nautilus-cd-burner when this happens.

i.e:
gdb attach <pid>
bt


Comment 2 Dimi Paun 2006-11-23 04:12:14 UTC
I've done couple and they look the same:

#0  0x00abf18d in g_type_check_instance_is_a () from /lib/libgobject-2.0.so.0
#1  0x00c05602 in pango_shape () from /usr/lib/libpango-1.0.so.0
#2  0x00bf931a in pango_layout_set_width () from /usr/lib/libpango-1.0.so.0
#3  0x00bfbe15 in pango_layout_iter_get_char_extents ()
   from /usr/lib/libpango-1.0.so.0
#4  0x00bfc37f in pango_layout_iter_get_char_extents ()
   from /usr/lib/libpango-1.0.so.0
#5  0x00bfccab in pango_layout_iter_get_char_extents ()
   from /usr/lib/libpango-1.0.so.0
#6  0x00bfdc6d in pango_layout_get_pixel_extents ()
   from /usr/lib/libpango-1.0.so.0
#7  0x00171611 in gtk_cell_renderer_text_new () 
   from /usr/lib/libgtk-x11-2.0.so.0
#8  0x0016a5a4 in gtk_cell_renderer_get_size () 
   from /usr/lib/libgtk-x11-2.0.so.0
#9  0x00174075 in gtk_cell_view_get_cell_renderers ()
   from /usr/lib/libgtk-x11-2.0.so.0
#10 0x001742fa in gtk_cell_view_get_size_of_row ()
   from /usr/lib/libgtk-x11-2.0.so.0
#11 0x0019381a in gtk_combo_new () from /usr/lib/libgtk-x11-2.0.so.0
#12 0x00193d61 in gtk_combo_new () from /usr/lib/libgtk-x11-2.0.so.0
#13 0x0022f85d in gtk_marshal_BOOLEAN__VOID () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x00aa4f0b in g_closure_invoke () from /lib/libgobject-2.0.so.0
#15 0x00ab5e83 in g_signal_override_class_closure () 
   from /lib/libgobject-2.0.so.0
#16 0x00ab737f in g_signal_emit_valist () from /lib/libgobject-2.0.so.0
#17 0x00ab7539 in g_signal_emit () from /lib/libgobject-2.0.so.0
#18 0x00308429 in gtk_tree_model_row_changed () 
   from /usr/lib/libgtk-x11-2.0.so.0
#19 0x0022972e in gtk_list_store_set_valist () from /usr/lib/libgtk-x11-2.0.so.0
#20 0x00229762 in gtk_list_store_set () from /usr/lib/libgtk-x11-2.0.so.0
#21 0x080534da in g_cclosure_marshal_VOID__BOOLEAN ()
#22 0x08053827 in g_cclosure_marshal_VOID__BOOLEAN ()
#23 0x08053f01 in g_cclosure_marshal_VOID__BOOLEAN ()
#24 0x00ab1a29 in g_cclosure_marshal_VOID__STRING () 
   from /lib/libgobject-2.0.so.0
#25 0x00aa4f0b in g_closure_invoke () from /lib/libgobject-2.0.so.0
#26 0x00ab5e83 in g_signal_override_class_closure () 
   from /lib/libgobject-2.0.so.0
#27 0x00ab737f in g_signal_emit_valist () from /lib/libgobject-2.0.so.0
#28 0x00ab7539 in g_signal_emit () from /lib/libgobject-2.0.so.0
#29 0x063258be in nautilus_burn_drive_selection_new ()
   from /usr/lib/libnautilus-burn.so.4
#30 0x00ab2259 in g_cclosure_marshal_VOID__VOID () from /lib/libgobject-2.0.so.0
#31 0x00aa4f0b in g_closure_invoke () from /lib/libgobject-2.0.so.0
#32 0x00ab5e83 in g_signal_override_class_closure () 
   from /lib/libgobject-2.0.so.0
#33 0x00ab737f in g_signal_emit_valist () from /lib/libgobject-2.0.so.0
#34 0x00ab7539 in g_signal_emit () from /lib/libgobject-2.0.so.0
#35 0x001940ce in gtk_combo_new () from /usr/lib/libgtk-x11-2.0.so.0
#36 0x00195534 in gtk_combo_box_set_active_iter ()
   from /usr/lib/libgtk-x11-2.0.so.0
#37 0x00195643 in gtk_combo_box_set_active_iter ()
   from /usr/lib/libgtk-x11-2.0.so.0
#38 0x00ab2259 in g_cclosure_marshal_VOID__VOID () from /lib/libgobject-2.0.so.0
#39 0x00aa4f0b in g_closure_invoke () from /lib/libgobject-2.0.so.0
#40 0x00ab5e83 in g_signal_override_class_closure () 
   from /lib/libgobject-2.0.so.0
#41 0x00ab737f in g_signal_emit_valist () from /lib/libgobject-2.0.so.0
#42 0x00ab7539 in g_signal_emit () from /lib/libgobject-2.0.so.0
#43 0x003494b4 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#44 0x0023ddc8 in gtk_menu_shell_activate_item ()
   from /usr/lib/libgtk-x11-2.0.so.0
#45 0x0023f392 in gtk_menu_shell_append () from /usr/lib/libgtk-x11-2.0.so.0
#46 0x00236f65 in gtk_menu_reorder_child () from /usr/lib/libgtk-x11-2.0.so.0
#47 0x002310c0 in gtk_marshal_BOOLEAN__VOID () from /usr/lib/libgtk-x11-2.0.so.0
#48 0x00aa36f9 in g_value_set_static_boxed () from /lib/libgobject-2.0.so.0
#49 0x00aa4f0b in g_closure_invoke () from /lib/libgobject-2.0.so.0
#50 0x00ab64d3 in g_signal_override_class_closure () 
   from /lib/libgobject-2.0.so.0
#51 0x00ab7147 in g_signal_emit_valist () from /lib/libgobject-2.0.so.0
#52 0x00ab7539 in g_signal_emit () from /lib/libgobject-2.0.so.0
#53 0x00345118 in gtk_widget_get_default_style ()
   from /usr/lib/libgtk-x11-2.0.so.0
#54 0x0022a563 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#55 0x0022b767 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#56 0x00c7d0ea in gdk_add_client_message_filter ()
   from /usr/lib/libgdk-x11-2.0.so.0
#57 0x00a1c342 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#58 0x00a1f31f in g_main_context_check () from /lib/libglib-2.0.so.0
#59 0x00a1f6c9 in g_main_loop_run () from /lib/libglib-2.0.so.0
#60 0x0022bbe4 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#61 0x0804ccb2 in g_cclosure_marshal_VOID__BOOLEAN ()
#62 0x0063ef2c in __libc_start_main () from /lib/libc.so.6
#63 0x0804c9a1 in g_cclosure_marshal_VOID__BOOLEAN ()


Comment 3 Alexander Larsson 2006-11-23 09:45:01 UTC
Seems to be rendering a lot of text in a combo box.
Perhaps related to
http://bugzilla.gnome.org/show_bug.cgi?id=350082

Comment 4 Dimi Paun 2006-11-23 21:38:13 UTC
Yes, it seems to be exactly it. However, it was fixed on Sep 29, 2006 upstream, 
when is it going to be fixed in FC6?


Comment 5 Alexander Larsson 2006-11-24 08:45:21 UTC
Did you verify that the upstream fix fixed your problem?


Comment 6 Dimi Paun 2006-11-25 15:27:08 UTC
No, I didn't, since it is non-trivial for me to do so.
But I can confirm that I'm experience the problem fixed
upstream because my the "Write speed" combo box is filled
with thousands upon thousands of useless entries, exactly
the bug fixed upstream.

If you can provide me with a binary RPM containing the fix
I'd be more than happy to give it a try.


Comment 7 Alexander Larsson 2006-11-28 13:18:34 UTC
please try nautilus-cd-burner-2.16.0-6.fc6 in updates-testing

Comment 10 Dimi Paun 2006-11-29 02:33:09 UTC
Yes, it fixes the problem.

However, it is still rather ugly as for CDROM it reports
62 different write speeds: Max, 61x, 60x, ..., 2x, 1x.

Ugly, but at least it works as expected.



Note You need to log in before you can comment on or make changes to this bug.