Still problems with GPGME with multithread
Laurent Cheylus
foxy@free.fr
Tue Apr 1 14:04:07 2003
Hi,
I am working with Albrecht Dress on GPG support for Balsa MUA (see his
message on gnupg-devel list posted the 03/03/27).
I have also problems with GPGME 0.3.15 in a multithread app (Balsa) On
a Mandrake 8.2 (Linux distribution) with glib 2.2.4 and gcc 2.96, after
a call to 'gpgme_op_verify', my app hangs.
gdb output is :
(gdb) bt
#0 0x401b7344 in read () from /lib/libc.so.6
#1 0x410408d8 in __DTOR_END__ () from /usr/local/lib/libgpgme.so.6
#2 0x4103b5e0 in _gpgme_io_read (fd=23, buffer=0xbffff340, count=79) at
posix-io.c:56
#3 0x4103d19d in _gpgme_get_program_version (path=0x4103ec47
"/usr/bin/gpg") at version.c:248
#4 0x4103819d in _gpgme_gpg_get_version () at rungpg.c:229
#5 0x41037555 in _gpgme_engine_get_version
(proto=GPGME_PROTOCOL_OpenPGP) at engine.c:78
#6 0x410377a2 in _gpgme_engine_new (proto=GPGME_PROTOCOL_OpenPGP,
r_engine=0x824ef5c)
at engine.c:172
#7 0x41030cd8 in _gpgme_op_reset (ctx=0x824ef48, type=1) at
op-support.c:44
#8 0x410322b4 in _gpgme_op_verify_start (ctx=0x824ef48, synchronous=1,
sig=0x824f038,
text=0x824f000) at verify.c:372
#9 0x41032442 in gpgme_op_verify (ctx=0x824ef48, sig=0x824f038,
text=0x824f000, r_stat=0xbffff4f0)
at verify.c:485
#10 0x080b3a8d in libbalsa_gpg_sign_verify [...]
I test to modify the link order ('-lpthread' before '-lgpgme' at
compilation) as described in a precedent thread (Albrecht's solution).
But for me, it doesn't solve the issue :-(
ldd output is :
fox@teapot:~/balsa-1.4.2-devel> ldd src/balsa
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40024000)
libpspell.so.4 => /usr/lib/libpspell.so.4 (0x40051000)
libltdl.so.3 => /usr/lib/libltdl.so.3 (0x40074000)
libpspell-modules.so.1 => /usr/lib/libpspell-modules.so.1 (0x4007c000)
libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3
(0x4007e000)
libesmtp.so.5 => /usr/lib/libesmtp.so.5 (0x400cb000)
libc.so.6 => /lib/libc.so.6 (0x400d9000)
libgnomevfs.so.0 => /usr/lib/libgnomevfs.so.0 (0x40215000)
libssl.so.0 => /usr/lib/libssl.so.0 (0x40248000)
libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x40276000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40331000)
librt.so.1 => /lib/librt.so.1 (0x40347000)
libgthread-1.2.so.0 => /usr/lib/libgthread-1.2.so.0 (0x40358000)
libgtkhtml.so.20 => /usr/lib/libgtkhtml.so.20 (0x4035b000)
libbonobo.so.2 => /usr/lib/libbonobo.so.2 (0x403e2000)
libbonobox.so.2 => /usr/lib/libbonobox.so.2 (0x40446000)
libgal.so.19 => /usr/lib/libgal.so.19 (0x404a6000)
libgnomeprint.so.15 => /usr/lib/libgnomeprint.so.15 (0x405a7000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x40a13000)
libglade-gnome.so.0 => /usr/lib/libglade-gnome.so.0 (0x40a54000)
libglade.so.0 => /usr/lib/libglade.so.0 (0x40a64000)
libxml.so.1 => /usr/lib/libxml.so.1 (0x40a7e000)
libz.so.1 => /lib/libz.so.1 (0x40b08000)
libgdk_pixbuf.so.2 => /usr/lib/libgdk_pixbuf.so.2 (0x40b17000)
libgnomecanvaspixbuf.so.1 => /usr/lib/libgnomecanvaspixbuf.so.1
(0x40b2d000)
libgnomeui.so.32 => /usr/lib/libgnomeui.so.32 (0x40b31000)
libart_lgpl.so.2 => /usr/lib/libart_lgpl.so.2 (0x40c18000)
libgdk_imlib.so.1 => /usr/lib/libgdk_imlib.so.1 (0x40c2a000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40c51000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40c5a000)
libgnome.so.32 => /usr/lib/libgnome.so.32 (0x40c71000)
libgnomesupport.so.0 => /usr/lib/libgnomesupport.so.0 (0x40c8a000)
libesd.so.0 => /usr/lib/libesd.so.0 (0x40c8f000)
libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0x40c97000)
libdb.so.2 => /usr/lib/libdb.so.2 (0x40cbb000)
libgconf-gtk-1.so.1 => /usr/lib/libgconf-gtk-1.so.1 (0x40cc9000)
libgconf-1.so.1 => /usr/lib/libgconf-1.so.1 (0x40cd0000)
liboaf.so.0 => /usr/lib/liboaf.so.0 (0x40d0a000)
libpopt.so.0 => /lib/libpopt.so.0 (0x40d23000)
libORBitCosNaming.so.0 => /usr/lib/libORBitCosNaming.so.0 (0x40d2b000)
libORBit.so.0 => /usr/lib/libORBit.so.0 (0x40d33000)
libIIOP.so.0 => /usr/lib/libIIOP.so.0 (0x40d6e000)
libORBitutil.so.0 => /usr/lib/libORBitutil.so.0 (0x40d7d000)
libgtk-1.2.so.0 => /usr/lib/libgtk-1.2.so.0 (0x40d7f000)
libgdk-1.2.so.0 => /usr/lib/libgdk-1.2.so.0 (0x40ec2000)
libgmodule-1.2.so.0 => /usr/lib/libgmodule-1.2.so.0 (0x40efc000)
libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 (0x40eff000)
libdl.so.2 => /lib/libdl.so.2 (0x40f25000)
libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40f28000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40f30000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40f3f000)
libm.so.6 => /lib/libm.so.6 (0x41007000)
libgpgme.so.6 => /usr/local/lib/libgpgme.so.6 (0x41029000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Can you help to solve this problem or give some clues to do a better
analysis of this bug ?
Thx, Foxy.
--
Laurent Cheylus <foxy@free.fr> OpenPGP ID 0x5B766EC2