Re: git: f08247fd888e - main - Assert that mbufs are writable if we write to them

From: Kristof Provost <kp_at_FreeBSD.org>
Date: Wed, 11 Sep 2024 15:02:11 UTC
On 11 Sep 2024, at 16:45, Mark Johnston wrote:
> On Wed, Sep 11, 2024 at 11:18:26AM +0000, Kristof Provost wrote:
>> The branch main has been updated by kp:
>>
>> URL: https://cgit.FreeBSD.org/src/commit/?id=f08247fd888e6f7db0ecf2aaa39377144ac40b4c
>>
>> commit f08247fd888e6f7db0ecf2aaa39377144ac40b4c
>> Author:     Kristof Provost <kp@FreeBSD.org>
>> AuthorDate: 2024-09-10 20:15:31 +0000
>> Commit:     Kristof Provost <kp@FreeBSD.org>
>> CommitDate: 2024-09-11 11:17:48 +0000
>>
>>     Assert that mbufs are writable if we write to them
>>
>>     m_copyback() modifies the mbuf, so it must be a writable mbuf.
>
> This change still triggers a panic for me when running KTLS tests.  I
> note that EXTPG mbufs always have M_RDONLY set, but I'm not quite sure
> why.  I suspect such mbufs need special handling with respect to the new
> assertion.
>
> syzbot also triggered this panic:
> https://syzkaller.appspot.com/bug?extid=58c918369f9dc323409d
>
Yeah, I saw that one before I went out for a bike ride.

Clearly something is wrong. Either ktls is using read-only buffers or the M_WRITABLE() macro isn’t quite smart enough to spot this specific case.

I’m not familiar enough with ktls to easily tell which.

I’ll back this assertion change out for now, so we’re not panicing test machines while we figure this out.

Best regards,
Kristof