/usr/sbin/thermald:6:__gnu_cxx::__verbose_terminate_handler:__cxxabiv1::__terminate:std::terminate:__cxxabiv1::__cxa_throw:std::__throw_logic_error

Bug #1480821 reported by errors.ubuntu.com bug bridge
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
thermald (Ubuntu)
Fix Released
High
Colin Ian King
Trusty
Fix Released
High
Colin Ian King
Vivid
Fix Released
High
Colin Ian King
Wily
Fix Released
High
Colin Ian King

Bug Description

The Ubuntu Error Tracker has been receiving reports about a problem regarding thermald. This problem was most recently seen with version 1.4.3-2, the problem page at https://errors.ubuntu.com/problem/41170971e738fa7c776b1d01db02645fd64d78c7 contains more details.

Revision history for this message
Colin Ian King (colin-king) wrote :

This bug is occurring on a NULL object deference in add_active_trip_point for devices that support the _TRT ACPI object:

union art_object *object = (union art_object *) rel_obj.art_objects[j];

I believe this is because of a typo in:

parse_target_devices

                if (find_iter == rel_list.end()) {
                        rel_obj.art_objects.push_back(&art[i]);
                        rel_list.push_back(rel_obj);
                } else
                        find_iter->art_objects.push_back(&art[i]);

should be:

                if (find_iter == rel_list.end()) {
                        rel_obj.art_objects.push_back(&trt[i]);
                        rel_list.push_back(rel_obj);
                } else
                        find_iter->art_objects.push_back(&art[i]);

so trt is not being populated, we have a NULL object that bites us when we invoke add_active_trip_point

Revision history for this message
Colin Ian King (colin-king) wrote :

I meant _ART and not _TRT.

Revision history for this message
Colin Ian King (colin-king) wrote :

Bah, I made a complete hash of the report above. _ART is failing because the code was:

                if (find_iter == rel_list.end()) {
                        rel_obj.art_objects.push_back(&trt[i]);
                        rel_list.push_back(rel_obj);
                } else
                        find_iter->art_objects.push_back(&art[i]);

and should be:

                if (find_iter == rel_list.end()) {
                        rel_obj.art_objects.push_back(&art[i]);
                        rel_list.push_back(rel_obj);
                } else
                        find_iter->art_objects.push_back(&art[i]);

Changed in thermald (Ubuntu):
status: New → In Progress
importance: Undecided → High
assignee: nobody → Colin Ian King (colin-king)
Revision history for this message
Srinivas Pandruvada (srinivas-pandruvada) wrote :

Your fix is correct. Will you send a pull request?

Revision history for this message
Colin Ian King (colin-king) wrote :

I thought I had sent a pull request:

https://github.com/01org/thermal_daemon/pull/70

Revision history for this message
Colin Ian King (colin-king) wrote :

[SRU Justification] (Vivid, Trusty)

Intel systems that support the ACPI _ART object trigger a segmentation fault when adding this active trip point during thermald startup.

[Test Case]
Start thermald as follows:

sudo
sudo thermald --no-daemon --loglevel=info

Without the fix, this will abort with a trap on the segmentation fault. With the fix, thermald starts correctly.

[Regression Potential]
Thermald will be correctly accessing _ART objects for thermal contol, if the ACPI is _ART objects are misconfigured then thermald will use these erroneous controls. However, the impact is low as this is the general case for any misconfigured firmware.

Changed in thermald (Ubuntu Trusty):
status: New → In Progress
Changed in thermald (Ubuntu Vivid):
status: New → In Progress
Changed in thermald (Ubuntu Trusty):
importance: Undecided → High
Changed in thermald (Ubuntu Vivid):
importance: Undecided → High
Changed in thermald (Ubuntu Trusty):
assignee: nobody → Colin Ian King (colin-king)
Changed in thermald (Ubuntu Vivid):
assignee: nobody → Colin Ian King (colin-king)
Revision history for this message
Chris J Arges (arges) wrote : Please test proposed package

