I get a panic if I remove a virtual disk from an mfii(4) device. What I found out is that mfii_aen_ld_update() calls sysmon_envsys_sensor_detach(), which (near the end of the routine) calls TAILQ_REMOVE(). In that, the last statement (minus QUEUEDEBUG_TAILQ_POSTREMOVE()), which is *(elm)->field.tqe_prev = (elm)->field.tqe_next; fails because (elm)->field.tqe_prev is NULL.
I seem to be confused how tail queues work internally, because it appears to me that removing the first entry will fail, which is obviously not the case? Any hints what's wrong?