NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/59497: Panic in ucompoll
The following reply was made to PR kern/59497; it has been noted by GNATS.
From: Paul Ripke <stix%stix.id.au@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
netbsd-bugs%netbsd.org@localhost, stix%stix.id.au@localhost, bad%bsd.de@localhost
Subject: Re: kern/59497: Panic in ucompoll
Date: Sun, 20 Jul 2025 23:24:39 +1000
On Sat, Jul 05, 2025 at 09:20:02AM +0000, Christoph Badura via gnats wrote:
>
> On Sat, Jul 05, 2025 at 07:45:02AM +0000, Paul Ripke via gnats wrote:
> > Re msgbuf, after dumping it out, I realise this crash was actually due to
> > a failing USB hub flaking out intermittently. I have seen this device
> > intermittently disconnect/reconnect without that hub, so there's still
> > something going on.
>
> I'm confused. Does the device also intermittently disconnect/reconnect
> without the hub?
Yes, it does - but it seems the only crash dump I had was one due to the
failing hub.
> Anyway, even a flaky USB hub shouldn't cause a panic.
Indeed.
> > [ 3804001.2307417] ucom1: detached
> > [ 3804001.2307417] uplcom0: detached
> > [ 3804001.2307417] uplcom0: at uhub9 port 1 (addr 13) disconnected
> > [ 3804001.2407419] ucom0: detached
> > [ 3804001.2537420] uhub8: detached
> > [ 3804001.2537420] uhub8: at uhub1 port 5 (addr 1) disconnected
> > [ 3804001.7737508] uhub8 at uhub1 port 5: GenesysLogic (0x05e3) USB2.0 Hub (0x0610), class 9/0, rev 2.10/92.26, addr 14
> > [ 3804001.7737508] uhub8: multiple transaction translators
> > [ 3804001.7887511] uhub8: 4 ports with 1 removable, self powered
> > [ 3804002.1207568] uvm_fault(0xffffb1c7ac104780, 0x0, 1) -> e
> > [ 3804002.1207568] fatal page fault in supervisor mode
>
> This looks to me like the trap happens while uplcom0 (did it move from
> uplcom1?) was disconnected/detached.
It may have moved - I do have two of them, and have used both on occasion.
> If you are testing the suggested changes (check for sc != NULL and/or the
> change for spec_poll()) could you add a printf when it triggers so that we
> can verify that this happens while the uplcom/ucom is disconnected?
I ran a test - with the 'if (sc == null) return POLLHUP' patch, with drivewire
running on /dev/dtyU0, and pulling the USB:
[ 2724.7698958] xhci0: xhci_reset_endpoint: endpoint 0x0: timed out
[ 2724.7738960] WARNING: pipe closed with active xfers on addr 4
[ 2724.7808961] ucom0: detached
[ 2724.7808961] uplcom0: detached
[ 2724.7808961] uplcom0: at uhub8 port 3 (addr 4) disconnected
[ 2725.6829076] ucompoll: sc == NULL
[ 2725.6829076] uvm_fault(0xffff80e5b04f1848, 0x0, 1) -> e
[ 2725.6829076] fatal page fault in supervisor mode
[ 2725.6829076] trap type 6 code 0 rip 0xffffffff80497ab7 cs 0x8 rflags 0x10246 cr2 0xe8 ilevel 0 rsp 0xffff881237c78cd0
[ 2725.6829076] curlwp 0xffff80e6239de680 pid 6220.6226 lowest kstack 0xffff881237c742c0
[ 2725.6829076] panic: trap
[ 2725.6829076] cpu1: Begin traceback...
[ 2725.6829076] vpanic() at netbsd:vpanic+0x183
[ 2725.6839076] panic() at netbsd:panic+0x3c
[ 2725.6849078] trap() at netbsd:trap+0xbaf
[ 2725.6849078] --- trap (number 6) ---
[ 2725.6849078] ucomread() at netbsd:ucomread+0x2a
[ 2725.6849078] cdev_read() at netbsd:cdev_read+0x87
[ 2725.6859078] spec_read() at netbsd:spec_read+0x2d3
[ 2725.6859078] VOP_READ() at netbsd:VOP_READ+0x42
[ 2725.6869079] vn_read() at netbsd:vn_read+0x18e
[ 2725.6869079] dofileread() at netbsd:dofileread+0x79
[ 2725.6869079] sys_read() at netbsd:sys_read+0x49
[ 2725.6879078] syscall() at netbsd:syscall+0x1fc
[ 2725.6879078] --- syscall (number 3) ---
[ 2725.6879078] netbsd:syscall+0x1fc:
[ 2725.6879078] cpu1: End traceback...
So, this exited the poll, and died in read, which I guess is an
improvement? If I get the chance, I'll try to figure out how this
is supposed to work.
btw: this is still on the 10.1 branch.
Cheers,
--
Paul Ripke
"Great minds discuss ideas, average minds discuss events, small minds
discuss people."
-- Disputed: Often attributed to Eleanor Roosevelt. 1948.
Home |
Main Index |
Thread Index |
Old Index