Hello errors.ubuntu.com, or anyone else affected,

Accepted thermald into trusty-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/thermald/1.4.3-3~14.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 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 thermald (Ubuntu Trusty):
status: In Progress → Fix Committed
tags: added: verification-needed
Revision history for this message
Chris J Arges (arges) wrote :

Hello errors.ubuntu.com, or anyone else affected,

Accepted thermald into vivid-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/thermald/1.4.3-3~15.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 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 thermald (Ubuntu Vivid):
status: In Progress → Fix Committed
Revision history for this message
Colin Ian King (colin-king) wrote :

I do not have any H/W with an ACPI _ART object in the firmware, hence I can't test to see if the code is fixed. However, this fix was accepted upstream by Intel:

https://github.com/01org/thermal_daemon/commit/ddc8b63e537b2e0d7f17b6c52cfe42606769a577

so it seems like an acceptable fix.

Revision history for this message
Colin Ian King (colin-king) wrote :

verified that no regressions occur on a Lenovo X220 with vivid -proposed

Revision history for this message
Colin Ian King (colin-king) wrote :

verified that no regressions occur on a Lenovo X220 with trusty -proposed

tags: added: verification-done
removed: verification-needed
Changed in thermald (Ubuntu Wily):
status: In Progress → Fix Committed
tags: added: trust
tags: added: trusty
removed: trust
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package thermald - 1.4.3-4

---------------
thermald (1.4.3-4) unstable; urgency=medium

  * Fix null pointer deferences with _ART active trip points (LP: #1480821)
  * Re-enable lockfile (LP:# 1480892)
  * Report multiple instances of thermald with thd_log_fatal (LP: #1432220)

 -- Colin King <email address hidden> Mon, 3 Aug 2015 18:47:00 +0100

Changed in thermald (Ubuntu Wily):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package thermald - 1.4.3-3~14.04.1

---------------
thermald (1.4.3-3~14.04.1) trusty; urgency=medium

  * Fix null pointer deferences with _ART active trip points (LP: #1480821)
  * Re-enable lockfile (LP: #1480892)
  * Report multiple instances of thermald with thd_log_fatal (LP: #1432220)
  * Suppress systemd failed service messages (e.g. on VMs) (LP: #1480182)

 -- Colin King <email address hidden> Tue, 4 Aug 2015 11:50:00 +0100

Changed in thermald (Ubuntu Trusty):
status: Fix Committed → Fix Released
Revision history for this message
Adam Conrad (adconrad) wrote : Update Released

The verification of the Stable Release Update for thermald 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 thermald - 1.4.3-3~15.04.1

---------------
thermald (1.4.3-3~15.04.1) vivid; urgency=medium

  * Fix null pointer deferences with _ART active trip points (LP: #1480821)
  * Re-enable lockfile (LP: #1480892)
  * Report multiple instances of thermald with thd_log_fatal (LP: #1432220)
  * Suppress systemd failed service messages (e.g. on VMs) (LP: #1480182)

 -- Colin King <email address hidden> Tue, 4 Aug 2015 11:48:00 +0100

Changed in thermald (Ubuntu Vivid):
status: Fix Committed → Fix Released
Revision history for this message
Andy Whitcroft (apw) wrote : Please test proposed package

Hello errors.ubuntu.com, or anyone else affected,

Accepted thermald into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/thermald/1.7.0-5ubuntu4 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-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

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

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in thermald (Ubuntu Bionic):
status: New → Fix Committed
tags: added: verification-needed verification-needed-bionic
removed: verification-done
Revision history for this message
Colin Ian King (colin-king) wrote :

The bionic SRU test message occurred because I accidentally uploaded the package with the entire old history. This bug has already been fixed and the verification for bionic can be ignored.

no longer affects: thermald (Ubuntu Bionic)
tags: added: verification-done
removed: verification-needed verification-needed-bionic
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.