Cinnamon segfault at 28 ip 00007fb707b32ae2 sp 00007ffd444e3780 error 6 in libmuffin.so.0.0.0[7fb707afe000+74000]

Bug #1888169 reported by Joshua Peisach
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
muffin (Ubuntu)
Fix Released
Medium
Joshua Peisach
Focal
Fix Released
Undecided
Joshua Peisach

Bug Description

This is an upstream issue-read the following bug reports.

https://github.com/linuxmint/cinnamon/issues/9401
https://github.com/linuxmint/cinnamon/issues/9468

An SRU patch is now available.

This is a REGRESSION of a commit in Cinnamon 4.0.0 (https://github.com/linuxmint/muffin/commit/1d38120c9ded2578a14cb2e8bf46bb82b3acdc75)

Debian Bug Patch: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=965382

SRU TEMPLATE:

[Impact]

 * In fallback mode Cinnamon/Muffin segfaults and makes the desktop unusable.

 * This would occur by having two monitors-a laptop and an external with the laptop off and the external on-supposedly with NVIDIA as a driver.
[Test Case]

 * Upstream commits example to replicate bug:
 "Example to reproduce: Laptop monitor + external monitor. Arrange laptop
 monitor to the right of the external one. Using nvidia-450 (confirmed
 for me, at least), turn laptop monitor off. Ignoring horrible lag from
 driver, turn the laptop monitor back on (arranging it still to the right
 of the external monitor)."

[Regression Potential]

* Regressions manifesting is rather barely likely. Latest versions of Muffin patches this and so is upstream unstable have this patched. Regressions shouldn't be a threat unless:
1) Dependency problem
2) New versions of C causing incompatability problems or versions of Gobject-Introspection

 * In the event of a regression, which is unlikely as of Aug 13 (UTC), as Muffin's update would've been released a while ago (24 days), 2 days ago the version was bumped. A new upstream version would likely patch this problem aswell.

* After 24 days it seems there is nothing to worry about regarding regressions but of course, always something to worry about.

* It's been about enough time, nearly a month to spot any regressions from this fix.

 * This is actually a SOLVE of a regression

 * This regression fix goes back to Cinnamon 4.0.0-or when Eoan Ermine was released by getting refresh rates form xrandr

 * In upstream Mint this was an SRU/release as seen here: https://github.com/linuxmint/muffin/releases/tag/master.mint20 (The latest is the patch for this bug)

[Other Info]

 * I couldn't pbuilder-dist for some reason. Missing dependencies or stuff didn't exist-in sbuild it did though and my debuild -S did.

 * I will work on patching this in Groovy through debian unstable and will attach the bug report for groovy as part of this situation/regression.

Video: https://youtu.be/61PxJJv7pxo (BUG)

[Test Case #1]
Dell Inspiron 15-3567, Intel Core i5 7th Gen, for external monitor/TV used Samsung 1920x TV.

1) Start up laptop and login with Cinnamon
2) Plug in TV (external monitor), HDMI cable
3) Open display cinnamon settings module
4) Arrange the laptop monitor ON THE RIGHT OF THE EXTERNAL MONITOR
5) Set the TV as the primary display.
6) Close the laptop lid. This will turn off the laptop monitor.
7) Open some windows, play around with the TV monitor for a bit.
8) Reopen the laptop monitor.
9) Graphics will lag and cause black borders and screen tearing. In this case it was on the laptop monitor but some other times when I tried it happened on the TV.

[Test Case #1 Notes]
This is WITHOUT THE PATCH.
I noticed that you dont even have to turn off and re-turn on the laptop monitor for the screen tearing/black borders to occur.
Other times the laptop monitor would just turn off and you wouldn't be able to turn it back on unless you forced the Display settings module to make the monitor active.
Apport or Ubuntu-bug didn't popup a window showing of a crash.
Black borders at 2:15 in video.

[TEST CASE #2]
10) Software and Updates -> Development -> Enable -proposed repos
11) Refresh cache
12) Open terminal
13) sudo apt update, sudo apt upgrade
14) Reboot
15) Login and try above bug replication again
16) No errors/bugs.

VERIFICATION DONE
Patch does work-without the patch with the dual-monitor you would get instant black bordering. This patch removes it.

I emailed Michael Webster from upstream about the patch. This was his response:

