Bug 1314622 - [RHEL-7] gluster-swift: During GETs, duplicate fd leaks for files that need Etag recomputed
Summary: [RHEL-7] gluster-swift: During GETs, duplicate fd leaks for files that need E...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Gluster Storage
Classification: Red Hat Storage
Component: gluster-swift
Version: rhgs-3.1
Hardware: All
OS: All
high
high
Target Milestone: ---
: RHGS 3.1.3
Assignee: Prashanth Pai
QA Contact: surabhi
URL:
Whiteboard:
Depends On:
Blocks: 1299184 1328443
TreeView+ depends on / blocked
 
Reported: 2016-03-04 05:47 UTC by Prashanth Pai
Modified: 2016-06-23 05:31 UTC (History)
5 users (show)

Fixed In Version: swiftonfile-2.3.0-0
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1328443 (view as bug list)
Environment:
Last Closed: 2016-06-23 05:31:38 UTC
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2016:1289 0 normal SHIPPED_LIVE gluster-swift update for Red Hat Gluster Storage 3.1 update 3 2016-06-23 09:12:16 UTC

Description Prashanth Pai 2016-03-04 05:47:54 UTC
Description of problem:

A fd was not bring closed after it was duplicated. This code path can
be easily hit when doing a GET on a file that needs Etag (md5sum) to
be recalculated.

# echo "aaaaaaaaaaa" > /mnt/gluster-object/test/c1/f6

# curl -i http://localhost:8080/v1/AUTH_test/c1/f6 -X GET

# strace -ff -p 10245 -e open,close,dup

    Process 10245 attached with 21 threads
    [pid 10245] open("/mnt/gluster-object/test/c1/f6", O_RDONLY|O_CLOEXEC) = 7
    [pid 10245] dup(7)                      = 14
    [pid 10245] close(7)                    = 0

# ls -l /proc/10245/fd | grep f6

    lr-x------. 1 root root 64 Mar  3 16:38 14 -> /mnt/gluster-object/test/c1/f6

Comment 1 Prashanth Pai 2016-03-04 05:50:58 UTC
Upstream change on review: http://review.gluster.org/13593

Comment 4 Prashanth Pai 2016-03-10 09:11:45 UTC
Upstream change merged: http://review.gluster.org/#/c/13593/

Comment 9 surabhi 2016-04-25 09:20:41 UTC
Followed following steps :

1. PUT an object with some data :
curl -i -d "swiftonfile" http://localhost:8080/v1/AUTH_test/c1/file1 -X PUT

2. curl -i http://localhost:8080/v1/AUTH_test/c1/file1 -X GET

3. Observe the process by attaching to strace:

Process 19074 attached with 21 threads
[pid 19074] open("/mnt/gluster-object/test/c1/file1", O_RDONLY|O_CLOEXEC) = 10
[pid 19074] close(10)                   = 0
[pid 19074] close(6)                    = 0


4. # echo "aaaaaaaaaaa" > /mnt/gluster-object/test/c1/file1

[pid 19074] open("/mnt/gluster-object/test/c1/file1", O_RDONLY|O_CLOEXEC) = 10
[pid 19074] dup(10)                     = 12
[pid 19074] close(12)                   = 0
[pid 19074] close(10)                   = 0

5. # curl -i http://localhost:8080/v1/AUTH_test/c1/file1 -X GET

Process 19074 attached with 21 threads
[pid 19074] open("/mnt/gluster-object/test/c1/file1", O_RDONLY|O_CLOEXEC) = 10
[pid 19074] close(10)                   = 0
[pid 19074] close(6)                    = 0
[pid 19074] open("/mnt/gluster-object/test/c1/file1", O_RDONLY|O_CLOEXEC) = 10
[pid 19074] dup(10)                     = 12
[pid 19074] close(12)                   = 0
[pid 19074] close(10)                   = 0
[pid 19074] close(6)                    = 0

ls -l /proc/19074/fd | grep file1

There is no fd leak observed on open , dup and also verified there is close on each open. Marking the BZ to verified.

Versions:
swiftonfile-2.3.0-2.el7rhgs.noarch
glusterfs-3.7.9-1.el7rhgs.x86_64

Comment 11 errata-xmlrpc 2016-06-23 05:31:38 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.

https://access.redhat.com/errata/RHEA-2016:1289


Note You need to log in before you can comment on or make changes to this bug.