Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Jan 2013 13:16:13 GMT
From:      Asiris <asiris@disc-soft.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   standards/174938: Problem statement: iSCSI target failure
Message-ID:  <201301031316.r03DGDRv054348@red.freebsd.org>
Resent-Message-ID: <201301031320.r03DK0c8047921@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         174938
>Category:       standards
>Synopsis:       Problem statement: iSCSI target failure
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-standards
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan 03 13:20:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Asiris
>Release:        NAS4Free 9.1.0.1 (revision 531)
>Organization:
Disc Soft Ltd
>Environment:
FreeBSD nas4free.local 9.1-RC3 FreeBSD 9.1-RC3 #0 r243187M: Sat Nov 17 21:59:26 JST 2012      root@nas4free.local:/usr/obj/nas4free/usr/src/sys/NAS4FREE-amd64 amd64
>Description:
Problem statement: iSCSI target failure

Conditions:
- FreeNAS 0.7.2 (or/and NAS4Free 9.1.0.1 (revision 531) behaves the same way)
- iSCSI target: istgt
- the DVD-ROM target created with istgt
- the iSCSI initiator creates the session with istgt target
- the iSCSI initiator claims the MaxRecvDataSegmentLength=8192 while 
  the session parameter negotiation stage
- the iSCSI initiator issues the SET MODE(10) SCSI command with
  allocation length 0xFFF0 bytes
- the istgt immideately aborts the TCP connection (sends FIN)
- the istgt logfile contains the messages:
  	freenas	istgt[1365]: istgt_lu_dvd.c:3339:istgt_lu_dvd_execute: ***ERROR*** data_alloc_len(8192) too small
	freenas	istgt[1365]: istgt_lu.c:2283:istgt_lu_execute: ***ERROR*** LU2: lu_dvd_execute() failed
	freenas	istgt[1365]: istgt_iscsi.c:3118:istgt_iscsi_op_scsi: ***ERROR*** lu_execute() failed
	freenas	istgt[1365]: istgt_iscsi.c:4400:istgt_iscsi_execute: ***ERROR*** iscsi_op_scsi() failed

If the iSCSI initiator claims the MaxRecvDataSegmentLength=65536, the problem disappears.
But the small iSCSI segments is not acceptable at all for some iSCSI initiators (e.g. embedded systems with limited amount of memory).

>How-To-Repeat:
Use embedded systems with limited amount of memory, or simulate MaxRecvDataSegmentLength=8192
>Fix:
It is necessary to define at whom the buffer less, and to use with a smaller size

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201301031316.r03DGDRv054348>