google-perftools can deadlock with dlopen on startup

Bug #1647864 reported by Sage Weil
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
google-perftools (Ubuntu)
Fix Released
Undecided
Unassigned
Xenial
Fix Released
High
Unassigned
Yakkety
Fix Released
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

Revision history for this message
Ken Dreyer (Red Hat) (kdreyer-redhat) wrote :
Revision history for this message
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
Revision history for this message
Ken Dreyer (Red Hat) (kdreyer-redhat) wrote :

Would you please fix this in Xenial?

James Page (james-page)
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)
description: updated
Revision history for this message
James Page (james-page) wrote :

Updates uploaded for xenial and yakkety for SRU team review.

James Page (james-page)
Changed in google-perftools (Ubuntu Xenial):
status: Triaged → In Progress
Changed in google-perftools (Ubuntu Yakkety):
status: Triaged → In Progress
Revision history for this message
Brian Murray (brian-murray) wrote : Proposed package upload rejected

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.".

Revision history for this message
James Page (james-page) wrote :

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

Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

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
Revision history for this message
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!

Revision history for this message
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
Revision history for this message
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
Revision history for this message
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
Revision history for this message
Chris Halse Rogers (raof) wrote : Update 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.

Revision history for this message
Chris Halse Rogers (raof) wrote :

Yakkety mongodb autopkgtest regression started before this update; releasing.

Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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