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 10:08:09 +0100
User-agent: Mutt/1.4i

On Mon, Nov 18, 2002 at 09:26:56AM +0100, Marcus Brinkmann wrote:
> When leaving gdb at that point, the sh process (which forked), still runs. 
> And after I few seconds I get a kernel panic.  This seems to be another bug.
> (See below for a kernel backtrace, which looks ok to me).
> I will set a breakpoint at the exception handler and see if that shows
> something (an infinite amount of exceptions generated or something like
> that).

It's indeed the case that a bombardement of exceptions are generated, and
eventually the kernel gets short on reply ports or so.  The exception
management in glibc and the proc server looks peculiar.  Roland, do you have
an idea what happens if you receive an exception in a fork?
Is that related to the critical section lock?

Even if the task refuses to cooperate, proc should notice the exceptions
and kill the task, right?  This is not happening here.  As this happens
before we really start a frok, this doesn't seem to be related to
parent/child process management or half-setup state.  If holding the
critical section lock and faulting is all that is needed to make proc
confused and Mach to panic, then there must be a bug in proc in that it
doesn't properly notice if the task is not handling its exceptions.

I guess I need to debug S_proc_exception_raise, in particular the
MACH_SEND_NOTIFY_IN_PROGRESS case.  Yuck, that means setting up a
neighborhurd.  In any case, the first order bug here is that the prepare
hook faults with main_arena.next being zero.

Thanks,
Marcus

-- 
`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]