Pan crashing in libgnuregex after -pthread switchover

From: Jason Andresen <jandrese_at_mitre.org>
Date: Wed, 17 Mar 2004 14:50:52 -0500
I've been unable to get Pan to run after switching over to -pthread.  It 
used to be rock solid with -lc_r.

The backtrace suggests its a problem with libgnuregex, but I've tried 
recompiling and it doesn't help:

(gdb) bt
#0  0x289d6e9b in pthread_testcancel () from /usr/lib/libpthread.so.1
#1  0x289d0ca7 in pthread_mutexattr_init () from /usr/lib/libpthread.so.1
#2  0x289cf7bb in pthread_mutexattr_init () from /usr/lib/libpthread.so.1
#3  0x08182000 in ?? ()
#4  0x28a00f26 in re_search () from /usr/lib/libgnuregex.so.2
#5  0x28a03746 in regexec () from /usr/lib/libgnuregex.so.2
#6  0x080ba7ca in score_add ()
#7  0x080ba8a2 in score_add ()
#8  0x080bac54 in ensure_articles_scored ()
#9  0x0806a6f4 in articlelist_refresh ()
#10 0x080d047c in group_article_forall ()
#11 0x0806a891 in articlelist_refresh ()
#12 0x287abca1 in g_thread_create_proxy ()
    from /usr/local/lib/libglib-2.0.so.200
#13 0x289c3bfd in pthread_create () from /usr/lib/libpthread.so.1
#14 0x28aa49b3 in _ctx_start () from /lib/libc.so.5

The annoying thing is that I tried to map pan to use libc_r by adding 
the following lines to libmap.conf:

[/usr/X11R6/bin/pan]
libpthread.so.1         libc_r.so.5
libpthread.so           libc_r.so

And ldd seems to think that I did it right:

/usr/X11R6/bin/pan:
         libintl.so.6 => /usr/local/lib/libintl.so.6 (0x28194000)
         libgtkspell.so.0 => /usr/X11R6/lib/libgtkspell.so.0 (0x2819d000)
         libaspell.so.15 => /usr/local/lib/libaspell.so.15 (0x281a7000)
         libgtk-x11-2.0.so.200 => /usr/X11R6/lib/libgtk-x11-2.0.so.200 
(0x2823f00
0)
         libgdk-x11-2.0.so.200 => /usr/X11R6/lib/libgdk-x11-2.0.so.200 
(0x2849300
0)
         libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0x28502000)
         libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x28506000)
         libatk-1.0.so.400 => /usr/local/lib/libatk-1.0.so.400 (0x2850e000)
         libgdk_pixbuf-2.0.so.200 => 
/usr/X11R6/lib/libgdk_pixbuf-2.0.so.200 (0x2
8528000)
         libm.so.2 => /lib/libm.so.2 (0x2853b000)
         libpangoxft-1.0.so.200 => /usr/X11R6/lib/libpangoxft-1.0.so.200 
(0x28554
000)
         libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0x28575000)
         libfreetype.so.9 => /usr/local/lib/libfreetype.so.9 (0x28587000)
         libz.so.2 => /lib/libz.so.2 (0x285ef000)
         libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x285fd000)
         libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x28604000)
         libfontconfig.so.1 => /usr/X11R6/lib/libfontconfig.so.1 
(0x28612000)
         libpangox-1.0.so.200 => /usr/X11R6/lib/libpangox-1.0.so.200 
(0x28639000)
         libgobject-2.0.so.200 => /usr/local/lib/libgobject-2.0.so.200 
(0x2873b00
0)
         libgmodule-2.0.so.200 => /usr/local/lib/libgmodule-2.0.so.200 
(0x2876e00
0)
         libglib-2.0.so.200 => /usr/local/lib/libglib-2.0.so.200 
(0x28772000)
         libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x287da000)
         libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x288c8000)
         libpthread.so.1 => /usr/lib/libc_r.so.5 (0x289ba000)
         libgthread-2.0.so.200 => /usr/local/lib/libgthread-2.0.so.200

[Acres of ldd output snipped, available upon request.  All of the 
threaded libraries show libpthread.so.1 => /usr/lib/libc_r.so.5 though.]


It seems to me that every libpthread.so.1 maps to a libc_r.so.5, but 
when I actually run pan it still crashes and shows libpthread in the 
backtrace.  Does anybody have a clue as to what is going on here?  I'm 
reluctant to ask the Pan guys because this looks like a FreeBSD problem 
to me.

-- 
   \  |_ _|__ __|_ \ __| Jason Andresen        jandrese_at_mitre.org
  |\/ |  |    |    / _|  Network and Distributed Systems Engineer
_|  _|___|  _| _|_\___| Office: 703-883-7755
Received on Wed Mar 17 2004 - 10:51:02 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:47 UTC