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:
Bug Depends On:    
Bug Blocks: 215099    

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