Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Debian Kernel (http://www.linux-archive.org/debian-kernel/)
-   -   Bug#453747: linux-image-2.6.18-5-amd64: inconsistent RPC record marking prevents nfsroot from Solaris NFS server (http://www.linux-archive.org/debian-kernel/9581-bug-453747-linux-image-2-6-18-5-amd64-inconsistent-rpc-record-marking-prevents-nfsroot-solaris-nfs-server.html)

Hristo Iliev 11-30-2007 09:18 PM

Bug#453747: linux-image-2.6.18-5-amd64: inconsistent RPC record marking prevents nfsroot from Solaris NFS server
 
Package: linux-image-2.6.18-5-amd64
Version: 2.6.18.dfsg.1-13etch4
Severity: normal

*** Please type your report below this line ***
While trying to network boot Debian 2.6.18-5-amd64 kernel and mounting
root from an OpenSolaris NFS server boot process hangs like that:
...
Begin: Running /scripts/nfs-premount ...
Done.
<hangs here>

Looking at the network stream with tshark reveals that the RPC request
to server's portmapper is malformed: RPC fragment header states
incorrect fragment size - 4 bytes more. The malformed request never
gets answered by Sun's rpcbind and thus boot process halts.

The RPC request sent looks like this (Ethernet addresses masked out):
0000 ** ** ** ** ** ** ** ** ** ** ** ** 08 00 45 00 ************..E.
0010 00 70 9d a5 40 00 40 06 85 dc 0a 01 01 0b 0a 01 .p..@.@.........
0020 01 fa ad e2 00 6f 5e 6b 77 02 e2 5b 3d 3d 80 18 .....o^kw..[==..
0030 00 2e db ed 00 00 01 01 08 0a ff fe ea a4 20 87 .............. .
0040 d1 46 80 00 00 3c ff e1 76 18 00 00 00 00 00 00 .F...<..v.......
^^^^^^^^^^^
0050 00 02 00 01 86 a0 00 00 00 02 00 00 00 03 00 00 ................
0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ................
0070 86 a3 00 00 00 03 00 00 00 06 00 00 00 00 f1 af ................
0080 86 4e

The last four bytes (0xf1af864e) are Ethernet trailer and are NOT part
of the TCP payload.

RPC packet analysis:
Remote Procedure Call, Type:Call XID:0xffe17618
Fragment header: Last fragment, 60 bytes <-- WRONG!
XID: 0xffe17618 (4292965912)
Message Type: Call (0)
RPC Version: 2
Program: Portmap (100000)
Program Version: 2
Procedure: GETPORT (3)
Credentials
Flavor: AUTH_NULL (0)
Length: 0
Verifier
Flavor: AUTH_NULL (0)
Length: 0
Portmap GETPORT Call NFS(100003) Version:3 TCP
[Program Version: 2]
[V2 Procedure: GETPROT (3)]
Program: NFS (100003)
Version: 3
Proto: TCP (6)
Port: 0

RPC header (dword at 0x42) states frament size of 0x3c (60) bytes but
fragment is only 0x38 (56) bytes in length.

I've checked with Ubuntu's 2.6.17-12-generic, 2.6.17-10-server and
2.6.22-14-server - they issue RPCs with correct fragment size and are
able to talk to Sun's rpcbind. 2.6.17 calls DUMP while 2.6.2 calls
GETPORT (as 2.6.18 does) with correct fragment size of 56 bytes.

This bug does not shows up when using Linux NFS server since Linux
portmap DOES respond to such malformed RPC requests.

I'm using stock 2.6.18-5-amd64 from Debian Etch 4.0.

-- System Information:
Debian Release: 4.0
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-5-amd64
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)


All times are GMT. The time now is 08:21 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.