google-perftools can deadlock with dlopen on startup

Bug #1647864 reported by Sage Weil on 2016-12-06
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
google-perftools (Ubuntu)
Undecided
Unassigned
Xenial
High
Unassigned
Yakkety
High
Unassigned

Bug Description

[Impact]
Applications use tcmalloc and deadlock on startup (specifically impacting upstream testing of Ceph).

[Test Case]
Hard to reproduce reliably, so we'll perform a regression test with Ceph in Ubuntu and look for feedback from upstream on occurrance of this problem.

[Regression Potential]
Low; patch is already in use in CentOS and RHEL and has been accepted into upstream.

[Original Bug Report]
On the xenial version of libgoogle-perftools, tcmalloc can deadlock with dlopen on startup. This was fixed upstream here:

 https://github.com/gperftools/gperftools/issues/786

FWIW el7 also backported this fix to 2.4 to resolve this for us.

The ceph bug tracking this issue is here:

 http://tracker.ceph.com/issues/13522

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package google-perftools - 2.5-0ubuntu4

---------------
google-perftools (2.5-0ubuntu4) zesty; urgency=medium

  * debian/patches/Use-initial-exec-tls-for-libunwind-s-recursion-flag.patch:
    Use initial-exec tls for libunwind's recursion flag. (LP: #1647864)

 -- Chuck Short <email address hidden> Thu, 02 Feb 2017 13:17:47 -0500

Changed in google-perftools (Ubuntu):
status: New → Fix Released

Would you please fix this in Xenial?

James Page (james-page) on 2017-05-02
Changed in google-perftools (Ubuntu Xenial):
status: New → Triaged
Changed in google-perftools (Ubuntu Yakkety):
status: New → Triaged
Changed in google-perftools (Ubuntu Xenial):
importance: Undecided → High
Changed in google-perftools (Ubuntu Yakkety):
importance: Undecided → High
James Page (james-page) on 2017-05-02
description: updated
James Page (james-page) wrote :

Updates uploaded for xenial and yakkety for SRU team review.

James Page (james-page) on 2017-05-02
Changed in google-perftools (Ubuntu Xenial):
status: Triaged → In Progress
Changed in google-perftools (Ubuntu Yakkety):
status: Triaged → In Progress

An upload of google-perftools to yakkety-proposed has been rejected from the upload queue for the following reason: "d/p/Use-initial-exec-tls-for-libunwind-s-recursion-flag.patch wasn't really in the upload for yakkety.".

James Page (james-page) wrote :

Re-uploaded to yakkety-proposed including the required patch (apologies).

Hello Sage, or anyone else affected,

Accepted google-perftools into yakkety-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/google-perftools/2.4-0ubuntu5.16.10.1 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 on 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 google-perftools (Ubuntu Yakkety):
status: In Progress → Fix Committed
tags: added: verification-needed
Changed in google-perftools (Ubuntu Xenial):
status: In Progress → Fix Committed
Brian Murray (brian-murray) wrote :

Hello Sage, or anyone else affected,

Accepted google-perftools into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/google-perftools/2.4-0ubuntu5.16.04.1 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 on 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!

James Page (james-page) wrote :

Yakkety proposed regression tested using OpenStack Tempest smoke testing:

======
Totals
======
Ran: 103 tests in 1004.6364 sec.
 - Passed: 97
 - Skipped: 6
 - Expected Fail: 0
 - Unexpected Success: 0
 - Failed: 0
Sum of execute time for each test: 553.9073 sec.

All passed.

Version information:

$ apt-cache policy libgoogle-perftools4
libgoogle-perftools4:
  Installed: 2.4-0ubuntu5.16.10.1
  Candidate: 2.4-0ubuntu5.16.10.1
  Version table:
 *** 2.4-0ubuntu5.16.10.1 500
        500 http://archive.ubuntu.com/ubuntu yakkety-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     2.4-0ubuntu5 500
        500 http://nova.clouds.archive.ubuntu.com/ubuntu yakkety/main amd64 Packages
ubuntu@juju-a55b76-yakkety-proposed-1:~$

tags: added: verification-done-yakkety
James Page (james-page) wrote :

Xenial proposed regression tests with OpenStack Tempest Smoke:

======
Totals
======
Ran: 103 tests in 956.7399 sec.
 - Passed: 97
 - Skipped: 6
 - Expected Fail: 0
 - Unexpected Success: 0
 - Failed: 0
Sum of execute time for each test: 541.7789 sec.

$ apt-cache policy libgoogle-perftools4
libgoogle-perftools4:
  Installed: 2.4-0ubuntu5.16.04.1
  Candidate: 2.4-0ubuntu5.16.04.1
  Version table:
 *** 2.4-0ubuntu5.16.04.1 500
        500 http://archive.ubuntu.com/ubuntu xenial-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     2.4-0ubuntu5 500
        500 http://nova.clouds.archive.ubuntu.com/ubuntu xenial/main amd64 Packages

tags: added: verification-done
removed: verification-done-yakkety verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package google-perftools - 2.4-0ubuntu5.16.10.1

---------------
google-perftools (2.4-0ubuntu5.16.10.1) yakkety; urgency=medium

  * d/p/Use-initial-exec-tls-for-libunwind-s-recursion-flag.patch:
    Use initial-exec tls for libunwind's recursion flag avoiding
    deadlock in dlopen on startup (LP: #1647864).

 -- James Page <email address hidden> Tue, 02 May 2017 05:36:48 -0400

Changed in google-perftools (Ubuntu Yakkety):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for google-perftools 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.

Chris Halse Rogers (raof) wrote :

Yakkety mongodb autopkgtest regression started before this update; releasing.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package google-perftools - 2.4-0ubuntu5.16.04.1

---------------
google-perftools (2.4-0ubuntu5.16.04.1) xenial; urgency=medium

  * d/p/Use-initial-exec-tls-for-libunwind-s-recursion-flag.patch:
    Use initial-exec tls for libunwind's recursion flag avoiding
    deadlock in dlopen on startup (LP: #1647864).

 -- James Page <email address hidden> Tue, 02 May 2017 05:32:42 -0400

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

Other bug subscribers