Skip site navigation (1)Skip section navigation (2)
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>