Cheese doesn't start, hangs with 100% CPU

Bug #963920 reported by Jo Vermeulen
20
This bug affects 4 people
Affects Status Importance Assigned to Milestone
gstreamer0.10 (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

Cheese doesn't work on my system (Ubuntu 12.04). It never opens a window, and keeps using 100% CPU until I kill it.

Version of cheese:

cheese:
  Installed: 3.3.92-0ubuntu1
  Candidate: 3.3.92-0ubuntu1
  Version table:
 *** 3.3.92-0ubuntu1 0
        500 http://be.archive.ubuntu.com/ubuntu/ precise/universe amd64 Packages
        100 /var/lib/dpkg/status

My laptop is a Lenovo x121e with Intel Core i3 2367M processor, 4GB RAM and Intel HD graphics. The webcam does seem to work correctly through gstreamer, using:

gst-launch-0.10 v4l2src ! video/x-raw-yuv,width=640,height=480 ! ffmpegcolorspace ! xvimagesink

Here's the backtrace from running cheese:

=================
GNU gdb (Ubuntu/Linaro 7.4-2012.02-0ubuntu2) 7.4-2012.02
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /usr/bin/cheese...(no debugging symbols found)...done.
(gdb) handle SIG33 pass nostop noprint
Signal Stop Print Pass to program Description
SIG33 No No Yes Real-time event 33
(gdb) set pagination 0
(gdb) run
Starting program: /usr/bin/cheese
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffeb67d700 (LWP 5229)]
[New Thread 0x7fffeae7c700 (LWP 5230)]

(cheese:5226): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkToggleButton, but as a GtkBin subclass a GtkToggleButton can only contain one widget at a time; it already contains a widget of type GtkLabel

(cheese:5226): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkToggleButton, but as a GtkBin subclass a GtkToggleButton can only contain one widget at a time; it already contains a widget of type GtkLabel

(cheese:5226): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkToggleButton, but as a GtkBin subclass a GtkToggleButton can only contain one widget at a time; it already contains a widget of type GtkLabel

(cheese:5226): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkButton, but as a GtkBin subclass a GtkButton can only contain one widget at a time; it already contains a widget of type GtkLabel

(cheese:5226): Gtk-WARNING **: Attempting to add a widget with type GtkGrid to a GtkToggleButton, but as a GtkBin subclass a GtkToggleButton can only contain one widget at a time; it already contains a widget of type GtkLabel

(cheese:5226): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkButton, but as a GtkBin subclass a GtkButton can only contain one widget at a time; it already contains a widget of type GtkLabel
[New Thread 0x7fffe2692700 (LWP 5231)]
[Thread 0x7fffe2692700 (LWP 5231) exited]

