Bug#586665: Better backtrace

2011-03-25 Thread Sam Morris
Version: 1.0.21-9

According to
http://stackoverflow.com/questions/2702628/gdb-cannot-find-new-threads-generic-error,
the gdb problems are caused by scanimage's use of libpthreads.so.0 via
dlopen. Workaround that gives a much better backtrace:

$ SANE_DEBUG_DLL=3 LD_PRELOAD=/lib/libpthread.so.0 gdb --args scanimage -L
Reading symbols from /usr/bin/scanimage...(no debugging symbols found)...done.

(gdb) r
Starting program: /usr/bin/scanimage -L
[Thread debugging using libthread_db enabled]
[sanei_debug] Setting debug level of dll to 3.
[dll] sane_init: SANE dll backend version 1.0.12 from sane-backends 1.0.21
[dll] add_backend: adding backend `ls5000'
[dll] add_backend: adding backend `hpaio'
[dll] add_backend: adding backend `net'
[dll] add_backend: adding backend `abaton'
[dll] add_backend: adding backend `agfafocus'
[dll] add_backend: adding backend `apple'
[dll] add_backend: adding backend `avision'
[dll] add_backend: adding backend `artec'
[dll] add_backend: adding backend `artec_eplus48u'
[dll] add_backend: adding backend `as6e'
[dll] add_backend: adding backend `bh'
[dll] add_backend: adding backend `canon'
[dll] add_backend: adding backend `canon630u'
[dll] add_backend: adding backend `canon_dr'
[dll] add_backend: adding backend `cardscan'
[dll] add_backend: adding backend `coolscan'
[dll] add_backend: adding backend `coolscan3'
[dll] add_backend: adding backend `dell1600n_net'
[dll] add_backend: adding backend `dmc'
[dll] add_backend: adding backend `epjitsu'
[dll] add_backend: adding backend `epson2'
[dll] add_backend: adding backend `fujitsu'
[dll] add_backend: adding backend `genesys'
[dll] add_backend: adding backend `gt68xx'
[dll] add_backend: adding backend `hp'
[dll] add_backend: adding backend `hp3900'
[dll] add_backend: adding backend `hpsj5s'
[dll] add_backend: adding backend `hp3500'
[dll] add_backend: adding backend `hp4200'
[dll] add_backend: adding backend `hp5400'
[dll] add_backend: adding backend `hp5590'
[dll] add_backend: adding backend `hpljm1005'
[dll] add_backend: adding backend `hs2p'
[dll] add_backend: adding backend `ibm'
[dll] add_backend: adding backend `kodak'
[dll] add_backend: adding backend `kvs1025'
[dll] add_backend: adding backend `leo'
[dll] add_backend: adding backend `lexmark'
[dll] add_backend: adding backend `ma1509'
[dll] add_backend: adding backend `matsushita'
[dll] add_backend: adding backend `microtek'
[dll] add_backend: adding backend `microtek2'
[dll] add_backend: adding backend `mustek'
[dll] add_backend: adding backend `mustek_usb'
[dll] add_backend: adding backend `mustek_usb2'
[dll] add_backend: adding backend `nec'
[dll] add_backend: adding backend `niash'
[dll] add_backend: adding backend `pie'
[dll] add_backend: adding backend `pixma'
[dll] add_backend: adding backend `plustek'
[dll] add_backend: adding backend `qcam'
[dll] add_backend: adding backend `ricoh'
[dll] add_backend: adding backend `rts8891'
[dll] add_backend: adding backend `s9036'
[dll] add_backend: adding backend `sceptre'
[dll] add_backend: adding backend `sharp'
[dll] add_backend: adding backend `sm3600'
[dll] add_backend: adding backend `sm3840'
[dll] add_backend: adding backend `snapscan'
[dll] add_backend: adding backend `sp15c'
[dll] add_backend: adding backend `tamarack'
[dll] add_backend: adding backend `teco1'
[dll] add_backend: adding backend `teco2'
[dll] add_backend: adding backend `teco3'
[dll] add_backend: adding backend `u12'
[dll] add_backend: adding backend `umax'
[dll] add_backend: adding backend `umax1220u'
[dll] add_backend: adding backend `v4l'
[dll] add_backend: adding backend `xerox_mfp'
[dll] sane_get_devices
[dll] load: searching backend `xerox_mfp' in `/usr/lib/sane'
[dll] load: dlopen()ing `/usr/lib/sane/libsane-xerox_mfp.so.1'
[dll] init: initializing backend `xerox_mfp'
[dll] load: searching backend `v4l' in `/usr/lib/sane'
[dll] load: dlopen()ing `/usr/lib/sane/libsane-v4l.so.1'
[dll] init: initializing backend `v4l'
[dll] load: searching backend `umax1220u' in `/usr/lib/sane'
[dll] load: dlopen()ing `/usr/lib/sane/libsane-umax1220u.so.1'
[dll] init: initializing backend `umax1220u'
[dll] load: searching backend `umax' in `/usr/lib/sane'
[dll] load: dlopen()ing `/usr/lib/sane/libsane-umax.so.1'
[dll] init: initializing backend `umax'
[dll] load: searching backend `u12' in `/usr/lib/sane'
[dll] load: dlopen()ing `/usr/lib/sane/libsane-u12.so.1'
[dll] init: initializing backend `u12'
[dll] load: searching backend `teco3' in `/usr/lib/sane'
[dll] load: dlopen()ing `/usr/lib/sane/libsane-teco3.so.1'
[dll] init: initializing backend `teco3'
[dll] load: searching backend `teco2' in `/usr/lib/sane'
[dll] load: dlopen()ing `/usr/lib/sane/libsane-teco2.so.1'
[dll] init: initializing backend `teco2'
[dll] load: searching backend `teco1' in `/usr/lib/sane'
[dll] load: dlopen()ing `/usr/lib/sane/libsane-teco1.so.1'
[dll] init: initializing backend `teco1'
[dll] load: searching backend `tamarack' in `/usr/lib/sane'
[dll] load: dlopen()ing 

