RHEL6: kernel BUG at net/sunrpc/svcsock.c:948 - nfsd crash in svc_tcp_clear_pages and RIP svc_tcp_sock_detach

Solution In Progress - Updated -

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.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content