Logsys file leaks in /dev/shm after sigabrt, sigsegv and when running corosync -v

Bug #1530837 reported by Rafael David Tinoco
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
corosync (Ubuntu)
Fix Released
Medium
Unassigned
Trusty
Fix Released
Medium
Rafael David Tinoco

Bug Description

[Impact]

 * corosync has a memory leak problem with multiple calls to corosync -v
 * corosync has a memory leak problem by not properly handling signals

[Test Case]

 * run "corosync -v" multiple times
 * some cloud tools do that

[Regression Potential]

 * minor code changes on not-core code
 * based on upstream changes
 * based on a redhat fix

[Other Info]

# Original BUG Description

It was brought to my attention that Ubuntu also suffers from:

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

And corosync should include the following fixes:

----

commit dfaca4b10a005681230a81e229384b6cd239b4f6
Author: Jan Friesse <email address hidden>
Date: Wed Jul 9 15:52:14 2014 +0200

Fix compiler warning introduced by previous patch

QB loop signal handler prototype differs from signal(2) prototype.
Solution is to create wrapper functions.

Signed-off-by: Jan Friesse <email address hidden>

commit 384760cb670836dc37e243f594612c6e68f44351
Author: zouyu <email address hidden>
Date: Thu Jul 3 10:56:02 2014 +0800

Handle SIGSEGV and SIGABRT signals

SIGSEGV and SIGABRT signals are now correctly handled (blackbox is
dumped and logsys is finalized).

Signed-off-by: zouyu <email address hidden>
Reviewed-by: Jan Friesse <email address hidden>

commit cc80c8567d6eec1d136f9e85d2f8dfb957337eef
Author: zouyu <email address hidden>
Date: Wed Jul 2 10:00:53 2014 +0800

fix memory leak produced by 'corosync -v'

Signed-off-by: zouyu <email address hidden>
Reviewed-by: Jan Friesse <email address hidden>

----

Description from Red Hat bug:

"""
Description of problem:
When corosync receives sigabrt or sigsegv it doesn't delete libqb blackbox file (/dev/shm one). Same happens when corosync is executed with -v parameter (this shows only version, so it shouldn't cause leak in /dev/shm).

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

How reproducible:
100%

Steps to Reproduce 1:
1. Start corosync
2. Send sigabrt to corosync

Steps to Reproduce 1:
1. Execute corosync -v

Actual results:
File like qb-corosync-*-blackbox-data|header exists results in leak of /dev/shm space.

Expected results:
No leak

Additional info:
"""

Changed in corosync (Ubuntu):
status: New → Confirmed
assignee: nobody → Rafael David Tinoco (inaddy)
Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :
description: updated
Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :

Fix for Trusty.

Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :

Those fixes are already included in corosync v2.3.4:

$ git tag --contains cc80c8567d6eec1d136f9e85d2f8dfb957337eef
v2.3.4
v2.3.5
$ git tag --contains 384760cb670836dc37e243f594612c6e68f44351
v2.3.4
v2.3.5
$ git tag --contains dfaca4b10a005681230a81e229384b6cd239b4f6
v2.3.4
v2.3.5

inaddy@lp1530837trusty(corosync)$ rmadison corosync
 corosync | 1.4.2-2 | precise
 corosync | 1.4.2-2ubuntu0.2 | precise-updates
 corosync | 2.3.3-1ubuntu1 | trusty
 corosync | 2.3.4-0ubuntu1 | vivid
 corosync | 2.3.4-0ubuntu1 | wily
 corosync | 2.3.4-0ubuntu1 | xenial
 corosync | 2.3.5-3 | xenial-proposed

Thus.. only Trusty needs the fix.

Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :

Waiting for the BUG to be sponsored.

Thank you.

Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :

BTW,

I provided a public PPA:

https://launchpad.net/~inaddy/+archive/ubuntu/lp1530837

If anyone suffering from this is interested in having a hotfix while SRU isn't ready.

Thank you

Changed in corosync (Ubuntu Trusty):
status: New → Confirmed
Changed in corosync (Ubuntu):
status: Confirmed → Fix Released
Changed in corosync (Ubuntu Trusty):
assignee: nobody → Rafael David Tinoco (inaddy)
Changed in corosync (Ubuntu):
assignee: Rafael David Tinoco (inaddy) → nobody
Mathew Hodson (mhodson)
Changed in corosync (Ubuntu):
importance: Undecided → Medium
Changed in corosync (Ubuntu Trusty):
importance: Undecided → Medium
Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

