Bug 1740668

Summary: crash from accept() in beast frontend
Product: [Red Hat Storage] Red Hat Ceph Storage Reporter: Casey Bodley <cbodley>
Component: RGWAssignee: Casey Bodley <cbodley>
Status: CLOSED ERRATA QA Contact: RUDRA PRATAP <rpratap>
Severity: high Docs Contact: Erin Donnelly <edonnell>
Priority: urgent    
Version: 3.3CC: assingh, cbodley, ceph-eng-bugs, ceph-qe-bugs, edonnell, kbader, mbenjamin, rpratap, sweil, tserlin
Target Milestone: z1   
Target Release: 3.3   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: RHEL: ceph-12.2.12-64.el7cp Ubuntu: ceph_12.2.12-57redhat1 Doc Type: Bug Fix
Doc Text:
.Ceph Object Gateway no longer terminates when there are many open file descriptors Previously, the Ceph Object Gateway with Beast front end terminated with an uncaught exception if there were many open file descriptors. With this update, the Ceph Object Gateway no longer terminates.
Story Points: ---
Clone Of:
: 1762910 (view as bug list) Environment:
Last Closed: 2019-10-22 13:29:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1726135, 1762910    

Description Casey Bodley 2019-08-13 12:50:23 UTC
Description of problem:

Some errors from accept() are incorrectly thrown as exceptions, which are not caught and terminate the process. One such error is EMFILE (Too many open files) and is easy to reproduce with ulimit.

Version-Release number of selected component (if applicable):

How reproducible:


Steps to Reproduce:
1. Run radosgw with a small number of file descriptors, ie 'ulimit -n 128'
2. Execute several client requests on different connections

Actual results:

radosgw terminates with an uncaught exception

Expected results:

radosgw logs an error and continues trying to accept connections

Additional info:

Comment 17 errata-xmlrpc 2019-10-22 13:29:24 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.