Date: Sat, 27 Jun 2020 06:22:52 +0200 From: Mateusz Guzik <mjguzik@gmail.com> To: John Baldwin <jhb@freebsd.org> Cc: Kyle Evans <kevans@freebsd.org>, src-committers <src-committers@freebsd.org>, svn-src-all <svn-src-all@freebsd.org>, svn-src-head <svn-src-head@freebsd.org> Subject: Re: svn commit: r361967 - head/sys/kern Message-ID: <CAGudoHGTBmgUGXio0koteRKjSKHWOO4uuXbYFuSqekR6gH04kg@mail.gmail.com> In-Reply-To: <0101b152-e3a6-61af-3748-04e73b631f51@FreeBSD.org> References: <202006091517.059FHNS9050196@repo.freebsd.org> <CACNAnaHLmwemMtHLNA5QwCbFxnEkVc7D-kw1TCqNLh3v5QMJQw@mail.gmail.com> <CAGudoHFUpFb6wBc=wxzwGJrOzER-xd6gU6pW6mLJLi6%2BvgYbqA@mail.gmail.com> <CACNAnaG8jDT8svqG2NRrqEU0u4GirHSbvstd2hyvVouDZPHRtA@mail.gmail.com> <0101b152-e3a6-61af-3748-04e73b631f51@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Does not reproduce for me, dtrace says: # dtrace -n 'fbt::pgadjustjobc:entry { printf("pgrp %p count %d entering %d\n", args[0], args[0]->pg_jobc, arg1); }' ", args[0], args[0]->pg_jobc, arg1); }'dtrace: description 'fbt::pgadjustjobc:entry ' matched 1 probe CPU ID FUNCTION:NAME 0 12082 pgadjustjobc:entry pgrp fffff80083510e00 count 0 entering 1 6 12082 pgadjustjobc:entry pgrp fffff80002b6bc00 count 0 entering 1 0 12082 pgadjustjobc:entry pgrp fffff80083510e00 count 1 entering 0 0 12082 pgadjustjobc:entry pgrp fffff80002b6bc00 count 1 entering 0 I don't have time to dig into this one. If there are no takers, I'll replace these assertions with a comment. On 6/17/20, John Baldwin <jhb@freebsd.org> wrote: > On 6/17/20 9:39 AM, Kyle Evans wrote: >> On Wed, Jun 17, 2020 at 10:21 AM Mateusz Guzik <mjguzik@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. > > I reproduced it three times yesterday in a head VM by exiting GDB while > it was attached to a live process (which kills the process), something > like: > > gdb /bin/ls > start > ^D > > Should be enough to reproduce. > > -- > John Baldwin > -- Mateusz Guzik <mjguzik gmail.com>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGudoHGTBmgUGXio0koteRKjSKHWOO4uuXbYFuSqekR6gH04kg>