__libc_fork asertion with libc2.3.2.ds1-13 and kernel 2.6.5
Hello,
while dist-upgrading from stable to testing I encounterd the following
problem, also discussed in
http://www.mail-archive.com/debian-glibc@lists.debian.org/msg08274.html
and treated as bug#226688.
Every program using fork() is thrwoing the assertion:
sh: ../nptl/sysdeps/unix/sysv/linux/fork.c:132: __libc_fork: Assertion
`({ __typeof (self->tid) __value; if (sizeof (__value) == 1) asm
volatile ("movb %%gs:%P2,%b0" : "=q" (__value) : "0" (0), "i" (((size_t)
&((struct pthread *)0)->tid))); else if (sizeof (__value) == 4) asm
volatile ("movl %%gs:%P1,%0" : "=r" (__value) : "i" (((size_t) &((struct
pthread *)0)->tid))); else { if (sizeof (__value) != 8) abort (); asm
volatile ("movl %%gs:%P1,%%eax\n\t" "movl %%gs:%P2,%%edx" : "=A"
(__value) : "i" (((size_t) &((struct pthread *)0)->tid)), "i" (((size_t)
&((struct pthread *)0)->tid) + 4)); } __value; }) != ppid' failed.
In another thread about this issue I have read that the output of
LD_DEBUG=all /lib/ld-linux.so.2 --list /bin/bash
could be usefull, so I append it here as well.
For hints about solving this and actually also for hints about how to
recover the actual situation (probably restoring the old versions of the
libs in /lib? But I did this once and the system wasnt respondiong
anylonger) I'm thankful.
Ciao, Frank.
APPENDIX: LD_DEBUG=all /lib/ld-linux.so.2 --list /bin/bash
4782: file=/bin/bash; generating link map
4782: dynamic: 0x080c45fc base: 0x00000000 size: 0x00080a10
4782: entry: 0x080591d0 phdr: 0x08048034 phnum: 6
4782:
4782:
4782: file=libncurses.so.5; needed by /bin/bash
4782: find library=libncurses.so.5; searching
4782: search cache=/etc/ld.so.cache
4782: trying file=/lib/libncurses.so.5
4782:
4782: file=libncurses.so.5; generating link map
4782: dynamic: 0x40040f54 base: 0x40004000 size: 0x0003dc80
4782: entry: 0x40011f40 phdr: 0x40004034 phnum: 3
4782:
4782:
4782: file=libdl.so.2; needed by /bin/bash
4782: find library=libdl.so.2; searching
4782: search cache=/etc/ld.so.cache
4782: trying file=/lib/tls/libdl.so.2
4782:
4782: file=libdl.so.2; generating link map
4782: dynamic: 0x40044e5c base: 0x40042000 size: 0x00003000
4782: entry: 0x40043a90 phdr: 0x40042034 phnum: 7
4782:
4782:
4782: file=libc.so.6; needed by /bin/bash
4782: find library=libc.so.6; searching
4782: search cache=/etc/ld.so.cache
4782: trying file=/lib/tls/libc.so.6
4782:
4782: file=libc.so.6; generating link map
4782: dynamic: 0x4017cdc4 base: 0x40045000 size: 0x0013ac8c
4782: entry: 0x4005a8e0 phdr: 0x40045034 phnum: 9
4782:
4782: checking for version `GLIBC_2.1' in file
/lib/tls/libdl.so.2 required by file /bin/bash
4782: checking for version `GLIBC_2.0' in file
/lib/tls/libdl.so.2 required by file /bin/bash
4782: checking for version `GLIBC_2.1' in file
/lib/tls/libc.so.6 required by file /bin/bash
4782: checking for version `GLIBC_2.2' in file
/lib/tls/libc.so.6 required by file /bin/bash
4782: checking for version `GLIBC_2.0' in file
/lib/tls/libc.so.6 required by file /bin/bash
4782: checking for version `GLIBC_2.1.3' in file
/lib/tls/libc.so.6 required by file /lib/libncurses.so.5
4782: checking for version `GLIBC_2.1' in file
/lib/tls/libc.so.6 required by file /lib/libncurses.so.5
4782: checking for version `GLIBC_2.0' in file
/lib/tls/libc.so.6 required by file /lib/libncurses.so.5
4782: checking for version `GLIBC_2.3' in file
/lib/tls/libc.so.6 required by file /lib/tls/libdl.so.2
4782: checking for version `GLIBC_2.1.3' in file
/lib/tls/libc.so.6 required by file /lib/tls/libdl.so.2
4782: checking for version `GLIBC_2.1' in file
/lib/tls/libc.so.6 required by file /lib/tls/libdl.so.2
4782: checking for version `GLIBC_PRIVATE' in file
/lib/tls/libc.so.6 required by file /lib/tls/libdl.so.2
4782: checking for version `GLIBC_2.0' in file
/lib/tls/libc.so.6 required by file /lib/tls/libdl.so.2
4782: checking for version `GLIBC_PRIVATE' in file
/lib/ld-linux.so.2 required by file /lib/tls/libdl.so.2
4782: checking for version `GLIBC_2.3' in file
/lib/ld-linux.so.2 required by file /lib/tls/libc.so.6
4782: checking for version `GLIBC_2.1' in file
/lib/ld-linux.so.2 required by file /lib/tls/libc.so.6
4782: checking for version `GLIBC_2.0' in file
/lib/ld-linux.so.2 required by file /lib/tls/libc.so.6
4782: checking for version `GLIBC_PRIVATE' in file
/lib/ld-linux.so.2 required by file /lib/tls/libc.so.6
libncurses.so.5 => /lib/libncurses.so.5 (0x40004000)
libdl.so.2 => /lib/tls/libdl.so.2 (0x40042000)
libc.so.6 => /lib/tls/libc.so.6 (0x40045000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000)
Reply to: