[Bug 1316970] Re: g_dbus memory leak in lrmd
Seyeong Kim
seyeong.kim at canonical.com
Fri Feb 2 01:53:15 UTC 2018
** Description changed:
[Impact]
lrmd daemon with upstart resource has memory leak in Trusty
affected to pacemaker 1.1.10.
+ affected to glib2.0 2.40.2-0ubuntu1
+
+ Please note that patch for pacemaker is created myself.
[Test Case]
1. deploy 3 trusty instance.
2. install corosync, pacemaker, mysql.
3. setting with below info
3.1 corosync.conf, proper setting for 3 node
3.2 crm configure < setup.crm ( which has upstart:mysql setting )
3.3 monitor lrmd daemon's memory usage
[Regression]
- Restarting daemon after upgrading this pkg will be needed. this patch added NULL check for several parts. prior commit[2] changed file structure ( e.g attrd created from tools/attrd.c ), This might affect to system. however, both of patches are landed to 1.11, so risk is not that high.
+ Restarting daemon after upgrading this pkg will be needed. this patch added NULL check for several parts. prior commit[1] changed file structure. and This change makes user changes usage of upstart:mysql to lsb:mysql. So I added free function myself. This might affect to system.
+ For glib2.0, commit [1] is critical, but [2],[3],[4] is needed for building it.
[Others]
Related commits.
- [1] commit a1a6922e43dfe80b23887a88401cbb93fe3645c0
- Author: David Vossel <dvossel at redhat.com>
- Date: Tue Jan 7 14:02:18 2014 -0600
-
- Fix: ipc: fix memory leak for failed ipc client connections.
-
- When pacemaker ipc servers accept client connections, client
- state data is allocated when the libqb 'accept' callback function is
- invoked. It is possible however that even after the client
- accepts the connection in the libqb 'accept' callback, the connection
- could still fail to initialize fully if the client side hangs up.
-
- Currently this results in the client state data never being
- destroyed because the libqb "close" callback for client connection
- is never invoked on the server side. Instead, libqb jumps directly to
- the "destroy" callback because the connection never actually got created.
-
- To account for this memory leak, pacemaker needs to verify client
- state data is destroyed in the destroy callback.
- [2] commit a7b61e276120184c7586a3217ed3571a982f5017
+ [1] commit a7b61e276120184c7586a3217ed3571a982f5017
Author: Andrew Beekhof <andrew at beekhof.net>
Date: Fri Aug 23 16:25:35 2013 +1000
Refactor: attrd: Move to its own directory and create a stub for
attrd-ng
------------------------------------------------------------------
$ git describe --contains a1a6922e43dfe80b23887a88401cbb93fe3645c0
Pacemaker-1.1.11-rc3
$ git describe --contains a7b61e276120184c7586a3217ed3571a982f5017
Pacemaker-1.1.11-rc1~168
$ rmadison pacemaker
- pacemaker | 1.1.10+git20130802-1ubuntu2 | trusty
- pacemaker | 1.1.10+git20130802-1ubuntu2.4 | trusty-security
- pacemaker | 1.1.10+git20130802-1ubuntu2.4 | trusty-updates
+ pacemaker | 1.1.10+git20130802-1ubuntu2 | trusty
+ pacemaker | 1.1.10+git20130802-1ubuntu2.4 | trusty-security
+ pacemaker | 1.1.10+git20130802-1ubuntu2.4 | trusty-updates
- pacemaker | 1.1.14-2ubuntu1 | xenial
- pacemaker | 1.1.14-2ubuntu1.3 | xenial-security
- pacemaker | 1.1.14-2ubuntu1.3 | xenial-update
- pacemaker | 1.1.16-1ubuntu1 | zesty
- pacemaker | 1.1.16-1ubuntu1 | artful
- pacemaker | 1.1.18~rc3-1ubuntu1 | bionic
+ pacemaker | 1.1.14-2ubuntu1 | xenial
+ pacemaker | 1.1.14-2ubuntu1.3 | xenial-security
+ pacemaker | 1.1.14-2ubuntu1.3 | xenial-update
+ pacemaker | 1.1.16-1ubuntu1 | zesty
+ pacemaker | 1.1.16-1ubuntu1 | artful
+ pacemaker | 1.1.18~rc3-1ubuntu1 | bionic
------------------------------------------------------------------
+
+ For glib
+ [1] https://github.com/GNOME/glib/commit/db641e32920ee8b553ab6f2d318aafa156e4390c
+ [2] https://github.com/GNOME/glib/commit/8792609e15394967cab526838b83f90acb401663
+ [3] https://github.com/GNOME/glib/commit/ec02a1875f29ecb8e46c0d8c1403cd00a0b3a9e4
+ [4] https://github.com/GNOME/glib/commit/f10b6550ff2ce55d06b92d6dc3e443fc007b2f7a
[Original Description]
I'm running Pacemaker 1.1.10+git20130802-1ubuntu1 on Ubuntu Saucy
(13.10) and have encountered a memory leak in lrmd.
The details of the bug are covered here in this thread
(http://oss.clusterlabs.org/pipermail/pacemaker/2014-May/021689.html)
but to summarise, the Pacemaker developers believe the leak is caused by
the g_dbus API, the use of which was removed in Pacemaker 1.11.
I've also attached the Valgrind output from the run that exposed the
issue.
Given that this issue affects production stability (a periodic restart
of Pacemaker is required), will a version of 1.11 be released for
Trusty? (I'm happy to upgrade the OS to Trusty to get it).
If not, can you advise which version of the OS will be the first to take
1.11 please?
** Changed in: glib2.0 (Ubuntu Trusty)
Assignee: (unassigned) => Seyeong Kim (xtrusia)
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to glib2.0 in Ubuntu.
https://bugs.launchpad.net/bugs/1316970
Title:
g_dbus memory leak in lrmd
Status in glib2.0 package in Ubuntu:
New
Status in pacemaker package in Ubuntu:
Fix Released
Status in glib2.0 source package in Trusty:
New
Status in pacemaker source package in Trusty:
In Progress
Bug description:
[Impact]
lrmd daemon with upstart resource has memory leak in Trusty
affected to pacemaker 1.1.10.
affected to glib2.0 2.40.2-0ubuntu1
Please note that patch for pacemaker is created myself.
[Test Case]
1. deploy 3 trusty instance.
2. install corosync, pacemaker, mysql.
3. setting with below info
3.1 corosync.conf, proper setting for 3 node
3.2 crm configure < setup.crm ( which has upstart:mysql setting )
3.3 monitor lrmd daemon's memory usage
[Regression]
Restarting daemon after upgrading this pkg will be needed. this patch added NULL check for several parts. prior commit[1] changed file structure. and This change makes user changes usage of upstart:mysql to lsb:mysql. So I added free function myself. This might affect to system.
For glib2.0, commit [1] is critical, but [2],[3],[4] is needed for building it.
[Others]
Related commits.
[1] commit a7b61e276120184c7586a3217ed3571a982f5017
Author: Andrew Beekhof <andrew at beekhof.net>
Date: Fri Aug 23 16:25:35 2013 +1000
Refactor: attrd: Move to its own directory and create a stub for
attrd-ng
------------------------------------------------------------------
$ git describe --contains a1a6922e43dfe80b23887a88401cbb93fe3645c0
Pacemaker-1.1.11-rc3
$ git describe --contains a7b61e276120184c7586a3217ed3571a982f5017
Pacemaker-1.1.11-rc1~168
$ rmadison pacemaker
pacemaker | 1.1.10+git20130802-1ubuntu2 | trusty
pacemaker | 1.1.10+git20130802-1ubuntu2.4 | trusty-security
pacemaker | 1.1.10+git20130802-1ubuntu2.4 | trusty-updates
pacemaker | 1.1.14-2ubuntu1 | xenial
pacemaker | 1.1.14-2ubuntu1.3 | xenial-security
pacemaker | 1.1.14-2ubuntu1.3 | xenial-update
pacemaker | 1.1.16-1ubuntu1 | zesty
pacemaker | 1.1.16-1ubuntu1 | artful
pacemaker | 1.1.18~rc3-1ubuntu1 | bionic
------------------------------------------------------------------
For glib
[1] https://github.com/GNOME/glib/commit/db641e32920ee8b553ab6f2d318aafa156e4390c
[2] https://github.com/GNOME/glib/commit/8792609e15394967cab526838b83f90acb401663
[3] https://github.com/GNOME/glib/commit/ec02a1875f29ecb8e46c0d8c1403cd00a0b3a9e4
[4] https://github.com/GNOME/glib/commit/f10b6550ff2ce55d06b92d6dc3e443fc007b2f7a
[Original Description]
I'm running Pacemaker 1.1.10+git20130802-1ubuntu1 on Ubuntu Saucy
(13.10) and have encountered a memory leak in lrmd.
The details of the bug are covered here in this thread
(http://oss.clusterlabs.org/pipermail/pacemaker/2014-May/021689.html)
but to summarise, the Pacemaker developers believe the leak is caused
by the g_dbus API, the use of which was removed in Pacemaker 1.11.
I've also attached the Valgrind output from the run that exposed the
issue.
Given that this issue affects production stability (a periodic restart
of Pacemaker is required), will a version of 1.11 be released for
Trusty? (I'm happy to upgrade the OS to Trusty to get it).
If not, can you advise which version of the OS will be the first to
take 1.11 please?
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glib2.0/+bug/1316970/+subscriptions
More information about the foundations-bugs
mailing list