Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 210453

Summary: gnbd handles signals outside process context
Product: [Retired] Red Hat Cluster Suite Reporter: Bryn M. Reeves <bmr>
Component: gnbdAssignee: Ben Marzinski <bmarzins>
Status: CLOSED ERRATA QA Contact: Cluster QE <mspqa-list>
Severity: high Docs Contact:
Priority: medium    
Version: 4CC: cluster-maint, tao
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: RHBA-2007-0144 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-05-10 21:06:11 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Bryn M. Reeves 2006-10-12 08:26:40 UTC
Description of problem:
Processes accessing a GFS filesystem backed by gnbd devices become stuck in D
state. 

At the time of the hangs messages appear on the client nodes from gnbd:

Sep  4 14:06:01 HPC2 sshd(pam_unix)[18706]: session closed for user jopan
Sep  4 14:08:54 HPC2 kernel: gnbd (pid 18821: MakeNearBnBtJPE) got signal 9
Sep  4 14:08:54 HPC2 kernel: gnbd5: Send control failed (result -4)
Sep  4 14:10:17 HPC2 sshd(pam_unix)[18844]: session opened for user jopan by (uid=0)
Sep  4 14:10:19 HPC2 sshd(pam_unix)[18844]: session closed for user jopan

It looks like sock_xmit is being called via do_gnbd_request and gnbd_send_req
outside process context (softirq?).

At this time, current evaluates to the last process to be scheduled instead of
the gnbd thread. If the process happens to have a signal pending when we return
from sock_sendmsg, sock_xmit incorrectly dequeues it and returns -EINTR.

We should only attempt signal handling when running in the context of the gnbd
thread.

Comment 5 Red Hat Bugzilla 2007-05-10 21:06:11 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2007-0144.html