5.4-p1 crash
Philippe PEGON
Philippe.Pegon at crc.u-strasbg.fr
Mon Jun 20 18:12:52 GMT 2005
Mitch Parks wrote:
> 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.
I'm not a kernel developper, but if you remove
PGRP_LOCK(tp->t_pgrp);
and the PGRP_UNLOCK(tp->t_pgrp) in the if condition (removed by the
orginal patch)
there is maybe another "PGRP_UNLOCK(tp->t_pgrp);" to remove if the if
condition doesn't match, line 2528 in the original 5.4-p1 tty.c ?
>
> ....
> 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 at kuoi.asui.uidaho.edu
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
--
Philippe PEGON
More information about the freebsd-stable
mailing list