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

Re: Crash in fork.c on everything = install hosed

Gary Hennigan wrote:

"Malcolm Box" <malcolm@brownale.demon.co.uk> writes:
OK, that looks like it might fix things.  But can anyone tell me how
to get the new version onto my machine given that both dpkg & apt-get
don't work at the moment?  Is there some way to manually unpack the
files from the .deb into the right places?
I've never done it, but there's nothing magical about *.deb
files. They're simple "ar" archive files, usually containing a
data.tar.gz and control.tar.gz file, among other things. For your
purposes you could try and untar the data.tar.gz file, which would
contain the actually libc binaries and go from there.
Thanks for the hint. Unfortunately, the machine is still losing, even after installing libc6_2.3.2.ds1-9_i386.deb which is the latest. Just to check I've done the right, thing, I did:

ar x libc6_2.3.2.ds1-9_i386.deb
gunzip data.tar.gz
cd /
tar xvf data.tar

all as root. Then ran ldconfig, since this seems to be all that the postinstall scripts do.

But the problem still remains - programs (including all shell scripts :-( ) that attempt to fork result in a: ../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.

And I'm still stuck :-(

Can anyone suggest what other parts of the system I should manually "upgrade" to fix this? Kernel? Binutils? Trouble is of couse that a whole lot of stuff relies on the ability to fork.

Or is there another way to do this - boot from a rescue disk (what rescue disk!) and then point apt at the installed system and get it to fix it?



Reply to: