On Wed, Jun 17, 2020 at 10:21 AM Mateusz Guzik <mjgu...@gmail.com> wrote: > > pho@ reported triggering one of the asserts: > https://people.freebsd.org/~pho/stress/log/mjguzik028.txt > > I did not have the time to properly investigate this yet and this does > not reproduce for me. >
Ah, this is good to know that he's reproduced it. There's only so many places that we touch these. I can't quite envision how, but the only scenario this would seem to be possible in is doenterpgrp() -> fixjobc(p, p->p_grp, 0) -> adjusts some child with a different process group without actually changing it, orphans the group, then we manage to finalize killjobc() on a freshly-orphaned process, which hasn't had its p_pgrp nullified. I haven't yet traced it through completely enough to determine if there's any way that can even happen. > That said, I may either revert the assert (or degrade to a warning) or > add some commentary if I don't sort this out this week. > > On 6/17/20, Kyle Evans <kev...@freebsd.org> wrote: > > On Tue, Jun 9, 2020 at 10:17 AM Mateusz Guzik <m...@freebsd.org> wrote: > >> > >> Author: mjg > >> Date: Tue Jun 9 15:17:23 2020 > >> New Revision: 361967 > >> URL: https://svnweb.freebsd.org/changeset/base/361967 > >> > >> Log: > >> Assert on pg_jobc state. > >> > >> Stolen from NetBSD. > >> > >> Modified: > >> head/sys/kern/kern_proc.c > >> > >> Modified: head/sys/kern/kern_proc.c > >> ============================================================================== > >> --- head/sys/kern/kern_proc.c Tue Jun 9 14:20:16 2020 (r361966) > >> +++ head/sys/kern/kern_proc.c Tue Jun 9 15:17:23 2020 (r361967) > >> @@ -751,9 +751,11 @@ pgadjustjobc(struct pgrp *pgrp, int entering) > >> { > >> > >> PGRP_LOCK(pgrp); > >> - if (entering) > >> + if (entering) { > >> + MPASS(pgrp->pg_jobc >= 0); > >> pgrp->pg_jobc++; > >> - else { > >> + } else { > >> + MPASS(pgrp->pg_jobc > 0); > >> --pgrp->pg_jobc; > >> if (pgrp->pg_jobc == 0) > >> orphanpg(pgrp); > > > > We seem to be doing something wrong here, but I'm still working on > > reproducing it on a machine that actually has usable swap configured > > to get a dump. I've hit one of these asserts just from hitting the > > power button to shutoff from within xfce (hitting the latter branch > > with pgrp->pg_jobc == 0 IIRC) and another laptop panicked sometime > > overnight -- I wasn't able to catch the second one at all, because > > it's hooked up to a switch that loses its mind once that laptop > > panicks and it had to be rebooted before I could attend to it to > > revive network for the other machines on the switch. > > > > Thanks, > > > > Kyle Evans > > > > > -- > Mateusz Guzik <mjguzik gmail.com> _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"