"
- Immediately below the code insertion is a check that info != NULL, so the code prior to that commit allowed that info could be NULL (this code was existing from our original commit when we forked mutter ~9 years ago).
- The crash was specifically due to attempting to dereference a NULL info.
"
He hasn't tested previous versions but I have confirmed 4.8, the only one Ubuntu is maintaining for now and the regression was introduced in 4.0 (Eoan).

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: muffin 4.4.3-1
ProcVersionSignature: Ubuntu 5.4.0-40.44-generic 5.4.44
Uname: Linux 5.4.0-40-generic x86_64
ApportVersion: 2.20.11-0ubuntu27.3
Architecture: amd64
CasperMD5CheckResult: skip
CurrentDesktop: ubuntu:GNOME
Date: Sun Jul 19 21:49:09 2020
InstallationDate: Installed on 2020-04-23 (87 days ago)
InstallationMedia: Ubuntu 20.04 LTS "Focal Fossa" - Release amd64 (20200423)
ProcEnviron:
 TERM=xterm-256color
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: muffin
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Joshua Peisach (itzswirlz) wrote :
Changed in muffin (Ubuntu):
assignee: nobody → Joshua Peisach (itzswirlz)
description: updated
Changed in muffin (Ubuntu):
status: New → In Progress
Revision history for this message
Joshua Peisach (itzswirlz) wrote :
description: updated
Changed in muffin (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "muffin_4.4.3-1ubuntu0.1.debdiff" seems to be a debdiff. The ubuntu-sponsors team has been subscribed to the bug report so that they can review and hopefully sponsor the debdiff. If the attachment isn't a patch, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are member of the ~ubuntu-sponsors, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issue please contact him.]

tags: added: patch
Mathew Hodson (mhodson)
Changed in muffin (Ubuntu):
importance: Undecided → Medium
tags: added: sru
Revision history for this message
Łukasz Zemczak (sil2100) wrote :

Ok, note to self: this has been fixed in Debian and pulled into groovy as part of 4.6.2-3.

Changed in muffin (Ubuntu):
status: Fix Committed → Fix Released
Changed in muffin (Ubuntu Focal):
status: New → In Progress
Revision history for this message
Łukasz Zemczak (sil2100) wrote :

Ok, the debdiff looked fine, sponsored to the focal-proposed Unapproved queue. Two things to note:
 * Since I have sponsored the upload, I cannot review it from the queue, so you need to find someone else from the SRU team to process your upload
 * The regression potential field needs a bit more work for this to follow the Ubuntu SRU guidelines. The regression potential section should be filled in with regression potential analysis coming from the new change that is being uploaded. So, look at the code and think "what might go wrong if there is a *bug* in the changes I'm introducing". Or, even better, "if this code was to cause a regression somewhere, where would that be?". This way the SRU team can better understand the risks of including this in the stable series + when something breaks, we can more easily identify which change could have caused it. Could you update the section with that in mind?

Cheers.

Revision history for this message
Joshua Peisach (itzswirlz) wrote :

Thanks. Will do in spare time, and I'll update some other small fixes

Changed in muffin (Ubuntu Focal):
assignee: nobody → Joshua Peisach (itzswirlz)
description: updated
description: updated
Revision history for this message
Robie Basak (racb) wrote :

[Regression Potential]

The code that handles monitor information gathered from XRANDR is being adjusted. If a regression occurs, it is likely to manifest when monitor configurations change, especially in the case that monitors appear or disappear from the screen configuration.

Changed in muffin (Ubuntu Focal):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-focal
Revision history for this message
Robie Basak (racb) wrote : Please test proposed package

Hello Joshua, or anyone else affected,

Accepted muffin into focal-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/muffin/4.4.3-1ubuntu0.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, what testing has been performed on the package and change the tag from verification-needed-focal to verification-done-focal. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-focal. 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.

Revision history for this message
Joshua Peisach (itzswirlz) wrote :

Sorry I haven't tested yet-I will get to it asap before the end of tommorow to smack it in before Feature Freeze.

Revision history for this message
Joshua Peisach (itzswirlz) wrote :

Patch does work.

Video: https://youtu.be/61PxJJv7pxo (BUG)

[Test Case #1]
Dell Inspiron 15-3567, Intel Core i5 7th Gen, for external monitor/TV used Samsung 1920x TV.

1) Start up laptop and login with Cinnamon
2) Plug in TV (external monitor), HDMI cable
3) Open display cinnamon settings module
4) Arrange the laptop monitor ON THE RIGHT OF THE EXTERNAL MONITOR
5) Set the TV as the primary display.
6) Close the laptop lid. This will turn off the laptop monitor.
7) Open some windows, play around with the TV monitor for a bit.
8) Reopen the laptop monitor.
9) Graphics will lag and cause black borders and screen tearing. In this case it was on the laptop monitor but some other times when I tried it happened on the TV.

[Test Case #1 Notes]
This is WITHOUT THE PATCH.
I noticed that you dont even have to turn off and re-turn on the laptop monitor for the screen tearing/black borders to occur.
Other times the laptop monitor would just turn off and you wouldn't be able to turn it back on unless you forced the Display settings module to make the monitor active.
Apport or Ubuntu-bug didn't popup a window showing of a crash.
Black borders at 2:15 in video.

[TEST CASE #2]
10) Software and Updates -> Development -> Enable -proposed repos
11) Refresh cache
12) Open terminal
13) sudo apt update, sudo apt upgrade
14) Reboot
15) Login and try above bug replication again
16) No errors/bugs.

description: updated
tags: added: verification-done verification-done-focal
removed: verification-needed verification-needed-focal
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package muffin - 4.4.3-1ubuntu0.1

---------------
muffin (4.4.3-1ubuntu0.1) focal; urgency=medium

  * Check for MetaMonitorInfo being non-null before attempting to access it
    (LP: #1888169)

 -- Joshua Peisach <email address hidden> Sun, 19 Jul 2020 22:17:25 -0400

Changed in muffin (Ubuntu Focal):
status: Fix Committed → Fix Released
Revision history for this message
Łukasz Zemczak (sil2100) wrote : Update Released

The verification of the Stable Release Update for muffin has completed successfully and the package is now being 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.

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.