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

__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: