[Bugs] [Bug 1744874] New: interrupts leak memory

bugzilla at redhat.com bugzilla at redhat.com
Fri Aug 23 04:59:48 UTC 2019


https://bugzilla.redhat.com/show_bug.cgi?id=1744874

            Bug ID: 1744874
           Summary: interrupts leak memory
           Product: GlusterFS
           Version: 7
            Status: NEW
         Component: fuse
          Keywords: Reopened
          Assignee: bugs at gluster.org
          Reporter: nbalacha at redhat.com
                CC: bugs at gluster.org, csaba at redhat.com
        Depends On: 1728047
            Blocks: 1734423
  Target Milestone: ---
    Classification: Community



+++ This bug was initially created as a clone of Bug #1728047 +++

Description of problem:

When the glusterfs fuse client gets an INTERRUPT message (ie. a process gets
SIGINT while in a syscall to the filesystem), not all data allocated by the
handler code is freed.

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

>= 6.0

The issue appears with the introduction of the interrupt handling framework.

How reproducible:

Always

Steps to Reproduce:
1. Compile the test helper of the tests/features/interrupt.t test,
open_and_sleep.c:

  $ gcc -o open_and_sleep tests/features/open_and_sleep.c

2. Mount a glusterfs volume 
3. Run the command used in tests/features/interrupt.t in a loop against some
file in the mount:

   $ while :; do ./open_and_sleep <SOME-FILE> | { sleep 0.1; xargs -n1 kill
-INT; }
3. Take statedumps at regular intervals and check gf_fuse_mt_iov_base memusage:

   # grep -A5 gf_fuse_mt_iov_base <STATEDUMP>

Actual results:

Values of size and num_alloc fields monotonously grow with time across
statedumps.

Expected results:

Values of size and num_alloc fields stay low across statedumps.

--- Additional comment from Csaba Henk on 2019-07-08 22:11:10 UTC ---

Command in reproduction step 3. is incomplete. It should be:

  $ while :; do ./open_and_sleep <SOME-FILE> | { sleep 0.1; xargs -n1 kill
-INT; }; done

Improved version which also displays a counter:

  $ i=1; while :; do echo -en "\r$i  "; ./open_and_sleep <SOME-FILE> | { sleep
0.1; xargs -n1 kill -INT; }; i=$(($i+1)); done

--- Additional comment from Worker Ant on 2019-07-09 09:10:00 UTC ---

REVIEW: https://review.gluster.org/23016 (fuse: add missing GF_FREE to
fuse_interrupt) posted (#1) for review on master by Csaba Henk

--- Additional comment from Worker Ant on 2019-07-25 16:46:43 UTC ---

REVIEW: https://review.gluster.org/23016 (fuse: add missing GF_FREE to
fuse_interrupt) merged (#4) on master by Amar Tumballi

--- Additional comment from Worker Ant on 2019-08-22 11:13:14 UTC ---

REVIEW: https://review.gluster.org/23285 (fuse: add missing GF_FREE to
fuse_interrupt) posted (#1) for review on release-7 by Csaba Henk


Referenced Bugs:

https://bugzilla.redhat.com/show_bug.cgi?id=1728047
[Bug 1728047] interrupts leak memory
https://bugzilla.redhat.com/show_bug.cgi?id=1734423
[Bug 1734423] interrupts leak memory
-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the Bugs mailing list