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, tools, and much more.