Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Mar 2004 10:43:44 -0500
From:      Jason Andresen <jandrese@mitre.org>
To:        freebsd-current@freebsd.org
Subject:   Re: Pan crashing in libgnuregex after -pthread switchover
Message-ID:  <4059C3B0.4080003@mitre.org>
In-Reply-To: <4059B9CD.1010003@openet-telecom.com>
References:  <4058AC1C.10208@mitre.org> <xzpwu5i7s9v.fsf@dwp.des.no> <4059B9CD.1010003@openet-telecom.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Peter Edwards wrote:

> My understanding is that the dynamic linker fills a link_map (see 
> sys/link_elf.h) structure with the mapped name, and gdb grovels for this 
> in the core: it should work correctly on a corefile. Sounds more like 
> libpthread and libc_r are both in-process to me.
> 
> Jason, try "i sh" from gdb to see what libraries were loaded in the 
> process when it dumped.

Ok:

(gdb) i sh
 From        To          Syms Read   Shared Object Library
0x28196940  0x2819bf9c  Yes         /usr/local/lib/libintl.so.6
0x281a0680  0x281a5a98  Yes         /usr/X11R6/lib/libgtkspell.so.0
0x281d0bc0  0x2822cad8  Yes         /usr/local/lib/libaspell.so.15
0x2827b6c0  0x28412fb8  Yes         /usr/X11R6/lib/libgtk-x11-2.0.so.200
0x284a6fc0  0x284efb28  Yes         /usr/X11R6/lib/libgdk-x11-2.0.so.200
0x28503d00  0x285050ec  Yes         /usr/X11R6/lib/libXrandr.so.2
0x28508280  0x2850d47c  Yes         /usr/X11R6/lib/libXi.so.6
0x28514c00  0x2852286c  Yes         /usr/local/lib/libatk-1.0.so.400
0x2852b9e0  0x28537e38  Yes         /usr/X11R6/lib/libgdk_pixbuf-2.0.so.200
0x2853e400  0x2854cd4c  Yes         /lib/libm.so.2
0x28559940  0x28573abc  Yes         /usr/X11R6/lib/libpangoxft-1.0.so.200
0x28579880  0x28585cec  Yes         /usr/X11R6/lib/libXft.so.2
0x28595e80  0x285d75fc  Yes         /usr/local/lib/libfreetype.so.9
0x285f1780  0x285f9a5c  Yes         /lib/libz.so.2
0x285ff1c0  0x28603dbc  Yes         /usr/X11R6/lib/libXrender.so.1
0x28607740  0x286111ec  Yes         /usr/X11R6/lib/libXext.so.6
0x2861b0c0  0x2862ea9c  Yes         /usr/X11R6/lib/libfontconfig.so.1
0x2863dc40  0x2864444c  Yes         /usr/X11R6/lib/libpangox-1.0.so.200
0x28656a40  0x286c4a5c  Yes         /usr/X11R6/lib/libX11.so.6
0x28712b00  0x2872951c  Yes         /usr/X11R6/lib/libpango-1.0.so.200
0x287423c0  0x28766abc  Yes         /usr/local/lib/libgobject-2.0.so.200
0x2876fd00  0x28770f3c  Yes         /usr/local/lib/libgmodule-2.0.so.200
0x2877e640  0x287b7ddc  Yes         /usr/local/lib/libglib-2.0.so.200
0x287dc3c0  0x287ef4ac  Yes         /usr/local/lib/libiconv.so.3
0x288e6c40  0x2898e80c  Yes         /usr/local/lib/libxml2.so.5
0x289bfa80  0x289d811c  Yes         /usr/lib/libpthread.so.1
0x289e0300  0x289e193c  Yes         /usr/local/lib/libgthread-2.0.so.200
0x289e87c0  0x289f94ac  Yes         /usr/local/lib/libgnet-2.0.so.0
0x289fd980  0x28a038fc  Yes         /usr/lib/libgnuregex.so.2
0x28a22f80  0x28abcedc  Yes         /lib/libc.so.5
0x28b1db40  0x28b802cc  Yes         /usr/lib/libstdc++.so.4
0x28ba0f80  0x28bb5bac  Yes         /usr/local/lib/libexpat.so.5
0x28bbf7c0  0x28bc077c  Yes 
/usr/X11R6/lib/X11/locale/lib/common/xlcDef.so.2
0x28bc4140  0x28bc919c  Yes         /usr/X11R6/lib/libXcursor.so.1
0x28bcba00  0x28bcc10c  Yes 
/usr/X11R6/lib/pango/1.2.0/modules/pango-basic-xft.so
0x281653c0  0x2817b794  Yes         /libexec/ld-elf.so.1

