[Bug 756897] New: NFSv4 Client side ID mapping does not work in Tumbleweed kernel 3.3.1-19-desktop
https://bugzilla.novell.com/show_bug.cgi?id=756897 https://bugzilla.novell.com/show_bug.cgi?id=756897#c0 Summary: NFSv4 Client side ID mapping does not work in Tumbleweed kernel 3.3.1-19-desktop Classification: openSUSE Product: openSUSE 12.1 Version: Final Platform: i586 OS/Version: openSUSE 12.1 Status: NEW Severity: Major Priority: P5 - None Component: Kernel AssignedTo: kernel-maintainers@forge.provo.novell.com ReportedBy: kretebe@freemail.hu QAContact: qa-bugs@suse.de Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0 The NFSv4 client sends untranslated UID and GUID to the server, which then malfunctions. The actual example is about trying to chown a file by a user that actually owns the file. The file's GID is users the user is a member of the users group. The same works flawlessly on kernel 3.1.9-1.4-desktop with the same rpc.idmapd. Reproducible: Always Steps to Reproduce: 1. Install kernel 3.3.1-19-desktop 2. Mount NFSv4 share 3. Chown a file 4. Capture NFS traffic on server side (192.168.0.2 in the example) or start rpc.idmapd -f -vvv Actual Results: With client kernel 3.3.1-19-desktop: Server side rpc.idmapd output contains items like this: Apr 12 16:11:06 titan rpc.idmapd[31754]: nss_getpwnam: name '1000' does not map into domain 'szilva' idmapd complaining about the reception of a clearly incompatible NFSv4 id. The above is confirmed by the network traffic capture of NFS, where the symptom is clear (see fattr4_owner and fattr4_owner_group with numerical ID's 1000 and 100): [tshark -f "port nfs and src host 192.168.0.220" -V] output: Frame 3 (278 bytes on wire, 278 bytes captured) Arrival Time: Apr 12, 2012 20:27:28.938393000 [Time delta from previous captured frame: 0.001421000 seconds] [Time delta from previous displayed frame: 0.001421000 seconds] [Time since reference or first frame: 0.002648000 seconds] Frame Number: 3 Frame Length: 278 bytes Capture Length: 278 bytes [Frame is marked: False] [Protocols in frame: eth:ip:tcp:rpc:nfs] Ethernet II, Src: Intel_45:3e:12 (00:16:6f:45:3e:12), Dst: HewlettP_34:b3:7f (00:02:a5:34:b3:7f) Destination: HewlettP_34:b3:7f (00:02:a5:34:b3:7f) Address: HewlettP_34:b3:7f (00:02:a5:34:b3:7f) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) Source: Intel_45:3e:12 (00:16:6f:45:3e:12) Address: Intel_45:3e:12 (00:16:6f:45:3e:12) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) Type: IP (0x0800) Internet Protocol, Src: 192.168.0.220 (192.168.0.220), Dst: 192.168.0.2 (192.168.0.2) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 264 Identification: 0x9128 (37160) Flags: 0x04 (Don't Fragment) 0... = Reserved bit: Not set .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: TCP (0x06) Header checksum: 0x2699 [correct] [Good: True] [Bad : False] Source: 192.168.0.220 (192.168.0.220) Destination: 192.168.0.2 (192.168.0.2) Transmission Control Protocol, Src Port: 890 (890), Dst Port: nfs (2049), Seq: 161, Ack: 209, Len: 212 Source port: 890 (890) Destination port: nfs (2049) Sequence number: 161 (relative sequence number) [Next sequence number: 373 (relative sequence number)] Acknowledgement number: 209 (relative ack number) Header length: 32 bytes Flags: 0x18 (PSH, ACK) 0... .... = Congestion Window Reduced (CWR): Not set .0.. .... = ECN-Echo: Not set ..0. .... = Urgent: Not set ...1 .... = Acknowledgment: Set .... 1... = Push: Set .... .0.. = Reset: Not set .... ..0. = Syn: Not set .... ...0 = Fin: Not set Window size: 4006 Checksum: 0xbefd [correct] [Good Checksum: True] [Bad Checksum: False] Options: (12 bytes) NOP NOP Timestamps: TSval 1406532, TSecr 3013918064 Remote Procedure Call, Type:Call XID:0xd735a4c7 Fragment header: Last fragment, 208 bytes 1... .... .... .... .... .... .... .... = Last Fragment: Yes .000 0000 0000 0000 0000 0000 1101 0000 = Fragment Length: 208 XID: 0xd735a4c7 (3610617031) Message Type: Call (0) RPC Version: 2 Program: NFS (100003) Program Version: 4 Procedure: COMP (1) Credentials Flavor: AUTH_UNIX (1) Length: 60 Stamp: 0x0000057e Machine Name: domalaptop.sbp.intra length: 20 contents: domalaptop.sbp.intra UID: 1000 GID: 100 Auxiliary GIDs GID: 7 GID: 17 GID: 33 GID: 100 GID: 111 Verifier Flavor: AUTH_NULL (0) Length: 0 Network File System, Ops(3): PUTFH SETATTR GETATTR [Program Version: 4] [V4 Procedure: COMPOUND (1)] Tag: <EMPTY> length: 0 contents: <EMPTY> minorversion: 0 Operations (count: 3) Opcode: PUTFH (22) filehandle length: 20 [hash: 0x94b42c7e] decode type as: unknown filehandle: 01000001000900001C813D0058803D00D1BCB8CB Opcode: SETATTR (34) stateid seqid: 0x00000000 Data: 000000000000000000000000 obj_attributes attrmask recc_attr: FATTR4_OWNER (36) fattr4_owner: 1000 length: 4 contents: 1000 recc_attr: FATTR4_OWNER_GROUP (37) fattr4_owner_group: 100 length: 3 contents: 100 fill bytes: opaque data attr_vals: <DATA> length: 16 contents: <DATA> Opcode: GETATTR (9) attrmask mand_attr: FATTR4_TYPE (1) mand_attr: FATTR4_CHANGE (3) mand_attr: FATTR4_SIZE (4) mand_attr: FATTR4_FSID (8) recc_attr: FATTR4_FILEID (20) recc_attr: FATTR4_MODE (33) recc_attr: FATTR4_NUMLINKS (35) recc_attr: FATTR4_OWNER (36) recc_attr: FATTR4_OWNER_GROUP (37) recc_attr: FATTR4_RAWDEV (41) recc_attr: FATTR4_SPACE_USED (45) recc_attr: FATTR4_TIME_ACCESS (47) recc_attr: FATTR4_TIME_METADATA (52) recc_attr: FATTR4_TIME_MODIFY (53) Expected Results: With client kernel 3.1.9-1.4-desktop the same looks correct on the server side: The fattr4_owner and fattr4_owner_group contain the correct principal@domain strings: Server side rpc.idmapd output is now correct. [tshark -f "port nfs and src host 192.168.0.3" -V] output: Frame 3 (278 bytes on wire, 278 bytes captured) Arrival Time: Apr 12, 2012 19:33:19.208082000 [Time delta from previous captured frame: 0.001175000 seconds] [Time delta from previous displayed frame: 0.001175000 seconds] [Time since reference or first frame: 0.002192000 seconds] Frame Number: 3 Frame Length: 278 bytes Capture Length: 278 bytes [Frame is marked: False] [Protocols in frame: eth:ip:tcp:rpc:nfs] Ethernet II, Src: AsustekC_e8:f0:e2 (00:18:f3:e8:f0:e2), Dst: HewlettP_34:b3:7f (00:02:a5:34:b3:7f) Destination: HewlettP_34:b3:7f (00:02:a5:34:b3:7f) Address: HewlettP_34:b3:7f (00:02:a5:34:b3:7f) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) Source: AsustekC_e8:f0:e2 (00:18:f3:e8:f0:e2) Address: AsustekC_e8:f0:e2 (00:18:f3:e8:f0:e2) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) Type: IP (0x0800) Internet Protocol, Src: 192.168.0.3 (192.168.0.3), Dst: 192.168.0.2 (192.168.0.2) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 264 Identification: 0x67fe (26622) Flags: 0x04 (Don't Fragment) 0... = Reserved bit: Not set .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: TCP (0x06) Header checksum: 0x509c [correct] [Good: True] [Bad : False] Source: 192.168.0.3 (192.168.0.3) Destination: 192.168.0.2 (192.168.0.2) Transmission Control Protocol, Src Port: 791 (791), Dst Port: nfs (2049), Seq: 145, Ack: 209, Len: 212 Source port: 791 (791) Destination port: nfs (2049) Sequence number: 145 (relative sequence number) [Next sequence number: 357 (relative sequence number)] Acknowledgement number: 209 (relative ack number) Header length: 32 bytes Flags: 0x18 (PSH, ACK) 0... .... = Congestion Window Reduced (CWR): Not set .0.. .... = ECN-Echo: Not set ..0. .... = Urgent: Not set ...1 .... = Acknowledgment: Set .... 1... = Push: Set .... .0.. = Reset: Not set .... ..0. = Syn: Not set .... ...0 = Fin: Not set Window size: 4006 Checksum: 0xed9c [correct] [Good Checksum: True] [Bad Checksum: False] Options: (12 bytes) NOP NOP Timestamps: TSval 4294826548, TSecr 3010668643 Remote Procedure Call, Type:Call XID:0xf2eaafc4 Fragment header: Last fragment, 208 bytes 1... .... .... .... .... .... .... .... = Last Fragment: Yes .000 0000 0000 0000 0000 0000 1101 0000 = Fragment Length: 208 XID: 0xf2eaafc4 (4075466692) Message Type: Call (0) RPC Version: 2 Program: NFS (100003) Program Version: 4 Procedure: COMP (1) Credentials Flavor: AUTH_UNIX (1) Length: 44 Stamp: 0x004188aa Machine Name: nappali length: 7 contents: nappali fill bytes: opaque data UID: 1001 GID: 100 Auxiliary GIDs GID: 17 GID: 33 GID: 100 GID: 111 Verifier Flavor: AUTH_NULL (0) Length: 0 Network File System, Ops(3): PUTFH SETATTR GETATTR [Program Version: 4] [V4 Procedure: COMPOUND (1)] Tag: <EMPTY> length: 0 contents: <EMPTY> minorversion: 0 Operations (count: 3) Opcode: PUTFH (22) filehandle length: 20 [hash: 0x94b42c7e] decode type as: unknown filehandle: 01000001000900001C813D0058803D00D1BCB8CB Opcode: SETATTR (34) stateid seqid: 0x00000000 Data: 000000000000000000000000 obj_attributes attrmask recc_attr: FATTR4_OWNER (36) fattr4_owner: doma@szilva length: 11 contents: doma@szilva fill bytes: opaque data recc_attr: FATTR4_OWNER_GROUP (37) fattr4_owner_group: users@szilva length: 12 contents: users@szilva attr_vals: <DATA> length: 32 contents: <DATA> Opcode: GETATTR (9) attrmask mand_attr: FATTR4_TYPE (1) mand_attr: FATTR4_CHANGE (3) mand_attr: FATTR4_SIZE (4) mand_attr: FATTR4_FSID (8) recc_attr: FATTR4_FILEID (20) recc_attr: FATTR4_MODE (33) recc_attr: FATTR4_NUMLINKS (35) recc_attr: FATTR4_OWNER (36) recc_attr: FATTR4_OWNER_GROUP (37) recc_attr: FATTR4_RAWDEV (41) recc_attr: FATTR4_SPACE_USED (45) recc_attr: FATTR4_TIME_ACCESS (47) recc_attr: FATTR4_TIME_METADATA (52) recc_attr: FATTR4_TIME_MODIFY (53) -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=756897
https://bugzilla.novell.com/show_bug.cgi?id=756897#c1
Domokos Molnár
https://bugzilla.novell.com/show_bug.cgi?id=756897
https://bugzilla.novell.com/show_bug.cgi?id=756897#c2
Jeff Mahoney
https://bugzilla.novell.com/show_bug.cgi?id=756897
https://bugzilla.novell.com/show_bug.cgi?id=756897#c3
Marco Munderloh
https://bugzilla.novell.com/show_bug.cgi?id=756897
https://bugzilla.novell.com/show_bug.cgi?id=756897#c4
Domokos Molnár
participants (1)
-
bugzilla_noreply@novell.com