Bug#586665: Better backtrace

2011-03-25 Thread Julien BLACHE
Sam Morris s...@robots.org.uk wrote:

Hi Sam,

 [dll] sane_exit: calling backend `net's exit function

 Program received signal SIGSEGV, Segmentation fault.
 [Switching to Thread 0x7fffeca0a700 (LWP 18984)]
 0x7fffeca2fe91 in ?? () from /usr/lib/libdbus-1.so.3

 (gdb) where
 #0  0x7fffeca2fe91 in ?? () from /usr/lib/libdbus-1.so.3
 #1  0x7fffeca1a22a in dbus_connection_dispatch () from 
 /usr/lib/libdbus-1.so.3
 #2  0x7fffecc558b6 in dispatch_timeout_callback (t=value optimized out, 
 userdata=0x6577c0) at ../avahi-common/dbus-watch-glue.c:107
 #3  0x7fffece619c8 in avahi_simple_poll_dispatch (s=0x657090) at 
 simple-watch.c:562
 #4  0x7fffece61f5d in avahi_simple_poll_loop (s=0x657090) at 
 simple-watch.c:638
 #5  0x7fffece62aae in thread (userdata=0x657040) at thread-watch.c:73
 #6  0x77bc98ba in start_thread (arg=value optimized out) at 
 pthread_create.c:300
 #7  0x7752602d in clone () at 
 ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

Very interesting. It's the Avahi poll thread that is crashing when the
net backend exits.

Does it still happen if you disable the hpaio backend (I'm asking
because this backend also uses DBus)? Does it still happen if only the
net backend is enabled?

JB.

-- 
 Julien BLACHE - Debian  GNU/Linux Developer - jbla...@debian.org 
 
 Public key available on http://www.jblache.org - KeyID: F5D6 5169 
 GPG Fingerprint : 935A 79F1 C8B3 3521 FD62 7CC7 CD61 4FD7 F5D6 5169 



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#586665: Better backtrace

2011-03-25 Thread Sam Morris
On Fri, Mar 25, 2011 at 05:43:06PM +0100, Julien BLACHE wrote:
 Sam Morris s...@robots.org.uk wrote:
 
 Hi Sam,
 
  [dll] sane_exit: calling backend `net's exit function
 
  Program received signal SIGSEGV, Segmentation fault.
  [Switching to Thread 0x7fffeca0a700 (LWP 18984)]
  0x7fffeca2fe91 in ?? () from /usr/lib/libdbus-1.so.3
 
  (gdb) where
  #0  0x7fffeca2fe91 in ?? () from /usr/lib/libdbus-1.so.3
  #1  0x7fffeca1a22a in dbus_connection_dispatch () from 
  /usr/lib/libdbus-1.so.3
  #2  0x7fffecc558b6 in dispatch_timeout_callback (t=value optimized 
  out, userdata=0x6577c0) at ../avahi-common/dbus-watch-glue.c:107
  #3  0x7fffece619c8 in avahi_simple_poll_dispatch (s=0x657090) at 
  simple-watch.c:562
  #4  0x7fffece61f5d in avahi_simple_poll_loop (s=0x657090) at 
  simple-watch.c:638
  #5  0x7fffece62aae in thread (userdata=0x657040) at thread-watch.c:73
  #6  0x77bc98ba in start_thread (arg=value optimized out) at 
  pthread_create.c:300
  #7  0x7752602d in clone () at 
  ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
 
 Very interesting. It's the Avahi poll thread that is crashing when the
 net backend exits.
 
 Does it still happen if you disable the hpaio backend (I'm asking
 because this backend also uses DBus)? Does it still happen if only the
 net backend is enabled?

I ran a few more tests and the backtrace alternated between the one you
quoted above, and one that crashed in hpaio's exit function. Disabling
'net' got rid of the crash. I then upgraded libavahi-client3 to version
0.6.27-2+squeeze1 which seems to have resolved the bug.

I don't know whether the real bug was in Avahi, or Sane's use of Avahi;
however since this seems to be solved in squeeze, I'll close this bug in
a few days if I can no longer reproduce the crash at all.
 
 JB.

-- 
Regards,
Sam



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#586665: Better backtrace

2011-03-25 Thread Julien BLACHE
Sam Morris s...@robots.org.uk wrote:

Hi Sam,

 I ran a few more tests and the backtrace alternated between the one you
 quoted above, and one that crashed in hpaio's exit function. Disabling

Aha, interesting, exactly what I suspected. It may have to do with
having several DBus connections in the same process.

 'net' got rid of the crash. I then upgraded libavahi-client3 to version
 0.6.27-2+squeeze1 which seems to have resolved the bug.

I don't see why it would fix this issue, but if it does, I'm certainly
fine with this :)

JB.

-- 
 Julien BLACHE - Debian  GNU/Linux Developer - jbla...@debian.org 
 
 Public key available on http://www.jblache.org - KeyID: F5D6 5169 
 GPG Fingerprint : 935A 79F1 C8B3 3521 FD62 7CC7 CD61 4FD7 F5D6 5169 



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org