RHEL6: kernel BUG at net/sunrpc/svcsock.c:948 - nfsd crash in svc_tcp_clear_pages and RIP svc_tcp_sock_detach
Issue
- NFS server (nfsd)
kernel BUG at net/sunrpc/svcsock.c:948- BUG_ON in svc_tcp_clear_pages and RIP svc_tcp_sock_detach
kernel: nfsd: recvfrom returned errno 104
kernel: ------------[ cut here ]------------
kernel: kernel BUG at net/sunrpc/svcsock.c:948!
kernel: invalid opcode: 0000 [#1] SMP
- resolving the above line to source code shows the following assertion was hit:
BUG_ON(svsk->sk_pages[i] == NULL);
net/sunrpc/svcsock.c
939 static void svc_tcp_clear_pages(struct svc_sock *svsk)
940 {
941 unsigned int i, len, npages;
942
943 if (svsk->sk_tcplen <= sizeof(rpc_fraghdr))
944 goto out;
945 len = svsk->sk_tcplen - sizeof(rpc_fraghdr);
946 npages = (len + PAGE_SIZE - 1) >> PAGE_SHIFT;
947 for (i = 0; i < npages; i++) {
948--> BUG_ON(svsk->sk_pages[i] == NULL);
949 put_page(svsk->sk_pages[i]);
950 svsk->sk_pages[i] = NULL;
951 }
Environment
- Red Hat Enterprise Linux (RHEL) 6 (NFS server)
- seen on kernels: 2.6.32-131.18.1.el6, 2.6.32-279.el6
- many other RHEL6 kernels affected (see Resolution section)
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
