From owner-svn-src-head@freebsd.org  Tue Dec  1 11:06:14 2020
Return-Path: <owner-svn-src-head@freebsd.org>
Delivered-To: svn-src-head@mailman.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9A4A04A56CE;
 Tue,  1 Dec 2020 11:06:14 +0000 (UTC)
 (envelope-from mjguzik@gmail.com)
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [IPv6:2a00:1450:4864:20::32b])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
 client-signature RSA-PSS (2048 bits) client-digest SHA256)
 (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4ClfRV3jvxz3Lbh;
 Tue,  1 Dec 2020 11:06:14 +0000 (UTC)
 (envelope-from mjguzik@gmail.com)
Received: by mail-wm1-x32b.google.com with SMTP id g185so4117563wmf.3;
 Tue, 01 Dec 2020 03:06:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=j78UYVpSU56B2+SYIiDn0JgY2GG5OwkC64fUImd6x8g=;
 b=EqHF0pRejz2nVM7ObettoBEdlm+n3JFfCdPVMA/cNIiUY0JOGLfWDbx69WXYKcTX11
 PDQjWvTXzRv8+iBN6/X0Fvf2ujK1kyfzSxhkgXUXK1tapXzg9ndl1O57aV72gJeZmZRE
 dUf3L5aqWHt3RPstSKE0NjthUnlrIWfcqYI8dXaPz/h+5SglXIpTasPMbWKUuo7so/rF
 Id5MlgUIDc6/Ret6qN6uLzjNbUww/XnQ2WGNcycApYEFRhu7bqWQA+/TJrVBv8225uI+
 xgauWHMTnFtvW7uHzNEaYc82A8guHBLKTlV86yh+iLnTpiBWeHbgdILFJ0xknUGLDFbj
 G97A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=j78UYVpSU56B2+SYIiDn0JgY2GG5OwkC64fUImd6x8g=;
 b=bd9mqsg64W022fU/Bfss64DgFuEqE/ebPUThDTXlJWiJuTXwqlU5dPA41veMvHR6Gz
 VKlgzYJ39B7z/UQn7DVbzgoTGR6X9wPpsUo7l4MrSGN/T3Tu+92mTuobNEOeSbfvC6OL
 opY/APg9FUwbb83C9/f5Z1yCsonWZYmLu3FzlamzAjH9EdjcFxaYwTzUnspImQXI65OB
 dUn/10xOMa6uzXUvuBlf0bn0lOeW1xMr58KsGae2tPPGoZnZwf5RlDy30q3U+WShuPrm
 TbW+f9L4+7yobZytDlijuvNziK/tLC7Xal3t2epQF0XxNGUYQNRAYCd8bTKwKJa3kk7x
 1Kpw==
X-Gm-Message-State: AOAM5318S8zQ34Gj0sL7auSyBK1wJNq803KijUEQYBdgZ50JTpwWI/ep
 Wnyo1XqtqaLFhnBWMT3zIpfwRl3Dh4Xa+jVPJN8qxp5gh98=
X-Google-Smtp-Source: ABdhPJyAjH6eE5e6MgzqmmeZlDAun4a6JpFsRIoZe7s/BgS9dzI0vrx5QaWCC5TwwvgF0GsMFacy9QWh/gLZ2zV+wjI=
X-Received: by 2002:a7b:c012:: with SMTP id c18mr2150446wmb.10.1606820772582; 
 Tue, 01 Dec 2020 03:06:12 -0800 (PST)
MIME-Version: 1.0
Received: by 2002:a5d:4d47:0:0:0:0:0 with HTTP;
 Tue, 1 Dec 2020 03:06:11 -0800 (PST)
In-Reply-To: <0af338b8-0696-3093-3bd9-8b3ea7207c17@selasky.org>
References: <202011160312.0AG3CLcm073334@repo.freebsd.org>
 <0af338b8-0696-3093-3bd9-8b3ea7207c17@selasky.org>
From: Mateusz Guzik <mjguzik@gmail.com>
Date: Tue, 1 Dec 2020 12:06:11 +0100
Message-ID: <CAGudoHE+sp3nBDe6CdK9mYk7j=h6F08+ME9s3qybWR_ZRySHkw@mail.gmail.com>
Subject: Re: svn commit: r367714 - head/sys/kern
To: Hans Petter Selasky <hps@selasky.org>
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, 
 svn-src-head@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-Rspamd-Queue-Id: 4ClfRV3jvxz3Lbh
X-Spamd-Bar: ----
Authentication-Results: mx1.freebsd.org;
	none
X-Spamd-Result: default: False [-4.00 / 15.00];
	 REPLY(-4.00)[]
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
 <svn-src-head.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-head>,
 <mailto:svn-src-head-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-head/>
List-Post: <mailto:svn-src-head@freebsd.org>
List-Help: <mailto:svn-src-head-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-head>,
 <mailto:svn-src-head-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 01 Dec 2020 11:06:14 -0000

I see what the bug is, will think about the right fix.

Is this reproducible for you?

On 12/1/20, Hans Petter Selasky <hps@selasky.org> wrote:
> On 11/16/20 4:12 AM, Mateusz Guzik wrote:
>> Author: mjg
>> Date: Mon Nov 16 03:12:21 2020
>> New Revision: 367714
>> URL: https://svnweb.freebsd.org/changeset/base/367714
>>
>> Log:
>>    select: call seltdfini on process and thread exit
>>
>>    Since thread_zone is marked NOFREE the thread_fini callback is never
>>    executed, meaning memory allocated by seltdinit is never released.
>>
>>    Adding the call to thread_dtor is not sufficient as exiting processes
>>    cache the main thread.
>>
>> Modified:
>>    head/sys/kern/kern_exit.c
>>    head/sys/kern/kern_thread.c
>>
>> Modified: head/sys/kern/kern_exit.c
>> ==============================================================================
>> --- head/sys/kern/kern_exit.c	Mon Nov 16 03:09:18 2020	(r367713)
>> +++ head/sys/kern/kern_exit.c	Mon Nov 16 03:12:21 2020	(r367714)
>> @@ -355,6 +355,7 @@ exit1(struct thread *td, int rval, int signo)
>>   	PROC_UNLOCK(p);
>>
>>   	umtx_thread_exit(td);
>> +	seltdfini(td);
>>
>>   	/*
>>   	 * Reset any sigio structures pointing to us as a result of
>>
>> Modified: head/sys/kern/kern_thread.c
>> ==============================================================================
>> --- head/sys/kern/kern_thread.c	Mon Nov 16 03:09:18 2020	(r367713)
>> +++ head/sys/kern/kern_thread.c	Mon Nov 16 03:12:21 2020	(r367714)
>> @@ -329,6 +329,7 @@ thread_ctor(void *mem, int size, void *arg, int
>> flags)
>>   	audit_thread_alloc(td);
>>   #endif
>>   	umtx_thread_alloc(td);
>> +	MPASS(td->td_sel == NULL);
>>   	return (0);
>>   }
>>
>> @@ -369,6 +370,7 @@ thread_dtor(void *mem, int size, void *arg)
>>   	osd_thread_exit(td);
>>   	td_softdep_cleanup(td);
>>   	MPASS(td->td_su == NULL);
>> +	seltdfini(td);
>>   }
>>
>>   /*
>> @@ -405,7 +407,7 @@ thread_fini(void *mem, int size)
>>   	turnstile_free(td->td_turnstile);
>>   	sleepq_free(td->td_sleepqueue);
>>   	umtx_thread_fini(td);
>> -	seltdfini(td);
>> +	MPASS(td->td_sel == NULL);
>>   }
>>
>>   /*
>
> Hi,
>
> The following panic() has been observed after this change:
>
> panic: Assertion mtx_unowned(m) failed at /usr/src/sys/kern/kern_mutex:1181
> cpuid = 6
> ....
> panic()
> _mtx_destroy()
> seltdfini()
> exit1()
> postsig()
> ast()
> doreti_ast()
>
> --HPS
>
>


-- 
Mateusz Guzik <mjguzik gmail.com>