[Pkg-shotwell-maint] Bug#728519: shotwell: Crashes if unplug camera usb cable

Kan-Ru Chen (=?UTF-8?Q?=E9=99=B3=E4=BE=83=E5=A6=82?=) koster at debian.org
Sat Nov 2 10:36:25 UTC 2013


Package: shotwell
Version: 0.15.0-1
Severity: normal
Tags: upstream

I have a camera that uses the PTP protocol through USB to expose the
photos.  But after I imported the photos and unplug the camera,
shotwell crashed.  I'm not sure if this is a problem in shotwell,
libgphoto2 or libusb so I tentatively report it here.  Following are
backtraces get from gdb:

Program received signal SIGSEGV, Segmentation fault.
libusb_get_device_descriptor (dev=0x0, desc=0x7fffffff8cd0) at ../../libusb/descriptor.c:555
555     ../../libusb/descriptor.c: No such file or directory.
(gdb) bt
#0  libusb_get_device_descriptor (dev=0x0, desc=0x7fffffff8cd0) at ../../libusb/descriptor.c:555
#1  0x00007fffc82f86f1 in ?? () from /usr/lib/x86_64-linux-gnu/libgphoto2_port/0.8.0/usb1.so
#2  0x00007ffff64b3f07 in gp_port_usb_find_device_by_class () from /usr/lib/x86_64-linux-gnu/libgphoto2_port.so.0
#3  0x00007ffff66bfcb9 in gp_abilities_list_detect () from /usr/lib/x86_64-linux-gnu/libgphoto2.so.2
#4  0x000000000054328f in camera_table_update_camera_table (self=self at entry=0x16a2f70, error=error at entry=0x7fffffffdba8)
    at src/camera/CameraTable.c:1450
#5  0x0000000000546b00 in camera_table_on_update_cameras (self=<optimized out>) at src/camera/CameraTable.c:2556
#6  _camera_table_on_update_cameras_one_shot_callback (self=<optimized out>) at src/camera/CameraTable.c:452
#7  0x0000000000478b5a in one_shot_scheduler_callback_wrapper (self=0x14e51c0) at src/util/misc.c:1611
#8  _one_shot_scheduler_callback_wrapper_gsource_func (self=0x14e51c0) at src/util/misc.c:1526
#9  0x00007ffff02eda03 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ffff02ecea6 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007ffff02ed1f8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007ffff02ed29c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007ffff0a8c6e4 in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#14 0x000000000068d115 in application_start (self=self at entry=0xa54080, argv=argv at entry=0x0, argv_length1=argv_length1 at entry=0)
    at src/Application.c:528
#15 0x0000000000581e6a in library_exec (mounts=mounts at entry=0xa3dad0, mounts_length1=mounts_length1 at entry=0) at src/main.c:1309
#16 0x0000000000582d49 in _vala_main (args=args at entry=0x7fffffffdfd8, args_length1=args_length1 at entry=1) at src/main.c:1981
#17 0x00000000004745da in main (argc=1, argv=0x7fffffffdfd8) at src/main.c:2059

And logs from libusb after I unplug the camera:

libusbx: debug [linux_get_device_address] getting address for device: 3-1.2 detached: 1
libusbx: debug [udev_hotplug_event] udev hotplug event. action: remove.
libusbx: debug [libusb_init] reusing default context
libusbx: debug [libusb_get_device_list] 
libusbx: debug [libusb_get_device_descriptor] 
libusbx: debug [libusb_get_device_descriptor] 
libusbx: debug [libusb_get_device_descriptor] 
libusbx: debug [libusb_get_device_descriptor] 
libusbx: debug [libusb_get_device_descriptor] 
libusbx: debug [libusb_get_device_descriptor] 
libusbx: debug [libusb_get_device_descriptor] 
libusbx: debug [libusb_get_config_descriptor] index 0
libusbx: debug [libusb_exit] 
libusbx: debug [libusb_exit] not destroying default context
libusbx: debug [libusb_init] libusbx v1.0.17.10830
libusbx: debug [find_usbfs_path] found usbfs at /dev/bus/usb
libusbx: debug [op_init] bulk continuation flag supported
libusbx: debug [op_init] zero length packet flag supported
libusbx: debug [op_init] sysfs can relate devices
libusbx: debug [op_init] sysfs has complete descriptors
libusbx: debug [linux_get_device_address] getting address for device: usb3 detached: 0
libusbx: debug [linux_get_device_address] scan usb3
libusbx: debug [linux_get_device_address] bus=3 dev=1
libusbx: debug [linux_enumerate_device] busnum 3 devaddr 1 session_id 769
libusbx: debug [linux_enumerate_device] allocating new device for 3/1 (session 769)
libusbx: debug [linux_get_device_address] getting address for device: 3-1 detached: 0
libusbx: debug [linux_get_device_address] scan 3-1
libusbx: debug [linux_get_device_address] bus=3 dev=2
libusbx: debug [linux_enumerate_device] busnum 3 devaddr 2 session_id 770
libusbx: debug [linux_enumerate_device] allocating new device for 3/2 (session 770)
libusbx: debug [linux_get_parent_info] Dev 0x2daecf0 (3-1) has parent 0x1b87650 (usb3) port 1
libusbx: debug [linux_get_device_address] getting address for device: 3-1.4 detached: 0
libusbx: debug [linux_get_device_address] scan 3-1.4
libusbx: debug [linux_get_device_address] bus=3 dev=4
libusbx: debug [linux_enumerate_device] busnum 3 devaddr 4 session_id 772
libusbx: debug [linux_enumerate_device] allocating new device for 3/4 (session 772)
libusbx: debug [linux_get_parent_info] Dev 0x1bde080 (3-1.4) has parent 0x2daecf0 (3-1) port 4
libusbx: debug [linux_get_device_address] getting address for device: usb1 detached: 0
libusbx: debug [linux_get_device_address] scan usb1
libusbx: debug [linux_get_device_address] bus=1 dev=1
libusbx: debug [linux_enumerate_device] busnum 1 devaddr 1 session_id 257
libusbx: debug [linux_enumerate_device] allocating new device for 1/1 (session 257)
libusbx: debug [linux_get_device_address] getting address for device: usb2 detached: 0
libusbx: debug [linux_get_device_address] scan usb2
libusbx: debug [linux_get_device_address] bus=2 dev=1
libusbx: debug [linux_enumerate_device] busnum 2 devaddr 1 session_id 513
libusbx: debug [linux_enumerate_device] allocating new device for 2/1 (session 513)
libusbx: debug [linux_get_device_address] getting address for device: usb4 detached: 0
libusbx: debug [linux_get_device_address] scan usb4
libusbx: debug [linux_get_device_address] bus=4 dev=1
libusbx: debug [linux_enumerate_device] busnum 4 devaddr 1 session_id 1025
libusbx: debug [linux_enumerate_device] allocating new device for 4/1 (session 1025)
libusbx: debug [linux_get_device_address] getting address for device: 4-1 detached: 0
libusbx: debug [linux_get_device_address] scan 4-1
libusbx: debug [linux_get_device_address] bus=4 dev=2
libusbx: debug [linux_enumerate_device] busnum 4 devaddr 2 session_id 1026
libusbx: debug [linux_enumerate_device] allocating new device for 4/2 (session 1026)
libusbx: debug [linux_get_parent_info] Dev 0x1b4ca10 (4-1) has parent 0x1bde120 (usb4) port 1
libusbx: debug [usbi_add_pollfd] add fd 37 events 1
libusbx: debug [usbi_add_pollfd] add fd 39 events 1
libusbx: debug [usbi_io_init] using timerfd for timeouts
libusbx: debug [usbi_add_pollfd] add fd 41 events 1
libusbx: debug [libusb_get_device_descriptor] 
libusbx: debug [libusb_get_config_descriptor] index 0
libusbx: debug [libusb_exit] 
libusbx: debug [libusb_unref_device] destroy device 4.2
libusbx: debug [libusb_unref_device] destroy device 4.1
libusbx: debug [libusb_unref_device] destroy device 2.1
libusbx: debug [libusb_unref_device] destroy device 1.1
libusbx: debug [libusb_unref_device] destroy device 3.4
libusbx: debug [libusb_unref_device] destroy device 3.2
libusbx: debug [libusb_unref_device] destroy device 3.1
libusbx: debug [usbi_remove_pollfd] remove fd 37
libusbx: debug [usbi_remove_pollfd] remove fd 39
libusbx: debug [usbi_remove_pollfd] remove fd 41
libusbx: debug [libusb_init] libusbx v1.0.17.10830
libusbx: debug [find_usbfs_path] found usbfs at /dev/bus/usb
libusbx: debug [op_init] bulk continuation flag supported
libusbx: debug [op_init] zero length packet flag supported
libusbx: debug [op_init] sysfs can relate devices
libusbx: debug [op_init] sysfs has complete descriptors
libusbx: debug [linux_get_device_address] getting address for device: usb3 detached: 0
libusbx: debug [linux_get_device_address] scan usb3
libusbx: debug [linux_get_device_address] bus=3 dev=1
libusbx: debug [linux_enumerate_device] busnum 3 devaddr 1 session_id 769
libusbx: debug [linux_enumerate_device] allocating new device for 3/1 (session 769)
libusbx: debug [linux_get_device_address] getting address for device: 3-1 detached: 0
libusbx: debug [linux_get_device_address] scan 3-1
libusbx: debug [linux_get_device_address] bus=3 dev=2
libusbx: debug [linux_enumerate_device] busnum 3 devaddr 2 session_id 770
libusbx: debug [linux_enumerate_device] allocating new device for 3/2 (session 770)
libusbx: debug [linux_get_parent_info] Dev 0x1b4cab0 (3-1) has parent 0x1b4ca10 (usb3) port 1
libusbx: debug [linux_get_device_address] getting address for device: 3-1.4 detached: 0
libusbx: debug [linux_get_device_address] scan 3-1.4
libusbx: debug [linux_get_device_address] bus=3 dev=4
libusbx: debug [linux_enumerate_device] busnum 3 devaddr 4 session_id 772
libusbx: debug [linux_enumerate_device] allocating new device for 3/4 (session 772)
libusbx: debug [linux_get_parent_info] Dev 0x2daecf0 (3-1.4) has parent 0x1b4cab0 (3-1) port 4
libusbx: debug [linux_get_device_address] getting address for device: usb1 detached: 0
libusbx: debug [linux_get_device_address] scan usb1
libusbx: debug [linux_get_device_address] bus=1 dev=1
libusbx: debug [linux_enumerate_device] busnum 1 devaddr 1 session_id 257
libusbx: debug [linux_enumerate_device] allocating new device for 1/1 (session 257)
libusbx: debug [linux_get_device_address] getting address for device: usb2 detached: 0
libusbx: debug [linux_get_device_address] scan usb2
libusbx: debug [linux_get_device_address] bus=2 dev=1
libusbx: debug [linux_enumerate_device] busnum 2 devaddr 1 session_id 513
libusbx: debug [linux_enumerate_device] allocating new device for 2/1 (session 513)
libusbx: debug [linux_get_device_address] getting address for device: usb4 detached: 0
libusbx: debug [linux_get_device_address] scan usb4
libusbx: debug [linux_get_device_address] bus=4 dev=1
libusbx: debug [linux_enumerate_device] busnum 4 devaddr 1 session_id 1025
libusbx: debug [linux_enumerate_device] allocating new device for 4/1 (session 1025)
libusbx: debug [linux_get_device_address] getting address for device: 4-1 detached: 0
libusbx: debug [linux_get_device_address] scan 4-1
libusbx: debug [linux_get_device_address] bus=4 dev=2
libusbx: debug [linux_enumerate_device] busnum 4 devaddr 2 session_id 1026
libusbx: debug [linux_enumerate_device] allocating new device for 4/2 (session 1026)
libusbx: debug [linux_get_parent_info] Dev 0x1bde080 (4-1) has parent 0x1bdff20 (usb4) port 1
libusbx: debug [usbi_add_pollfd] add fd 37 events 1
libusbx: debug [usbi_add_pollfd] add fd 39 events 1
libusbx: debug [usbi_io_init] using timerfd for timeouts
libusbx: debug [usbi_add_pollfd] add fd 41 events 1
libusbx: debug [libusb_get_device_descriptor]

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.11.0 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages shotwell depends on:
ii  dbus-x11                        1.6.18-1
ii  libatk1.0-0                     2.10.0-2
ii  libc6                           2.17-93
ii  libcairo-gobject2               1.12.16-2
ii  libcairo2                       1.12.16-2
ii  libexif12                       0.6.21-1
ii  libexiv2-12                     0.23-1
ii  libgdk-pixbuf2.0-0              2.28.2-1
ii  libgee-0.8-2                    0.10.5-1
ii  libgexiv2-2                     0.6.1-2
ii  libglib2.0-0                    2.36.4-1
ii  libgomp1                        4.8.2-1
ii  libgphoto2-2                    2.4.14-2.3
ii  libgphoto2-port0                2.4.14-2.3
ii  libgstreamer-plugins-base1.0-0  1.2.0-1
ii  libgstreamer1.0-0               1.2.0-1
ii  libgtk-3-0                      3.8.6-1
ii  libgudev-1.0-0                  204-5
ii  libjavascriptcoregtk-3.0-0      2.2.1-2
ii  libjson-glib-1.0-0              0.16.2-1
ii  liblcms2-2                      2.2+git20110628-2.3
ii  libpango-1.0-0                  1.36.0-1
ii  libpangocairo-1.0-0             1.36.0-1
ii  libraw9                         0.15.4-1
ii  librest-0.7-0                   0.7.90-1
ii  librsvg2-common                 2.40.0-1
ii  libsoup2.4-1                    2.44.1-1
ii  libsqlite3-0                    3.8.1-1
ii  libstdc++6                      4.8.2-1
ii  libwebkitgtk-3.0-0              2.2.1-2
ii  libx11-6                        2:1.6.2-1
ii  libxml2                         2.9.1+dfsg1-3
ii  shotwell-common                 0.15.0-1

shotwell recommends no packages.

shotwell suggests no packages.

-- no debconf information



More information about the Pkg-shotwell-maint mailing list