Hi! Thanks for providing the debdiff.

The patches in the debdiff contain unwanted changes:

$ quilt push -a
Applying patch leak-produced-by-corosync-v.patch
patching file exec/main.c
patching file exec/main.c.orig

Applying patch Handle-SIGSEGV-and-SIGABRT-signals.patch
patching file exec/main.c
patching file exec/main.c.orig

Applying patch Fix-compiler-warning-introduced-by-previous-patch.patch
patching file exec/main.c
patching file exec/main.c.orig

Now at patch Fix-compiler-warning-introduced-by-previous-patch.patch

Please remove the unwanted main.c.orig changes from the debdiff and resubmit. Thanks!

Changed in corosync (Ubuntu Trusty):
status: Confirmed → Incomplete
Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :
Changed in corosync (Ubuntu Trusty):
status: Incomplete → In Progress
Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :

Hello Mark,

Tks for reviewing my mistake. I believe it is good now.

inaddy@lp1530837trusty:~/Codes/bugs/1530837/trusty/corosync-2.3.3$ patch -p1 < ../trusty_corosync_2.3.3-1ubuntu2.debdiff
patching file debian/changelog
patching file debian/patches/Fix-compiler-warning-introduced-by-previous-patch.patch
patching file debian/patches/fix-memory-leak-produced-by-corosync-v.patch
patching file debian/patches/Handle-SIGSEGV-and-SIGABRT-signals.patch
patching file debian/patches/series

inaddy@lp1530837trusty:~/Codes/bugs/1530837/trusty/corosync-2.3.3$ quilt push -a
Applying patch fix-memory-leak-produced-by-corosync-v.patch
patching file exec/main.c
Applying patch Handle-SIGSEGV-and-SIGABRT-signals.patch
patching file exec/main.c
Applying patch Fix-compiler-warning-introduced-by-previous-patch.patch
patching file exec/main.c
Now at patch Fix-compiler-warning-introduced-by-previous-patch.patch

Thank you!

Rafael

Revision history for this message
Louis Bouchard (louis) wrote :

Fixes to the debdiff look ok to me. Sponsored to Trusty

Revision history for this message
Chris J Arges (arges) wrote : Please test proposed package

Hello Rafael, or anyone else affected,

Accepted corosync into trusty-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/corosync/2.3.3-1ubuntu2 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in corosync (Ubuntu Trusty):
status: In Progress → Fix Committed
tags: added: verification-needed
Revision history for this message
Jorge Niedbalski (niedbalski) wrote :

I just ran a verification on this package.

root@juju-niedbalski-sec-machine-27:/home/ubuntu# for file in $(strace -e open -i corosync -v 2>&1 | grep -E '.*shm.*' |grep -Po '".*?"'| sed -e s/\"//g); do du -sh $file; done
12K /dev/shm/qb-corosync-blackbox-header
8.1M /dev/shm/qb-corosync-blackbox-data

After enabling proposed

root@juju-niedbalski-sec-machine-27:/home/ubuntu# dpkg -l | grep corosync
ii corosync 2.3.3-1ubuntu2 amd64 Standards-based cluster framework (daemon and modules)
ii libcorosync-common4 2.3.3-1ubuntu2 amd64 Standards-based cluster framework, common library

root@juju-niedbalski-sec-machine-27:/home/ubuntu# for file in $(strace -e open -i corosync -v 2>&1 | grep -E '.*shm.*' |grep -Po '".*?"'| sed -e s/\"//g); do du -sh $file; done
du: cannot access ‘/dev/shm/qb-corosync-blackbox-header’: No such file or directory
du: cannot access ‘/dev/shm/qb-corosync-blackbox-data’: No such file or directory

So, seems to be fixed.

tags: added: verification-done
removed: verification-needed
Revision history for this message
Chris J Arges (arges) wrote : Update Released

The verification of the Stable Release Update for corosync has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package corosync - 2.3.3-1ubuntu2

---------------
corosync (2.3.3-1ubuntu2) trusty; urgency=medium

  * Patches to solve logsys file leaks (LP: #1530837)
    + /d/p/Fix-compiler-warning-introduced-by-previous-patch.patch
    + /d/p/Handle-SIGSEGV-and-SIGABRT-signals.patch
    + /d/p/leak-produced-by-corosync-v.patch

 -- Rafael David Tinoco <email address hidden> Wed, 09 Mar 2016 09:56:58 +0100

Changed in corosync (Ubuntu Trusty):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.