Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

tty panic in current



Logging into one of my shell accounts from the console kills -current;
the problem appears to be that the account in question still does
tset(1). This causes the following trace fragment:

   ttyinput()
   wsdisplay_emulinput()
   wsemul_vt100_handle_csi()
   wsemul_vt100_output_csi()
   wsemul_vt100_output()
   wsdisplaystart()
   ttstart()
   ttwrite()

The problem then is that ttstart is called holding tty_lock, and
ttyinput gets tty_lock.

This appears to be fallout from one of the earlier vmlocking merges a
couple months ago and to have been lurking since.

The (mostly) full panic follows for reference:

   ------

Mutex error: lockdebug_wantlock: locking against myself

lock address : 0xffffffff805fdc08 type     :               spin
shared holds :                  0 exclusive:                  1
shares wanted:                  0 exclusive:                  1
current cpu  :                  0 last held:                  0
current lwp  : 0xffff80004e3e5360 last held: 0xffff80004e3e5360
last locked  : 0xffffffff8028de37 unlocked : 0xffffffff8028ddb5
initialized  : 0xffffffff8028af2a
owner field  : 0x0000000000010500 wait/spin:                0/1

panic: LOCKDEBUG
Stopped in pid 18285.1 (slogin) at     netbsd:breakpoint+0x1: ret
db{0}> bt
breakpoint() at [...]
lockdebug_abort1() at [...]
lockdebug_wantlock() at [...]
mutex_vector_enter() at [...]
ttyinput() at netbsd:ttyinput+0x32
wsdisplay_emulinput() at netbsd:wsdisplay_emulinput+0x58
wsemul_vt100_handle_csi() at [...]
wsemul_vt100_output_csi() at [...]
wsemul_vt100_output() at [...]
wsdisplaystart() at [...]
ttstart() at [...]
ttwrite() at [...]
cdev_write() at [...]
spec_write() at [...]
VOP_WRITE() at [...]
vn_write() at [...]
dofilewrite() at [...]
sys_write() at [...]
syscall() at [...]

-- 
   - David A. Holland / dholland+netbsd%eecs.harvard.edu@localhost




Home | Main Index | Thread Index | Old Index