Date: Sun, 19 Jun 2005 18:24:59 -0700 (PDT) From: Mitch Parks <mitch@kuoi.asui.uidaho.edu> To: Doug White <dwhite@gumbysoft.com> Cc: freebsd-stable@freebsd.org Subject: Re: 5.4-p1 crash Message-ID: <20050619180740.H750@kuoi.asui.uidaho.edu> In-Reply-To: <20050619161113.V83634@carver.gumbysoft.com> References: <20050617150950.F1236@kuoi.asui.uidaho.edu> <20050619161113.V83634@carver.gumbysoft.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 19 Jun 2005, Doug White wrote: > On Fri, 17 Jun 2005, Mitch Parks wrote: >> Below are details regarding another crash on a Dell 2600 SMP (HTT and USB >> disabled). It has been 9 days since the last crash. I didn't have the serial >> console in place for this last crash, but it is now. > > As noted, the ttwakeup() panic is a known bug. The best thing we have for > a fix is this patch: > > http://people.freebsd.org/~mlaier/tty.t_pgrp.diff > > Please give it a try and report back if you have any more panics (or > don't :-) ). Thanks! This patch appears to be for 5.3, but I manually applied the chunk of the patch that didn't apply cleanly and the countdown is on. I'll report back in 10 days unless something bad happens before then. Below is the patch chunk #10 that I actually applied rather than the one given. If I've done something bad here by removing the PGRP_LOCK please let me know. .... Hunk #6 succeeded at 1154 (offset -51 lines). Hunk #7 succeeded at 1215 (offset -6 lines). Hunk #8 succeeded at 1203 (offset -51 lines). Hunk #9 succeeded at 1946 (offset -5 lines). Hunk #10 failed at 2562. Hunk #11 succeeded at 2847 (offset -212 lines). 1 out of 11 hunks failed--saving rejects to tty.c.rej @@ -2495,19 +2511,21 @@ * On return following a ttyprintf(), we set tp->t_rocount to 0 so * that pending input will be retyped on BS. */ + sx_slock(&proctree_lock); if (tp->t_session == NULL) { + sx_sunlock(&proctree_lock); ttyprintf(tp, "not a controlling terminal\n"); tp->t_rocount = 0; return; } if (tp->t_pgrp == NULL) { + sx_sunlock(&proctree_lock); ttyprintf(tp, "no foreground process group\n"); tp->t_rocount = 0; return; } - PGRP_LOCK(tp->t_pgrp); - if ((p = LIST_FIRST(&tp->t_pgrp->pg_members)) == 0) { - PGRP_UNLOCK(tp->t_pgrp); + if ((p = LIST_FIRST(&tp->t_pgrp->pg_members)) == NULL) { + sx_sunlock(&proctree_lock); ttyprintf(tp, "empty foreground process group\n"); tp->t_rocount = 0; return; Or the complete patch: http://kuoi.asui.uidaho.edu/~mitch/crash/tty_5.4.patch Mitch Parks mitch@kuoi.asui.uidaho.edu
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050619180740.H750>