Crash downloading from Cobalt 2 from Subsurface mobile

Dirk Hohndel dirk at hohndel.org
Wed Aug 8 16:40:21 PDT 2018


On Wed, Aug 08, 2018 at 06:17:51PM -0500, Matt Thompson wrote:
> On Wed, Aug 8, 2018 at 5:23 PM Dirk Hohndel <dirk at hohndel.org> wrote:
> > Not a problem - you are simply reminding me that I need to fix this in our
> > output :-)
> >
> Probably would be good to modify the dive computer dialog to not show the
> connection type combo box too...  I mean, as long as you are in there... :D

Not showing it is a bit awkward. Instead it now switches to "USB device"
and can't be changed. This is in the androidIntent branch.

> > Do you have access to adb on a computer? If you can connect to the Cobalt,
> > trigger the crash, then connect to a computer and run 'adb logcat' we
> > should be able to see a backtrace. That might help us figure out what's
> > wrong.
>
> Done.  It looks like it is hitting an assert in libusb after it figures
> out there is nothing to do and is trying to close the usb device.

> 08-08 18:00:18.795 7181-11826/? D//data/android/subsurface/qt-models/messagehandlermodel.cpp: INFO: "19.669: Dive 1: Sun Apr 15, 2018 1:07 PM"
>     INFO: "19.669: Already downloaded dive at Sun Apr 15, 2018 1:07 PM"
> 08-08 18:00:18.796 7181-11826/? D/libusb: [ 0.044729] [00002e32] libusb: debug [libusb_release_interface] interface 0
>     [ 0.044806] [00002e32] libusb: debug [libusb_close] 
>     [ 0.044833] [00002e32] libusb: debug [usbi_remove_pollfd] remove fd 74
>     [ 0.044869] [00002e32] libusb: debug [libusb_exit] 
>     [ 0.044881] [00002e32] libusb: debug [libusb_exit] destroying default context
>     [ 0.044894] [00002e32] libusb: debug [libusb_get_next_timeout] no URBs, no timeout!
>     [ 0.044905] [00002e32] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
>     [ 0.044918] [00002e32] libusb: debug [handle_events] poll fds modified, reallocating
>     [ 0.044937] [00002e32] libusb: debug [handle_events] poll() 1 fds with timeout in 0ms
>     [ 0.044954] [00002e32] libusb: debug [handle_events] poll() returned 0
>     [ 0.044966] [00002e32] libusb: debug [libusb_unref_device] destroy device 2.1
>     [ 0.044980] [00002e32] libusb: debug [libusb_unref_device] destroy device 1.2
>     [ 0.044991] [00002e32] libusb: debug [libusb_unref_device] destroy device 1.1
>     [ 0.045003] [00002e32] libusb: debug [usbi_remove_pollfd] remove fd 67
> 08-08 18:00:18.796 7181-11826/? A/libc: ../../libusb/libusb/os/linux_usbfs.c:500: op_exit: assertion "init_count != 0" failed
> 08-08 18:00:18.797 7181-11826/? A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 11826 (QtThread), pid 7181 (edivelog.mobile)

OK, I think I understand why this crashes... now I need to figure out if
this assert just protects an action that otherwise would be invalid, or if
it really points to something catastrophic...

/D



More information about the subsurface mailing list