On Fri, 7 Mar 2003, Kris Kennaway wrote: > I've been getting a few of these on 5.0 lately: > > Mar 7 21:31:07 <kern.crit> bento kernel: failed to set signal flags properly for > ast() > > Is there any additional debugging information I can provide to help > track this down?
It wouldn't hurt to know the signal masks. This patch has rotted a bit: %%% Index: subr_trap.c =================================================================== RCS file: /home/ncvs/src/sys/kern/subr_trap.c,v retrieving revision 1.239 diff -u -2 -r1.239 subr_trap.c --- subr_trap.c 28 Dec 2002 01:23:07 -0000 1.239 +++ subr_trap.c 28 Dec 2002 05:32:51 -0000 @@ -73,7 +79,7 @@ u_int oticks; { - struct proc *p = td->td_proc; - struct kse *ke = td->td_kse; + struct proc *p; + p = td->td_proc; CTR3(KTR_SYSC, "userret: thread %p (pid %d, %s)", td, p->p_pid, p->p_comm); @@ -84,6 +90,16 @@ mtx_lock_spin(&sched_lock); if (SIGPENDING(p) && ((p->p_sflag & PS_NEEDSIGCHK) == 0 || - (td->td_kse->ke_flags & KEF_ASTPENDING) == 0)) + (td->td_kse->ke_flags & KEF_ASTPENDING) == 0)) { printf("failed to set signal flags properly for ast()\n"); + printf( +"proc %s sig %#x %#x %#x %#x, mask %#x %#x %#x %#x, sigflag %d, astflag %d\n", + p->p_comm, + ((u_int *)&p->p_siglist)[0], ((u_int *)&p->p_siglist)[1], + ((u_int *)&p->p_siglist)[2], ((u_int *)&p->p_siglist)[3], + ((u_int *)&p->p_sigmask)[0], ((u_int *)&p->p_sigmask)[1], + ((u_int *)&p->p_sigmask)[2], ((u_int *)&p->p_sigmask)[3], + (p->p_sflag & PS_NEEDSIGCHK) != 0, + (td->td_kse->ke_flags & KEF_ASTPENDING) != 0); + } mtx_unlock_spin(&sched_lock); PROC_UNLOCK(p); %%% We really need to determine what didn't set the signal masks, but that is difficult to determine from here. Bruce To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message