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
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
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 ()
Seems to be rendering a lot of text in a combo box. Perhaps related to http://bugzilla.gnome.org/show_bug.cgi?id=350082
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?
Did you verify that the upstream fix fixed your problem?
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.
please try nautilus-cd-burner-2.16.0-6.fc6 in updates-testing
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.