bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: libc failure


From: Marcus Brinkmann
Subject: Re: libc failure
Date: Mon, 18 Nov 2002 09:28:12 +0100
User-agent: Mutt/1.4i

On Mon, Nov 18, 2002 at 09:26:56AM +0100, Marcus Brinkmann wrote:
> Hi,
> 
> this is a bit more debugging info on the glibc 2.3 release (I will try the
> latest version soon, I just want to send this as long as I am still able to
> reproduce it).  I don't really know how to make sense of this.  I spotted
> that main_arena's next pointer is zero, while the code assumes that the list
> is circular.

Ok, I forgot to include the actual info.

Breakpoint 2, ptmalloc_lock_all () at ../sysdeps/mach/i386/machine-lock.h:52
52        __asm__ __volatile ("xchgl %0, %1"
(gdb) bt full
#0  ptmalloc_lock_all () at ../sysdeps/mach/i386/machine-lock.h:52
        ar_ptr = (struct malloc_state *) 0x0
#1  0x01123b69 in __fork () at ../sysdeps/mach/hurd/fork.c:101
        env = {{__jmpbuf = {18602200, 18837456, 0, 16873976, 16873472, 
17971976},
    __mask_was_saved = 0, __saved_mask = 0}}
        pid = 93340
        i = 1034514604
        err = 91052
        ss = (struct hurd_sigstate * volatile) 0x11f8808
#2  0x08061ff7 in group_member ()
No symbol table info available.
#3  0x08059e16 in group_member ()
No symbol table info available.
#4  0x08058f7a in group_member ()
No symbol table info available.
#5  0x08056711 in group_member ()
No symbol table info available.
#6  0x080562d1 in group_member ()
No symbol table info available.
#7  0x0804cd75 in endgrent () at ../nss/getXXent_r.c:137
No symbol table info available.
#8  0x0804b378 in endgrent () at ../nss/getXXent_r.c:137
No symbol table info available.
#9  0x01099627 in __libc_start_main (main=0x804ad08 <endgrent+192>, argc=1, 
ubp_av=0x0,
    init=0x804a1f0 <_init>, fini=0x1017a08, rtld_fini=0x1123b08 <__fork+152>, 
stack_end=0x11bebc0)
    at ../sysdeps/generic/libc-start.c:144
        ubp_ev = (char **) 0x11bebc0
        result = 0
(gdb) info reg
eax            0x0      0
ecx            0x1123b08        17971976
edx            0x11bebc0        18607040
ebx            0x11bd8d8        18602200
esp            0x10177f0        0x10177f0
ebp            0x1017808        0x1017808
esi            0x11bc0dc        18596060
edi            0x0      0
eip            0x10ecd4b        0x10ecd4b
eflags         0x206    518
cs             0x17     23
ss             0x1f     31
ds             0x1f     31
es             0x1f     31
fs             0x1f     31
gs             0x1f     31
fctrl          0x0      0
fstat          0x0      0
ftag           0x0      0
fiseg          0x0      0
fioff          0x0      0
foseg          0x0      0
fooff          0x0      0
fop            0x0      0
(gdb) x/20i $pc
0x10ecd4b <ptmalloc_lock_all+21>:       mov    $0x1,%eax
0x10ecd50 <ptmalloc_lock_all+26>:       xchg   %eax,0x2118(%ebx)
0x10ecd56 <ptmalloc_lock_all+32>:       test   %eax,%eax
0x10ecd58 <ptmalloc_lock_all+34>:       je     0x10ecd6c <ptmalloc_lock_all+54>
0x10ecd5a <ptmalloc_lock_all+36>:       sub    $0xc,%esp
0x10ecd5d <ptmalloc_lock_all+39>:       lea    0x2118(%ebx),%eax
0x10ecd63 <ptmalloc_lock_all+45>:       push   %eax
0x10ecd64 <ptmalloc_lock_all+46>:       call   0x1074fd8 <key+104000>
0x10ecd69 <ptmalloc_lock_all+51>:       add    $0x10,%esp
0x10ecd6c <ptmalloc_lock_all+54>:       lea    0x1c68(%ebx),%edi
0x10ecd72 <ptmalloc_lock_all+60>:       mov    $0x1,%esi
0x10ecd77 <ptmalloc_lock_all+65>:       mov    %esi,%eax
0x10ecd79 <ptmalloc_lock_all+67>:       xchg   %eax,(%edi)
0x10ecd7b <ptmalloc_lock_all+69>:       test   %eax,%eax
0x10ecd7d <ptmalloc_lock_all+71>:       je     0x10ecd8b <ptmalloc_lock_all+85>
0x10ecd7f <ptmalloc_lock_all+73>:       sub    $0xc,%esp
0x10ecd82 <ptmalloc_lock_all+76>:       push   %edi
0x10ecd83 <ptmalloc_lock_all+77>:       call   0x1074fd8 <key+104000>
0x10ecd88 <ptmalloc_lock_all+82>:       add    $0x10,%esp
0x10ecd8b <ptmalloc_lock_all+85>:       mov    0x46c(%edi),%edi
(gdb) x/20i ptmalloc_lock_all
0x10ecd36 <ptmalloc_lock_all>:  push   %ebp
0x10ecd37 <ptmalloc_lock_all+1>:        mov    %esp,%ebp
0x10ecd39 <ptmalloc_lock_all+3>:        push   %edi
0x10ecd3a <ptmalloc_lock_all+4>:        push   %esi
0x10ecd3b <ptmalloc_lock_all+5>:        push   %ebx
0x10ecd3c <ptmalloc_lock_all+6>:        sub    $0xc,%esp
0x10ecd3f <ptmalloc_lock_all+9>:        call   0x10ecd44 <ptmalloc_lock_all+14>
0x10ecd44 <ptmalloc_lock_all+14>:       pop    %ebx
0x10ecd45 <ptmalloc_lock_all+15>:       add    $0xd0b94,%ebx
0x10ecd4b <ptmalloc_lock_all+21>:       mov    $0x1,%eax
(gdb) print list_lock
$16 = {held = 0, lock = 0, name = 0x0, queue = {head = 0x0, tail = 0x0}, holder 
= 0x0}
(gdb) print &list_lock
$17 = (struct mutex *) 0x11bf9f0
(gdb) print main_arena
$18 = {mutex = {held = 0, lock = 0, name = 0x0, queue = {head = 0x0, tail = 
0x0}, holder = 0x0},
  stat_lock_direct = 0, stat_lock_loop = 0, stat_lock_wait = 0, pad0_ = {0}, 
max_fast = 0,
  fastbins = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, top = 0x0, 
last_remainder = 0x0,
  bins = {0x0 <repeats 256 times>}, binmap = {0, 0, 0, 0}, next = 0x0, 
system_mem = 0,
  max_system_mem = 0}
(gdb) print &main_arena
$19 = (struct malloc_state *) 0x11bf540
(gdb) print ar_ptr
$20 = (struct malloc_state *) 0x0
(gdb) print main_arena.next
$21 = (struct malloc_state *) 0x0
(gdb)

> When I started to stepi through the code, it first took the list lock, then
> the main arena's mutex, and then it got:
> 
> (gdb) stepi
> 
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> 0x010ecd79 in ptmalloc_lock_all () at ../sysdeps/mach/i386/machine-lock.h:52
> 52        __asm__ __volatile ("xchgl %0, %1"
> 
> when trying to lock main_arena.next (which was 0).

-- 
`Rhubarb is no Egyptian god.' GNU      http://www.gnu.org    marcus@gnu.org
Marcus Brinkmann              The Hurd http://www.gnu.org/software/hurd/
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]