[Bug 242146] nfs root mount may loop endlessly without hint on console
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Thu Nov 21 19:10:24 UTC 2019
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242146
Bug ID: 242146
Summary: nfs root mount may loop endlessly without hint on
console
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: kern
Assignee: bugs at FreeBSD.org
Reporter: bz at FreeBSD.org
CC: rmacklem at FreeBSD.org
If we are trying to mount the root file system over NFS and cannot establish a
connection we do never give up. TCP/2049 packets arrive at the server, RST
comes back.
The reason is in newnfs_request() which seems to jump back to tryagain; at
least that is my guess for the loop as I couldn't spot it earlier and the
socreate() is part of the loop:
1599 XXX-BZ socreate:553^M
1600 XXX-BZ tcp_usr_attach:155 fff 4^M
1601 XXX-BZ tcp_usr_attach:161^M
1602 XXX-BZ tcp_usr_attach:171 error 0^M
1603 XXX-BZ socreate:553^M
1604 XXX-BZ tcp_usr_attach:155 fff 5^M
1605 XXX-BZ tcp_usr_attach:161^M
1606 XXX-BZ tcp_usr_attach:171 error 0^M
1607 XXX-BZ socreate:553^M
1608 XXX-BZ tcp_usr_attach:155 fff 6^M
1609 XXX-BZ tcp_usr_attach:161^M
1610 XXX-BZ tcp_usr_attach:171 error 0^M
1611 XXX-BZ socreate:553^M
1612 XXX-BZ tcp_usr_attach:155 fff 7^M
1613 XXX-BZ tcp_usr_attach:161^M
1614 XXX-BZ tcp_usr_attach:171 error 0^M
I added a panic if I come by 15 times to get a backtrace.
panic() at panic+0x43/frame 0xfffffe00acf58b70
tcp_usr_attach() at tcp_usr_attach+0x2b7/frame 0xfffffe00acf58be0
socreate() at socreate+0x1ce/frame 0xfffffe00acf58c30
__rpc_nconf2socket() at __rpc_nconf2socket+0x3f/frame 0xfffffe00acf58c60
clnt_reconnect_call() at clnt_reconnect_call+0x3b6/frame 0xfffffe00acf58d10
newnfs_request() at newnfs_request+0x90b/frame 0xfffffe00acf58e80
nfsrpc_getattrnovp() at nfsrpc_getattrnovp+0xeb/frame 0xfffffe00acf59020
mountnfs() at mountnfs+0x6b6/frame 0xfffffe00acf591c0
nfs_mount() at nfs_mount+0x11d3/frame 0xfffffe00acf59500
vfs_mount_sigdefer() at vfs_mount_sigdefer+0x24/frame 0xfffffe00acf59520
vfs_domount() at vfs_domount+0x7f9/frame 0xfffffe00acf59750
vfs_donmount() at vfs_donmount+0x911/frame 0xfffffe00acf597f0
kernel_mount() at kernel_mount+0x57/frame 0xfffffe00acf59840
parse_mount() at parse_mount+0x4a1/frame 0xfffffe00acf59990
vfs_mountroot() at vfs_mountroot+0x53b/frame 0xfffffe00acf59b10
start_init() at start_init+0x28/frame 0xfffffe00acf59bb0
I would suggest we'd rather really timeout / error after <n> retries and
possibly reboot or fail mountroot or whatever it'll be, rather than being stuck
in a loop without letting the user know that "NFS server not reachable:
connection refused".
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list