On Thu, 18 Feb 2010 15:28:53 -0500 Elliot Peele <elliot@xxxxxxxxx> wrote: > I am running tgt 1.0.1, serving four iSCSI targets to an ESX 4i cluster. > > I have seen the daemon get into an infinite loop a couple of times and stop responding to any requests. From the looks of it in iscsi_data_out_rx_start the cmd_list ends up looping back on itself. > > (gdb) l - > 1478 static int iscsi_data_out_rx_start(struct iscsi_connection *conn) > 1479 { > 1480 struct iscsi_task *task; > 1481 struct iscsi_data *req = (struct iscsi_data *) &conn->req.bhs; > 1482 > 1483 list_for_each_entry(task, &conn->session->cmd_list, c_hlist) { > 1484 if (task->tag == req->itt) > 1485 goto found; > 1486 } > 1487 return -EINVAL; > (gdb) p conn->session->cmd_list->next > $9 = (struct list_head *) 0x785330 > (gdb) p &conn->session->cmd_list->next > $10 = (struct list_head **) 0x690fb8 > (gdb) p &conn->session->cmd_list->next->next > $11 = (struct list_head **) 0x785330 Hmm, I have no idea how the list is corrupted. I need to dig into the code. > Has anyone seen this behavior before? Is there anymore information that I can provide? I've not seen any reports that might be related with this. Is there an easy way to reproduce this? Are there any notable events such as aborting tasks, disconnection, etc before hitting this? -- To unsubscribe from this list: send the line "unsubscribe stgt" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html