Hi Nicholas, that issue was fixed with your patch. thanks i've found another issue i've attached the dmesg from lio node, it keeps saying SPC-3 PR [iSCSI] waiting for pr_res_holders and the machine hangs log from the testing machine Check to verify there are no reservations on disk /dev/sdf from node cluster2 Passed RegisterIgnoreKeys on disk /dev/sdf from node cluster1 ................. Passed Verify registrations for disk /dev/sdf on node cluster1 ................ Passed RegisterIgnoreKeys on disk /dev/sdf from node cluster1 ................. Passed Verify registrations for disk /dev/sdf on node cluster1 ................ Passed Clear PGR on node cluster1 ............................................. Failed do you want a wireshark capture at this point? On Thu, Jan 6, 2011 at 7:51 PM, Nicholas A. Bellinger <nab@xxxxxxxxxxxxxxx> wrote: > On Thu, 2011-01-06 at 14:06 -0800, Nicholas A. Bellinger wrote: >> On Thu, 2011-01-06 at 18:22 -0300, Gustavo Panizzo wrote: >> > On Wed, Jan 5, 2011 at 9:13 PM, Nicholas A. Bellinger >> > <nab@xxxxxxxxxxxxxxx> wrote: > > <SNIP> > >> > > >> > > So that said, there are two more tests I would like you to run to help isolate this particular >> > > issue wrt to PR operation with demo mode (eg: generate_node_acls=1) >> > > >> > > *) Please go ahead and enable 'cache_dynamic_acls' for the TargetName+TargetPortalGroupTag endpoint >> > > with the following and retest using the Vertias test suite. >> > > >> > > echo 1 > /sys/kernel/config/target/iscsi/iqn.2010.ar.com.zumbi:disk0/tpgt_1/attrib/cache_dynamic_acls >> > it failed :( >> > dmesg.test1 is the log file >> > > >> > > This will keep around the dynamically generated struct se_node_acls >> > > which does have an effect on certain PR operations, but thus far you are >> > > the first to the NULL pointer deference issue with demo mode PR >> > > operation. >> > > >> > > *) From there, go ahead and disable demo mode all together for the TargetName+TargetPortalGroupTag >> > > endpoint with: >> > > >> > > echo 0 > /sys/kernel/config/target/iscsi/iqn.2010.ar.com.zumbi:disk0/tpgt_1/attrib/generate_node_acls >> > > >> > > and fix the NodeACLs to match the actual initiator side IQNs and retest again. >> > it failed too >> > dmesg.test2 is the log file >> > > >> >> Ok, it appears that this OOPs is actually breakage for UNIT_ATTENTION >> conditions from the addition of > 16 byte extended CDB support added >> during the v4.0 development cycle last fall. ÂI am currently testing >> with the patch below to ensure the T_TASK(cmd)->t_task_cdb pointer is >> setup before the UA check in transport_generic_cmd_sequencer() can >> return an exception, and will be verifying the fix shortly. >> >> Please re-test your .37-rc7 setup with the following patch with explict >> NodeACLs and/or TPG demo mode operation w/ cache_dynamic_acls=1 and let >> us know your results. >> >> Thanks! >> > > Hi again Gustavo, > > I have been able to reproduce the issue and verify the bugfix with the > patch below. ÂThe following patch has now been pushed into lio-4.0 and > master (upgraded recently to .37-FINAL) and sent out seperately to > linux-scsi to be picked up for mainline. > > target: Fix T_TASK(cmd)->t_task_cdb assignement breakage > http://git.kernel.org/?p=linux/kernel/git/nab/lio-core-2.6.git;a=commitdiff;h=ff49f510a3a837ec6bd87eccac65bff31d5de561 > > Thanks for your bug report! > > --nab > >> --nab >> >> diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c >> index 2b59890..02e92a3 100644 >> --- a/drivers/target/target_core_transport.c >> +++ b/drivers/target/target_core_transport.c >> @@ -1897,13 +1897,6 @@ int transport_generic_allocate_tasks( >> >> Â Â Â Â transport_device_setup_cmd(cmd); >> Â Â Â Â /* >> - Â Â Â Â* See if this is a CDB which follows SAM, also grab a function >> - Â Â Â Â* pointer to see if we need to do extra work. >> - Â Â Â Â*/ >> - Â Â Â ret = transport_generic_cmd_sequencer(cmd, cdb); >> - Â Â Â if (ret < 0) >> - Â Â Â Â Â Â Â return ret; >> - Â Â Â /* >> Â Â Â Â Â* Ensure that the received CDB is less than the max (252 + 8) bytes >> Â Â Â Â Â* for VARIABLE_LENGTH_CMD >> Â Â Â Â Â*/ >> @@ -1935,6 +1928,14 @@ int transport_generic_allocate_tasks( >> Â Â Â Â Â*/ >> Â Â Â Â memcpy(T_TASK(cmd)->t_task_cdb, cdb, scsi_command_size(cdb)); >> Â Â Â Â /* >> + Â Â Â Â* Setup the received CDB based on SCSI defined opcodes and >> + Â Â Â Â* perform unit attention, persistent reservations and ALUA >> + Â Â Â Â* checks for virtual device backends. >> + Â Â Â Â*/ >> + Â Â Â ret = transport_generic_cmd_sequencer(cmd, cdb); >> + Â Â Â if (ret < 0) >> + Â Â Â Â Â Â Â return ret; >> + Â Â Â /* >> Â Â Â Â Â* Check for SAM Task Attribute Emulation >> Â Â Â Â Â*/ >> Â Â Â Â if (transport_check_alloc_task_attr(cmd) < 0) { >> >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at Âhttp://vger.kernel.org/majordomo-info.html > >
Attachment:
dmesg.test-after-patch
Description: Binary data