libthr, libpthread problems

From: Michael Bretterklieber (mbretter_at_a-quadrat.at)
Date: 04/29/04

  • Next message: Rory Arms: "panics with 5.2.1 on single processor on dual motherboard"
    Date: Thu, 29 Apr 2004 17:49:49 +0200
    To: current@FreeBSD.org
    
    

    Hi,

    currently I'm testing Mpd-4 on -current and It ran into deadlock,
    therefore I changed the lib mapping via libmap.conf. When using libc_r
    everything is ok, when using libpthread a deadlock occurs under some
    circumstances, when using libthr, then:

    elvis:/home/mbretter/mpd/src# ./mpd
    Multi-link PPP for FreeBSD, by Archie L. Cobbs.
    Based on iij-ppp, by Toshiharu OHNO.
    The mutex recurse count cannot be less than zero
    Abnormal termination, file: /usr/src/lib/libthr/thread/thr_mutex.c,
    line: 677
    Abort trap (core dumped)

    #0 0x282dd48b in thr_kill () from /lib/libc.so.5
    (gdb) bt
    #0 0x282dd48b in thr_kill () from /lib/libc.so.5
    #1 0x28287e9f in _pthread_kill (pthread=0x808e000, sig=6)
         at /usr/src/lib/libthr/thread/thr_sig.c:94
    #2 0x28287aab in _raise (sig=6)
         at /usr/src/lib/libthr/thread/thr_syscalls.c:282
    #3 0x2833ff4f in abort () from /lib/libc.so.5
    #4 0x2828a9bf in mutex_unlock_common (mutex=0x281460b0, add_reference=0)
         at /usr/src/lib/libthr/thread/thr_mutex.c:712
    #5 0x2828a664 in __pthread_mutex_unlock (mutex=0x281460b0)
         at /usr/src/lib/libthr/thread/thr_mutex.c:587
    #6 0x28127251 in typed_mem_realloc () from /usr/local/lib/libpdel.so.0
    #7 0x281275b2 in typed_mem_strdup () from /usr/local/lib/libpdel.so.0
    #8 0x28127672 in typed_mem_vasprintf () from /usr/local/lib/libpdel.so.0
    #9 0x2812b4b1 in valog () from /usr/local/lib/libpdel.so.0
    #10 0x0806b610 in vlogprintf (fmt=0x0, ap=0x0) at log.c:516
    #11 0x0806af9e in LogPrintf (fmt=0x80824c0 "mpd: pid %lu, version %s")
         at log.c:273
    #12 0x0806ba56 in Greetings () at main.c:249
    #13 0x0806b71a in main (ac=-1077941372, av=0xbfbfecf0) at main.c:159
    #14 0x0804b23e in _start ()

    any ideas, is this a bug in the application itself or libthr specific?

    If I'm using libpthread, then it works, but sometimes Mpd gets
    deadlocked (after terminating a thread and acquiring Mpd's internal
    "giant mutex").

    elvis:/home/mbretter/mpd/src# ps -p 7558 -H
       PID TT STAT TIME COMMAND
      7558 p0 SL 0:00.12 ./mpd
      7558 p0 SL 0:00.12 ./mpd
      7558 p0 SL 0:00.12 ./mpd

    and state of the process is "kserel".

    When Using libc_r everything works fine.

    I also tried to attach gdb to the running process (when Mpd was
    deadlocked), but this didn't worked, gdb als gets locked then.

    The machine has installed a -current dated of yesterday, using a non-smp
    kernel.

    bye,

    -- 
    ------------------------------- ----------------------------------
    Michael Bretterklieber          - http://www.bretterklieber.com
    A-Quadrat Automation GmbH       - http://www.a-quadrat.at
    Tel: ++43-(0)3172-41679         - GSM: ++43-(0)699 12861847
    ------------------------------- ----------------------------------
    "...the number of UNIX installations has grown to 10, with more 
    expected..." - Dennis Ritchie and Ken Thompson, June 1972
    _______________________________________________
    freebsd-current@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-current
    To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
    

  • Next message: Rory Arms: "panics with 5.2.1 on single processor on dual motherboard"

    Relevant Pages

    • Re: how to find out which thread crashed?
      ... I thought gdb cannot handle threads. ... the 'fork' may fail itself or deadlock. ...
      (comp.programming.threads)
    • Re: Debugging Thread
      ... Can gdb attach to a running process? ... thread is doing once you notice the deadlock. ... Studio), was pretty simple to identify the problem in those cases. ...
      (comp.unix.programmer)