libc_r doesn't show up at all in the libraries loaded list.  It doesn't 
appear to be a problem with having both libraries loaded.

> Interestingly, from the stack trace, frame 3 shows "re_search" calling 
> into the main application, not a shared library, at the "??" bit (the 
> instruction pointer is in the wrong range for a shared library): It 
> sounds like the application is implementing a function that should 
> probably be resolved from a shared library, and the linker is binding 
> the application version instead of the standard one: that might be an 
> issue.
> 
> (I don't think the regex library ever uses callbacks, which would be the 
> only other reason I can think it'd happen)
> 
> The sysutils/pstack has a good chance of finding the name of the "??" 
> function if you want to run that on the corefile: it takes the dynamic 
> exported functions into account as well as the debug information when 
> finding function names.

The pstack output is a complete mess:

(core file "pan.core"): /usr/X11R6/bin/pan
----------------- thread 0 -----------------
  0x0 ???????? (0, 2, 0, 8182e00, 81c9214, 81c9200)

----------------- thread 1 -----------------
  0x0 ???????? ()

----------------- thread 2 -----------------
  0x0 ???????? (0, 3, 0, 81c9000, 81c9414, 81c9400)

----------------- thread 3 -----------------
  0x0 ???????? (0, 4, 0, 81c9200, 81c9614, 81c9600)

----------------- thread 4 -----------------
  0x0 ???????? (0, 5, 0, 81c9400, 81c9814, 81c9800)
  0xd09ba115 ???????? (81d0000, 0, 0, 0, 0, 0)

----------------- thread 5 -----------------
  0x0 ???????? (0, 6, 0, 81c9600, 81c9a14, 81c9a00)
  0xd09ba115 ???????? (81d0400, 0, 0, 0, 0, 0)

----------------- thread 6 -----------------
  0x0 ???????? (0, 7, 0, 81c9800, 83d9814, 830a400)
  0xd09ba115 ???????? (81d0800, 0, 0, 0, 0, 0)

----------------- thread 7 -----------------
  0x0 ???????? (0, c, 0, af38200, 289da180, 0)
  0xd09ba115 ???????? (83ef000, 0, 0, 0, 0, 0)

----------------- thread 8 -----------------
  0x0 ???????? ()

----------------- thread 9 -----------------
  0x0 ???????? ()

----------------- thread 10 -----------------
  0x0 ???????? ()

----------------- thread 11 -----------------
  0x0 ???????? ()

----------------- thread 12 -----------------
  0x0 ???????? ()

----------------- thread -1 (running) -----------------
  0x289d6e9b ???????? (830a400, b, 83ef2e4, 289d1cb4, 4059b92e, 817b110)
  0x289d0ca7 ???????? (817c000, 817c034, 0, 28a05158, 0, 1)
  0x289cf7bb ???????? (817a390, 289d3714, 817a390, 0, 8181000, 0)
  0x830a400 ???????? (bfa439e8, 0, 0, bfa43a58, 1d, 0)
  0x28a00f26 re_search (bfa439e8, bfa43a58, 1d, 0, 1d, 0) + 56
  0x28a03746 regexec (8aa2220, bfa43a58, 0, 0, 0, 83190f0) + 106
  0x80ba7ca _init (92a18e0, 95aafc8, 3747d, 2879a167, 8183f3c, dd1f4) + 
5a74e
  0x80ba8a2 _init (95aaf9c, ef4e000, 3747d, 80ba6b0, 0, 80fb7fd) + 5a826
  0x80bac54 ensure_articles_scored (95aaf9c, 8bdc000, 3747d, 0, 95aaf9c, 
83e73a0) + 204
  0x806a6f4 _init (95aaf9c, 8bdc000, 3747d, 8236330, 81a8980, 830a448) + 
a678
  0x80d047c group_article_forall (95aaf9c, 806a640, 8236330, 289cca59, 
287da318, 83e73a0) + 8c
  0x806a891 _init (8236330, 83e73a0, 0, 0, 0, 0) + a815
  0x287abca1 g_thread_create_proxy (83e73a0, 0, 0, 202, 1, 289da47c) + 111
  0x289c3bfd ???????? (830a400, 287abb90, 83e73a0, 83ef010, 0, 0)
  0x28aa49b3 _ctx_start (0) + 3




-- 
   \  |_ _|__ __|_ \ __| Jason Andresen        jandrese@mitre.org
  |\/ |  |    |    / _|  Network and Distributed Systems Engineer
_|  _|___|  _| _|_\___| Office: 703-883-7755



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4059C3B0.4080003>