<div dir="ltr">I have seen this happen twice :<br><div><br>"/usr/sbin/itadm delete-tpg <tpg>" hangs.<br><br>The stack :<br><br>[ ffffff002d2c9930 _resume_from_idle+0xf4() ]<br>  ffffff002d2c9960 swtch+0x141()<br>  ffffff002d2c99a0 cv_wait+0x70(ffffff1724512ba8, ffffff1724512ba0)<br>  ffffff002d2c99e0 idm_refcnt_wait_ref+0x7b(ffffff1724512b88)<br>  ffffff002d2c9a20 iscsit_config_destroy_tpgs+0x4d(ffffff002d2c9a90)<br>  ffffff002d2c9ae0 iscsit_config_merge+0xfb(ffffff486c690c70)<br>  ffffff002d2c9c80 iscsit_drv_ioctl+0x3d6(10800000000, 1, 8047cf8, 100403, ffffff295594dc48, ffffff002d2c9e68)<br>  ffffff002d2c9cc0 cdev_ioctl+0x39(10800000000, 1, 8047cf8, 100403, ffffff295594dc48, ffffff002d2c9e68)<br>  ffffff002d2c9d10 spec_ioctl+0x60(ffffff2847bbca00, 1, 8047cf8, 100403, ffffff295594dc48, ffffff002d2c9e68, 0)<br>  ffffff002d2c9da0 fop_ioctl+0x55(ffffff2847bbca00, 1, 8047cf8, 100403, ffffff295594dc48, ffffff002d2c9e68, 0)<br>  ffffff002d2c9ec0 ioctl+0x9b(4, 1, 8047cf8)<br>  ffffff002d2c9f10 sys_syscall32+0xff()<br><br>idm_refcnt_wait wants refcount to be 0, but that doesn't happen.<br>> ffffff1724512b88::print -t idm_refcnt_t<br>idm_refcnt_t {<br>    int ir_refcnt = 0x1<br>[..]<br><br>I found only two places where ir_refcnt is decremented :<br>idm_refcnt_rele<br>idm_refcnt_rele_and_destroy<br><br>They seem likely to be called from iscsit_config_merge_tpg or iscsit_portal_offline<br>But at this point I don't really know what to look for.<br><br>Has anyone already seen this ?<br><br></div><div>cheers,<br>alex<br></div></div>