Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 05 Mar 2024 18:47:27 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 277499] panic in doneq0 xpt_done_td xpt_done_process after HDD falling off the bus (Periph destroyed)
Message-ID:  <bug-277499-227-hYo63PvoSo@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-277499-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-277499-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D277499

Warner Losh <imp@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |imp@FreeBSD.org

--- Comment #1 from Warner Losh <imp@FreeBSD.org> ---
This looks like an old bug that I killed 3 or 4 years ago.

The root cause is that we're leaking a reference, so the periph is torn down
with outstanding devices.

       if ((ccb_h->func_code & XPT_FC_USER_CCB) =3D=3D 0) {
                struct cam_ed *dev =3D ccb_h->path->device;

                if (sim)
                        devq =3D sim->devq;
                KASSERT(devq, ("Periph disappeared with CCB %p %s request
pending.",
                        ccb_h, xpt_action_name(ccb_h->func_code)));

                mtx_lock(&devq->send_mtx);

devq is NULL here, according to the traceback...

The hard part is figuring out how this came to be.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-277499-227-hYo63PvoSo>