Program received signal SIGINT, Interrupt.
0x00007ffff5a1aeb0 in g_type_is_a () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
(gdb) backtrace full
#0 0x00007ffff5a1aeb0 in g_type_is_a () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#1 0x00007ffff5a1d955 in g_type_check_value_holds () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#2 0x00007ffff776b9a2 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#3 0x00007ffff776bc2c in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#4 0x00007ffff776bba6 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#5 0x00007ffff776bba6 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#6 0x00007ffff776bba6 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#7 0x00007ffff776bba6 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#8 0x00007ffff776bba6 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#9 0x00007ffff776bba6 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#10 0x00007ffff774ee10 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#11 0x00007ffff774f4b1 in gst_structure_foreach () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#12 0x00007ffff770b6bc in gst_caps_merge_structure () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#13 0x00007ffff770caf3 in gst_caps_intersect_full () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#14 0x00007ffff034e4cf in ?? () from /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0
No symbol table info available.
#15 0x00007ffff772a804 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#16 0x00007ffff772de0d in gst_pad_get_caps_reffed () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#17 0x00007ffff775f9ab in gst_element_get_compatible_pad () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#18 0x00007ffff7760a3a in gst_element_link_pads_full () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#19 0x00007fffe03b00ba in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstcamerabin.so
No symbol table info available.
#20 0x00007fffe03b026f in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstcamerabin.so
No symbol table info available.
#21 0x00007fffe03b045d in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstcamerabin.so
No symbol table info available.
#22 0x00007fffe03a495c in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstcamerabin.so
No symbol table info available.
#23 0x00007ffff7717dac in gst_element_change_state () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#24 0x00007ffff77186d0 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
No symbol table info available.
#25 0x00007ffff7bd02e5 in cheese_camera_play () from /usr/lib/x86_64-linux-gnu/libcheese.so.3
No symbol table info available.
#26 0x00000000004167b0 in cheese_main_window_setup_camera ()
No symbol table info available.
#27 0x0000000000417632 in cheese_main_on_app_activate ()
No symbol table info available.
#28 0x00007ffff59f9e72 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#29 0x00007ffff5a0b943 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#30 0x00007ffff5a14230 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#31 0x00007ffff5a14472 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#32 0x00000000004172f8 in ?? ()
No symbol table info available.
#33 0x00007ffff5efa978 in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#34 0x0000000000417848 in _vala_main ()
No symbol table info available.
#35 0x00007ffff513c76d in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#36 0x000000000040c6b9 in _start ()
No symbol table info available.
(gdb) info registers
rax 0x7ffff5c3a6c0 140737316628160
rbx 0x7fffffffd138 140737488343352
rcx 0x0 0
rdx 0x39 57
rsi 0xdc 220
rdi 0xe4 228
rbp 0x14617d8 0x14617d8
rsp 0x7fffffffd018 0x7fffffffd018
r8 0x64865a0 105407904
r9 0x0 0
r10 0x0 0
r11 0x4 4
r12 0x7fffffffd120 140737488343328
r13 0x7fffffffd138 140737488343352
r14 0xdc 220
r15 0x1c8 456
rip 0x7ffff5a1aeb0 0x7ffff5a1aeb0 <g_type_is_a>
eflags 0x202 [ IF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
(gdb) x/16uoi #$pc
=> 0x7ffff5a1aeb0 <g_type_is_a>: push %rbp
   0x7ffff5a1aeb1 <g_type_is_a+1>: mov %rdi,%rbp
   0x7ffff5a1aeb4 <g_type_is_a+4>: and $0xfffffffffffffffc,%rbp
   0x7ffff5a1aeb8 <g_type_is_a+8>: push %rbx
   0x7ffff5a1aeb9 <g_type_is_a+9>: sub $0x8,%rsp
   0x7ffff5a1aebd <g_type_is_a+13>: cmp $0x3fc,%rdi
   0x7ffff5a1aec4 <g_type_is_a+20>: ja 0x7ffff5a1aed5 <g_type_is_a+37>
   0x7ffff5a1aec6 <g_type_is_a+22>: lea 0x21f7f3(%rip),%rax # 0x7ffff5c3a6c0
   0x7ffff5a1aecd <g_type_is_a+29>: shr $0x2,%rdi
   0x7ffff5a1aed1 <g_type_is_a+33>: mov (%rax,%rdi,8),%rbp
   0x7ffff5a1aed5 <g_type_is_a+37>: mov %rsi,%rbx
   0x7ffff5a1aed8 <g_type_is_a+40>: and $0xfffffffffffffffc,%rbx
   0x7ffff5a1aedc <g_type_is_a+44>: cmp $0x3fc,%rsi
   0x7ffff5a1aee3 <g_type_is_a+51>: ja 0x7ffff5a1aef4 <g_type_is_a+68>
   0x7ffff5a1aee5 <g_type_is_a+53>: lea 0x21f7d4(%rip),%rax # 0x7ffff5c3a6c0
   0x7ffff5a1aeec <g_type_is_a+60>: shr $0x2,%rsi
(gdb) thread apply all backtrace

Thread 3 (Thread 0x7fffeae7c700 (LWP 5230)):
#0 0x00007ffff5201b03 in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff573d0e6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff573d54a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007ffff5f2e656 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4 0x00007ffff575ecd5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5 0x00007ffff54dfe9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#6 0x00007ffff520d4bd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#7 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fffeb67d700 (LWP 5229)):
#0 0x00007ffff5201b03 in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff573d0e6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff573d54a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007fffebebe98b in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
#4 0x00007ffff575ecd5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5 0x00007ffff54dfe9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#6 0x00007ffff520d4bd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#7 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7ffff7fc4940 (LWP 5226)):
#0 0x00007ffff5a1aeb0 in g_type_is_a () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#1 0x00007ffff5a1d955 in g_type_check_value_holds () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#2 0x00007ffff776b9a2 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#3 0x00007ffff776bc2c in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#4 0x00007ffff776bba6 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#5 0x00007ffff776bba6 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#6 0x00007ffff776bba6 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#7 0x00007ffff776bba6 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#8 0x00007ffff776bba6 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#9 0x00007ffff776bba6 in gst_value_subtract () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#10 0x00007ffff774ee10 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#11 0x00007ffff774f4b1 in gst_structure_foreach () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#12 0x00007ffff770b6bc in gst_caps_merge_structure () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#13 0x00007ffff770caf3 in gst_caps_intersect_full () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#14 0x00007ffff034e4cf in ?? () from /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0
#15 0x00007ffff772a804 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#16 0x00007ffff772de0d in gst_pad_get_caps_reffed () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#17 0x00007ffff775f9ab in gst_element_get_compatible_pad () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#18 0x00007ffff7760a3a in gst_element_link_pads_full () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#19 0x00007fffe03b00ba in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstcamerabin.so
#20 0x00007fffe03b026f in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstcamerabin.so
#21 0x00007fffe03b045d in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstcamerabin.so
#22 0x00007fffe03a495c in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstcamerabin.so
#23 0x00007ffff7717dac in gst_element_change_state () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#24 0x00007ffff77186d0 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#25 0x00007ffff7bd02e5 in cheese_camera_play () from /usr/lib/x86_64-linux-gnu/libcheese.so.3
#26 0x00000000004167b0 in cheese_main_window_setup_camera ()
#27 0x0000000000417632 in cheese_main_on_app_activate ()
#28 0x00007ffff59f9e72 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#29 0x00007ffff5a0b943 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#30 0x00007ffff5a14230 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#31 0x00007ffff5a14472 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#32 0x00000000004172f8 in ?? ()
#33 0x00007ffff5efa978 in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#34 0x0000000000417848 in _vala_main ()
#35 0x00007ffff513c76d in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#36 0x000000000040c6b9 in _start ()
(gdb) quit
A debugging session is active.

 Inferior 1 [process 5226] will be killed.

Quit anyway? (y or n)
=================

Attached is the output from strace.
---
ApportVersion: 1.95-0ubuntu1
Architecture: amd64
DistroRelease: Ubuntu 12.04
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Alpha amd64 (20120315)
MachineType: LENOVO 30457JG
Package: cheese 3.3.92-0ubuntu1
PackageArchitecture: amd64
ProcEnviron:
 TERM=xterm
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 3.2.0-20.32-generic 3.2.12
RelatedPackageVersions:
 cheese 3.3.92-0ubuntu1
 cheese-common 3.3.92-0ubuntu1
Tags: precise
Uname: Linux 3.2.0-20-generic x86_64
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo
dmi.bios.date: 01/11/2012
dmi.bios.vendor: LENOVO
dmi.bios.version: 8QET54WW (1.15 )
dmi.board.asset.tag: Not Available
dmi.board.name: 30457JG
dmi.board.vendor: LENOVO
dmi.board.version: Not Available
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvr8QET54WW(1.15):bd01/11/2012:svnLENOVO:pn30457JG:pvrThinkPadX121e:rvnLENOVO:rn30457JG:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 30457JG
dmi.product.version: ThinkPad X121e
dmi.sys.vendor: LENOVO

Revision history for this message
Jo Vermeulen (jozilla) wrote :
tags: added: apport-collected precise
description: updated
Revision history for this message
Jo Vermeulen (jozilla) wrote : CheeseDebug.txt.gz

apport information

Revision history for this message
Jo Vermeulen (jozilla) wrote : Dependencies.txt

apport information

Revision history for this message
Jo Vermeulen (jozilla) wrote : ProcCpuinfo.txt

apport information

Revision history for this message
Jo Vermeulen (jozilla) wrote : lspci.txt

apport information

Revision history for this message
Jo Vermeulen (jozilla) wrote : lsusb.txt

apport information

description: updated
Revision history for this message
Vadim Rutkovsky (roignac) wrote :

Look like it is a gstreamer fault

affects: cheese (Ubuntu) → gstreamer0.10 (Ubuntu)
Revision history for this message
Jo Vermeulen (jozilla) wrote :

Hmm, strange that it does work with the gst-launch command, if it's a gstreamer problem?

gst-launch-0.10 v4l2src ! video/x-raw-yuv,width=640,height=480 ! ffmpegcolorspace ! xvimagesink

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in gstreamer0.10 (Ubuntu):
status: New → Confirmed
Revision history for this message
D. Hugh Redelmeier (hugh-mimosa) wrote :

I updated for 10.04 LTS AMD64 => 12.04 LTS AMD64 in the last few days.
Cheese went from working to failing in the way described above:
At launch, it took 100% CPU and did not even show a window.
This was true with and without my HP USB webcam plugged in.

I wanted to give a useful traceback but the cheese-debsym package is older than the cheese package so I get this error message when trying to install it (another bug, I'd say):
 cheese-dbgsym : Depends: cheese (= 3.4.1-0ubuntu2) but 3.4.1-0ubuntu2.1 is to be installed

I tried the gstreamer command listed in #8. It worked!

So: it feels like a cheese bug.

Note: the cheese version I have is from updates, 3.4.1-0ubuntu2.1

PS: this machine has a bunch of Hauppauge video tuner cards as well. I don't want cheese to be looking at them and it doesn't seem to be.

Revision history for this message
D. Hugh Redelmeier (hugh-mimosa) wrote :

Addendum to #10: guvcview works fine.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.