From nobody Fri May 22 15:35:09 2026 X-Original-To: current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gMTqw64Thz6f23C for ; Fri, 22 May 2026 15:35:24 +0000 (UTC) (envelope-from rlibby@gmail.com) Received: from mail-yw1-f176.google.com (mail-yw1-f176.google.com [209.85.128.176]) (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 "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gMTqv5LqCz3cMq for ; Fri, 22 May 2026 15:35:23 +0000 (UTC) (envelope-from rlibby@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-yw1-f176.google.com with SMTP id 00721157ae682-7c23248f3a3so81221307b3.1 for ; Fri, 22 May 2026 08:35:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779464123; x=1780068923; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gYjAeZWCZeumUom04HD61H6rCCJjosffY/1FuxcMSpM=; b=fvGkpKgOBWzw7mdYEtchEvNP+OwRTPK3+u5UKFmQn0lmeZQmUHljvKm0BRiJKWuDYQ dUzi11CQlssnRVJ1LGnevSmq4RYpybgvOra3o4BIuPUNdnPSoV0aT9MI8B59lqrrI9BA wDMzsfBEeHhDLN6sfWnfcbkaJPp3uz3gCS3w99fhcpb18wpGLMRwCykdLtnL36nvDEHX fKzy34xSLw/l9ErWzE62g9jif3LCCN7ROW0V8y5FJjlFYXx41KCOT+UoI0Hm+mm2a1re jThhGWXnlkPuB8OAMie1q0M+qitdvlb83ZZ7V1+AyIGc9as/X+mQNbQlFVNmOVTaxZXh 4ztA== X-Gm-Message-State: AOJu0YzMppbjoIQl6bLA9P2zr+jJVyOtvxNt2Wz3icSmlhrGfkf6ksx1 ESsbDstsXnoGmXL6D9Koi+HeubbfcHLb9E0kmfg46RiOWCLS290yGZxQJ6gAKQ== X-Gm-Gg: Acq92OFF25jCVV3S2W/141Nf/ZfXK6SWDHCAWMdVTec6yiTYREBAC8qTwMRd98sY9Z1 B3oCZw9NxS1l923cnCEyOWL/vgyh/lLAEP3Orr4nJouItxFQFFSjPaQag2+SlDVvgMLjf28xrYj JI0CvR18rwclI+Ct5889NyyFLvh10z+B+6NyCyWlumlNtPeYOWZKkboBGNfhjmbUSt9AtZ2CoTU ja+uVFs5EMXQu+UKWj3rfYMNyvP+v7AeGT/w5iTeIC55C7UxuM058WT3V1l2zrsSz3s4ZhwAStC Tg007LEd3xw2oZlCYaSTBeS4CfvLsuP2e/vOHLii55DrG1//qwYoUbpb3PSc8bEd5hIdSAGMwpi WE/njrjc5WSRtjNh4MuWuWKEwzSbkTLFvbARDMIvS5/2Uw9Mrbb+UGjJjuzzKbxCi75VEBNvq/s jF6hYqUZM1RFGslEzRSOH2J/rFGyhX+ZzLnk6W7uyvfCTgrvhC/EoQkgmHvHOH3GdmyWM4 X-Received: by 2002:a05:690c:304:b0:7ba:f712:95a9 with SMTP id 00721157ae682-7d3355dae54mr53387327b3.7.1779464122692; Fri, 22 May 2026 08:35:22 -0700 (PDT) Received: from mail-yx1-f41.google.com (mail-yx1-f41.google.com. [74.125.224.41]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7d389815a8fsm9611987b3.6.2026.05.22.08.35.22 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 22 May 2026 08:35:22 -0700 (PDT) Received: by mail-yx1-f41.google.com with SMTP id 956f58d0204a3-65c3ea2ebf7so8565071d50.0 for ; Fri, 22 May 2026 08:35:22 -0700 (PDT) X-Received: by 2002:a05:690e:1249:b0:65e:3c31:533f with SMTP id 956f58d0204a3-65ec99cea4fmr4149702d50.51.1779464121988; Fri, 22 May 2026 08:35:21 -0700 (PDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 References: In-Reply-To: From: Ryan Libby Date: Fri, 22 May 2026 08:35:09 -0700 X-Gmail-Original-Message-ID: X-Gm-Features: AVHnY4Kik_4VM3Pleyn-JWvPfTJgLUToynDNziryAp-jru8Epure030x9s8Dz_U Message-ID: Subject: Re: panic: mtx_lock_spin: recursed on non-recursive mutex vtbuf @ .. To: "Bjoern A. Zeeb" , ray@freebsd.org Cc: current@freebsd.org, imp@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US] X-Rspamd-Queue-Id: 4gMTqv5LqCz3cMq X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated On Fri, May 22, 2026 at 1:46=E2=80=AFAM Bjoern A. Zeeb wrote: > > Hi, > > I was using the mouse in tmux on v1 when everying stopped. > Sadly we didn't switch to v0 for console but it seems I managed to get a = dump only checking now; the kernel from then is already gone. > > core.txt said. > > panic: mtx_lock_spin: recursed on non-recursive mutex vtbuf @ /usr/home/t= est/Sources/git/FreeBSD/freebsd-src.git/sys/dev/vt/vt_buf.c:744 > > cpuid =3D 1 > time =3D 1779437567 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00d77= 3e7a0 > vpanic() at vpanic+0x149/frame 0xfffffe00d773e8d0 > panic() at panic+0x43/frame 0xfffffe00d773e930 > __mtx_lock_spin_flags() at __mtx_lock_spin_flags+0x11b/frame 0xfffffe00d7= 73e970 > vtbuf_flush_mark() at vtbuf_flush_mark+0x82/frame 0xfffffe00d773e9b0 > vtbuf_unmark_on_cross() at vtbuf_unmark_on_cross+0xcc/frame 0xfffffe00d77= 3e9d0 > vtterm_fill() at vtterm_fill+0x27/frame 0xfffffe00d773ea00 > teken_subr_erase_line() at teken_subr_erase_line+0x90/frame 0xfffffe00d77= 3ea20 > teken_state_2() at teken_state_2+0x497/frame 0xfffffe00d773ea40 > teken_input_char() at teken_input_char+0x47/frame 0xfffffe00d773ea60 > teken_input() at teken_input+0x9f/frame 0xfffffe00d773ea90 > termtty_outwakeup() at termtty_outwakeup+0xcf/frame 0xfffffe00d773eb60 > ttydisc_write() at ttydisc_write+0x337/frame 0xfffffe00d773ecd0 > ttydev_write() at ttydev_write+0x13f/frame 0xfffffe00d773ed10 > devfs_write_f() at devfs_write_f+0xf3/frame 0xfffffe00d773ed70 > dofilewrite() at dofilewrite+0x81/frame 0xfffffe00d773edc0 > sys_writev() at sys_writev+0x69/frame 0xfffffe00d773ee00 > amd64_syscall() at amd64_syscall+0x168/frame 0xfffffe00d773ef30 > fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe00d773ef3= 0 > --- syscall (121, FreeBSD ELF64, writev), rip =3D 0x82601d5aa, rsp =3D 0x= 8207a3408, rbp =3D 0x8207a3430 --- > KDB: enter: panic > > > In case it helps, I believe this is file:line as reported by gdb in core.= txt: > > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/kern/kern_= mutex.c:353 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/dev/vt/vt_= buf.c:744 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/dev/vt/vt_= buf.c:864 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/dev/vt/vt_= buf.c:210 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/dev/vt/vt_= buf.c:232 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/dev/vt/vt_= core.c:1201 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/teken/teke= n.c:121 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/teken/teke= n_subr.h:558 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/teken/teke= n.c:255 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/teken/teke= n.c:284 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/teken/teke= n.c:317 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/kern/subr_= terminal.c:422 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/sys/ttydev= sw.h:114 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/kern/tty_t= tydisc.c:658 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/kern/tty.c= :550 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/fs/devfs/d= evfs_vnops.c:1980 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/sys/file.h= :372 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/kern/sys_g= eneric.c:565 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/kern/sys_g= eneric.c:492 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/kern/sys_g= eneric.c:478 > at /usr/home/test/Sources/git/FreeBSD/freebsd-src.git/sys/amd64/amd6= 4/../../kern/subr_syscall.c:193 > > > -- > Bjoern A. Zeeb r15:7 > I think it's probably related to or a regression from 8db0553ed6d8 ("vt: Clear cut-paste selection if the area intersects with the filled region") https://cgit.freebsd.org/src/commit/?id=3D8db0553ed6d8636d82a26896237099526= b93be19 which added vtbuf_unmark_on_cross() which is in your panic stack. I don't know this code but it looks like the mutex is first taken by teken_input / teken_funcs_pre_input / vtterm_pre_input and then again by teken_input with your panic stack. Ryan