Re: /dev/null and KSE panic 100% reproducible

From: Daniel C. Sobral <dcs_at_tcoip.com.br>
Date: Tue, 20 May 2003 17:17:41 -0300
Julian, it is clear from the bt full that the first panic was the 
/dev/null one. Alas, I saw it happen, so I can also confirm that.

I got a serial setup here, and I'll eventually get down to reproduce the 
panic and get further information from it. I'll test without MAC, to see 
if that helps (I hope it doesn't -- it might prevent me from testing 
your own patch), and then test your patch.

I have seen this panic mostly during another panic indeed. I think there 
was a single case where that wasn't true, but I can't recall if I can 
say that for sure or if the KSE panic might have hidden another panic.

I think I can't get to this before tomorrow, so I'm just sending a 
message to state that I consider the ball to be in my hands for now. 
I'll get back to you, rest assured. :-)

Julian Elischer wrote:
> 
> On Tue, 20 May 2003, Julian Elischer wrote:
> 
>>Someone put the following code into kern/kern_switch.c
>>        /*
>>         * Only allow non system threads to run in panic
>>         * if they are the one we are tracing.  (I think.. [JRE])
>>         */
>>        if (panicstr && ((td->td_proc->p_flag & P_SYSTEM) == 0 &&
>>            (td->td_flags & TDF_INPANIC) == 0))
>>                goto retry;
>>
>>
>>It has the effect of throwing away threads that it has taken off teh run
>>queue if we are in a panic.
>>
>>at a later time anything that goes through these threads will assume
>>they are still on teh run queue and panic becasue they are not..
>>
>>try the following:
>>
>>change it to:
>>
>>        if (panicstr && ((td->td_proc->p_flag & P_SYSTEM) == 0 &&
>>            (td->td_flags & TDF_INPANIC) == 0)) {
>>		/* note that it is no longer on the run queue */
>>		TD_SET_CAN_RUN(td);
>>	         goto retry;
>>	}
>>
>>
>>if it fails you may try TD_SET_SUSPENDED(td) instead, but I think this
>>is better.
>>
> 
> 
> Note, this panic can only happen if you are already panicing, as seen
> below.. 
> This is why I haven't seen it.
> 
> 
>>>panic: No strategy on dev null responsible for buffer 0xc776ab90
>>>
>>>syncing disks, buffers remaining... 2230 2230 2229 2229 2229 2228 2228 
>>>2228 2228 2228 2228 panic: KSE not on run queue


-- 
Daniel C. Sobral                   (8-DCS)
Gerencia de Operacoes
Divisao de Comunicacao de Dados
Coordenacao de Seguranca
VIVO Centro Oeste Norte
Fones: 55-61-313-7654/Cel: 55-61-9618-0904
E-mail: Daniel.Capo_at_tco.net.br
         Daniel.Sobral_at_tcoip.com.br
         dcs_at_tcoip.com.br

Outros:
	dcs_at_newsguy.com
	dcs_at_freebsd.org
	capo_at_notorious.bsdconspiracy.net

A plucked goose doesn't lay golden eggs.
Received on Tue May 20 2003 - 11:18:20 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:08 UTC