kernel panic with login a debian initiator on an opensolaris target

76 views
Skip to first unread message

sbe...@gmail.com

unread,
Oct 15, 2007, 5:59:33 AM10/15/07
to open-iscsi, s...@oleane.net
The userland tools are compiled from open-iscsi-2.0-865.13.tar.gz, the
kernel modules of the linux are the modules from the debian kernel
package (2.6.18.dfsg.1-13etch3).

* Target opensolaris (192.168.1.1) :
# uname -a
SunOS stocklog-stock 5.11 snv_72 i86pc i386 i86pc
# iscsitadm list target
Target: stocklog/stock1
iSCSI Name: iqn.1986-03.com.sun:02:12715be9-b96d-cc27-
f885-80d9f648d431
Connections: 0
Target: stocklog/stock2
iSCSI Name: iqn.1986-03.com.sun:02:2c822f74-c44c-6a96-bbea-
a9d840667a42
Connections: 0

The iscsi targets are ZFS volumes with "shareiscsi = on".

* Initiator debian/etch (192.168.1.2) :
# uname -a
Linux stocklog 2.6.18-5-686 #1 SMP Wed Sep 26 17:54:59 UTC 2007 i686
GNU/Linux
# /sbin/iscsid -v
iscsid version 2.0-865
# cat /sys/module/scsi_transport_iscsi/version
1.1-646

The kernel version is the stock debian/etch kernel

When trying to login to the target, the debian kernel oops, here is
the situation :
debian# modprobe ib_iser
iscsi: registered transport (iser)
# modprobe iscsi_tcp
iscsi: registered transport (tcp)
debian# /sbin/iscsid -c /etc/iscsid.conf -i /etc/initiatorname.iscsi -
f -d 3
iscsid: transport class version 1.1-646. iscsid version 2.0-865
iscsid: InitiatorName=iqn.1993-08.org.debian:01.bd32b7fb4db4
iscsid: InitiatorAlias=stocklog
iscsid: iscsid_exit
debian# /sbin/iscsiadm -m discovery -t st -p 192.168.1.1
192.168.1.1:3260,1 iqn.1986-03.com.sun:02:2c822f74-c44c-6a96-bbea-
a9d840667a42
192.168.1.1:3260,1 iqn.1986-03.com.sun:02:12715be9-b96d-cc27-
f885-80d9f648d431
debian# /sbin/iscsiadm -m node -T iqn.1986-03.com.sun:02:2c822f74-
c44c-6a96-bbea-a9d840667a42 -p 192.168.1.1 -l
Login session [iface: default, target: iqn.1986-03.com.sun:02:2c822f74-
c44c-6a96-bbea-a9d840667a42, portal: 192.168.1.1,3260]
iscsid: Allocted session 0x8079898
iscsid: connecting to 192.168.1.1:3260
iscsid: connected local port 36440 to 192.168.1.1:3260
iscsid: deleting a scheduled/waiting thread!

And then the kernel oops :
kernel BUG at drivers/scsi/iscsi_tcp.c:947!
invalid opcode: 0000 [#1]
SMP
Modules linked in: iscsi_tcp ib_iser libiscsi rdma_cm ib_addr ib_cm
ib_sa ib_man
CPU: 0
EIP: 0060:[<f8b407de>] Not tainted VLI
EFLAGS: 00010202 (2.6.18-5-686 #1)
EIP is at iscsi_tcp_data_recv+0x103a/0x1164 [iscsi_tcp]
eax: 0000016c ebx: d4f83840 ecx: f7af46dc edx: d4f83840
esi: d4f83840 edi: d4f83840 ebp: d4f83840 esp: dc2a5d48
ds: 007b es: 007b ss: 0068
Process udevd (pid: 15362, ti=dc2a4000 task=f7b01000 task.ti=dc2a4000)
Stack: ea712480 dc2a5dec d7c3c0a4 d7c3c080 00000000 f7af417c d4f83840
da3c8380
7fffffff c022238e f6b49654 f6b49668 f7860edc c19f8280 c02473d2
f6b49640
c19f8280 f7860edc f7c58500 0000016b 00000000 c0246c4e 00000000
c19f8280
Call Trace:
[<c022238e>] sock_alloc_send_skb+0x68/0x198
[<c02473d2>] ip_output+0x1c3/0x1fd
[<c0246c4e>] ip_queue_xmit+0x371/0x3b3
[<c02590f7>] tcp_v4_send_check+0x72/0xb8
[<c024c638>] tcp_read_sock+0x5e/0x163
[<f8b3f7a4>] iscsi_tcp_data_recv+0x0/0x1164 [iscsi_tcp]
[<f8b40d10>] iscsi_tcp_data_ready+0x32/0x3f [iscsi_tcp]
[<c02536c8>] tcp_rcv_established+0x523/0x7b7
[<c025883c>] tcp_v4_do_rcv+0x25/0x2b4
[<c025ac69>] tcp_v4_rcv+0x8d2/0x925
[<c0242ca4>] ip_local_deliver+0x15b/0x207
[<c0242b0f>] ip_rcv+0x3e3/0x41d
[<c0228f60>] netif_receive_skb+0x2c5/0x33d
[<f887cf6e>] tg3_poll+0x5c6/0x816 [tg3]
[<c022a923>] net_rx_action+0x92/0x17f
[<c0121838>] __do_softirq+0x5a/0xbb
[<c01218cf>] do_softirq+0x36/0x3a
[<c01050ea>] do_IRQ+0x48/0x52
[<c01036b6>] common_interrupt+0x1a/0x20
Code: 00 00 00 03 00 00 00 eb 0e 8b 7c 24 18 c7 87 88 00 00 00 00 00
00 00 8b 5
EIP: [<f8b407de>] iscsi_tcp_data_recv+0x103a/0x1164 [iscsi_tcp] SS:ESP
0068:dc28
<0>Kernel panic - not syncing: Fatal exception in interrupt

The kernel panic message was obtained by a serial console on the
debian server.

Mike Christie

unread,
Oct 15, 2007, 3:16:25 PM10/15/07
to open-...@googlegroups.com, s...@oleane.net
sbe...@gmail.com wrote:
> The userland tools are compiled from open-iscsi-2.0-865.13.tar.gz, the
> kernel modules of the linux are the modules from the debian kernel
> package (2.6.18.dfsg.1-13etch3).
>

I am not familiar with the the debian kernel and what they backport, but
it probably does not have a fix for open solaris that was done after
2.6.18 was out.

I would use the kernel modules from open-iscsi-2.0-865.13.tar.gz if you
can. It has a fix for open solaris where the iscsi_tcp module was not
handling data and padding coming in two different skbs.

sbe...@gmail.com

unread,
Oct 16, 2007, 4:34:47 AM10/16/07
to open-iscsi
On Oct 15, 9:16 pm, Mike Christie <micha...@cs.wisc.edu> wrote:
I tried to compile and install the modules from open-
iscsi-2.0-865.13.tar.gz with the debian kernel and headers, it leads
to the following situation :
# modprobe ib_iser
FATAL: Error inserting ib_iser (/lib/modules/2.6.18-5-686/kernel/
drivers/infiniband/ulp/iser/ib_iser.ko): Unknown symbol in module, or
unknown parameter (see dmesg)

And from the kernel :
ib_iser: disagrees about version of symbol iscsi_conn_setup
ib_iser: Unknown symbol iscsi_conn_setup
ib_iser: disagrees about version of symbol iscsi_verify_itt
ib_iser: Unknown symbol iscsi_verify_itt
ib_iser: disagrees about version of symbol
iscsi_session_recovery_timedout
ib_iser: Unknown symbol iscsi_session_recovery_timedout
ib_iser: disagrees about version of symbol iscsi_conn_bind
ib_iser: Unknown symbol iscsi_conn_bind
ib_iser: disagrees about version of symbol iscsi_session_setup
ib_iser: Unknown symbol iscsi_session_setup
ib_iser: disagrees about version of symbol class_to_transport_session
ib_iser: Unknown symbol class_to_transport_session
ib_iser: disagrees about version of symbol iscsi_conn_failure
ib_iser: Unknown symbol iscsi_conn_failure
ib_iser: disagrees about version of symbol iscsi_complete_pdu
ib_iser: Unknown symbol iscsi_complete_pdu
ib_iser: disagrees about version of symbol iscsi_register_transport
ib_iser: Unknown symbol iscsi_register_transport
ib_iser: disagrees about version of symbol iscsi_set_param
ib_iser: Unknown symbol iscsi_set_param
ib_iser: disagrees about version of symbol iscsi_conn_get_param
ib_iser: Unknown symbol iscsi_conn_get_param
ib_iser: disagrees about version of symbol iscsi_conn_teardown
ib_iser: Unknown symbol iscsi_conn_teardown
ib_iser: disagrees about version of symbol iscsi_session_get_param
ib_iser: Unknown symbol iscsi_session_get_param
ib_iser: disagrees about version of symbol iscsi_conn_send_pdu
ib_iser: Unknown symbol iscsi_conn_send_pdu
ib_iser: disagrees about version of symbol iscsi_conn_start
ib_iser: Unknown symbol iscsi_conn_start
ib_iser: disagrees about version of symbol
iscsi_prep_unsolicit_data_pdu
ib_iser: Unknown symbol iscsi_prep_unsolicit_data_pdu
ib_iser: disagrees about version of symbol iscsi_session_teardown
ib_iser: Unknown symbol iscsi_session_teardown
ib_iser: disagrees about version of symbol iscsi_unregister_transport
ib_iser: Unknown symbol iscsi_unregister_transport
ib_iser: disagrees about version of symbol iscsi_conn_stop
ib_iser: Unknown symbol iscsi_conn_stop

So how should I do ?

Erez Zilber

unread,
Oct 16, 2007, 5:03:23 AM10/16/07
to open-...@googlegroups.com
sbe...@gmail.com wrote:
> On Oct 15, 9:16 pm, Mike Christie <micha...@cs.wisc.edu> wrote:
>
>> sber...@gmail.com wrote:
>>
>>> The userland tools are compiled from open-iscsi-2.0-865.13.tar.gz, the
>>> kernel modules of the linux are the modules from the debian kernel
>>> package (2.6.18.dfsg.1-13etch3).
>>>
>> I am not familiar with the the debian kernel and what they backport, but
>> it probably does not have a fix for open solaris that was done after
>> 2.6.18 was out.
>>
>> I would use the kernel modules from open-iscsi-2.0-865.13.tar.gz if you
>> can. It has a fix for open solaris where the iscsi_tcp module was not
>> handling data and padding coming in two different skbs.
>>
> I tried to compile and install the modules from open-
> iscsi-2.0-865.13.tar.gz with the debian kernel and headers, it leads
> to the following situation :
> # modprobe ib_iser
> FATAL: Error inserting ib_iser (/lib/modules/2.6.18-5-686/kernel/
> drivers/infiniband/ulp/iser/ib_iser.ko): Unknown symbol in module, or
> unknown parameter (see dmesg)
>
> And from the kernel :
> ib_iser: disagrees about version of symbol iscsi_conn_setup
> ib_iser: Unknown symbol iscsi_conn_setup
>

The problem is that ib_iser was compiled against other open-iscsi
symbols (probably the open-iscsi version that came with Debian). Now,
you're using another version of open-iscsi, and ib_iser cannot be
loaded. If you don't need iSER, the quickest solution is to remove it
from the init script (i.e. /etc/init.d/iscsi or whatever it is). If you
need iSER, I can try to help you in a different way.

Erez

sbe...@gmail.com

unread,
Oct 16, 2007, 5:56:25 AM10/16/07
to open-iscsi

On Oct 16, 11:03 am, Erez Zilber <er...@Voltaire.COM> wrote:

Maybe the good question is then what is ib_iser used for ? ::)

Stefan

Erez Zilber

unread,
Oct 16, 2007, 7:33:13 AM10/16/07
to open-...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages