marco crashed with SIGSEGV in INT_cairo_region_num_rectangles()

Bug #1863392 reported by Martin Wimpress 
64
This bug affects 12 people
Affects Status Importance Assigned to Milestone
marco (Ubuntu)
Fix Released
Medium
Victor Kareh

Bug Description

I was dragging windows to the edge of the screen to snap them to half the screen shortly before this crash was captured.

ProblemType: Crash
DistroRelease: Ubuntu 20.04
Package: marco 1.24.0-0ubuntu1
ProcVersionSignature: Ubuntu 5.4.0-14.17-generic 5.4.18
Uname: Linux 5.4.0-14-generic x86_64
ApportVersion: 2.20.11-0ubuntu16
Architecture: amd64
CrashCounter: 1
CurrentDesktop: MATE
Date: Sat Feb 15 00:24:19 2020
ExecutablePath: /usr/bin/marco
InstallationDate: Installed on 2020-02-13 (1 days ago)
InstallationMedia: Ubuntu-MATE 20.04 LTS "Focal Fossa" - Alpha amd64 (20200213)
ProcCmdline: marco
ProcEnviron:
 LANGUAGE=en_GB:en
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_GB.UTF-8
 SHELL=/bin/bash
SegvAnalysis:
 Segfault happened at: 0x7f392cf669d4 <cairo_region_num_rectangles+4>: mov 0x4(%rdi),%eax
 PC (0x7f392cf669d4) ok
 source "0x4(%rdi)" (0x000000f5) not located in a known VMA region (needed readable region)!
 destination "%eax" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: marco
StacktraceTop:
 cairo_region_num_rectangles () from /lib/x86_64-linux-gnu/libcairo.so.2
 ?? () from /lib/x86_64-linux-gnu/libmarco-private.so.2
 ?? () from /lib/x86_64-linux-gnu/libmarco-private.so.2
 ?? () from /lib/x86_64-linux-gnu/libmarco-private.so.2
 ?? () from /lib/x86_64-linux-gnu/libmarco-private.so.2
Title: marco crashed with SIGSEGV in cairo_region_num_rectangles()
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip libvirt lpadmin lxd plugdev sambashare sudo
separator:

Revision history for this message
Martin Wimpress  (flexiondotorg) wrote :
information type: Private → Public
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 INT_cairo_region_num_rectangles (region=region@entry=0xf1) at ../../../../src/cairo-region.c:451
 cairo_region_to_xserver_region (xdisplay=xdisplay@entry=0x5607cfdef640, region=0xf1) at compositor/compositor-xrender.c:607
 border_size (cw=0x5607d0302e20) at compositor/compositor-xrender.c:1157
 paint_windows (region=10566623, root_pixmap=<optimized out>, root_buffer=<optimized out>, windows=<optimized out>, screen=0x5607cffdfd00) at compositor/compositor-xrender.c:1420
 paint_all (screen=screen@entry=0x5607cffdfd00, region=region@entry=10566623, b=<optimized out>) at compositor/compositor-xrender.c:1593

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : StacktraceSource.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in marco (Ubuntu):
importance: Undecided → Medium
summary: - marco crashed with SIGSEGV in cairo_region_num_rectangles()
+ marco crashed with SIGSEGV in INT_cairo_region_num_rectangles()
tags: removed: need-amd64-retrace
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in marco (Ubuntu):
status: New → Confirmed
Changed in marco (Ubuntu):
assignee: nobody → Victor Kareh (vkareh)
Changed in marco (Ubuntu):
status: Confirmed → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package marco - 1.24.0-1ubuntu1

---------------
marco (1.24.0-1ubuntu1) focal; urgency=medium

  * debian/patches:
    + Add 0001_fix-segfaults.patch. Fix calculation of borders to
      prevent segfaults. (LP: #1863431, #1863392)

 -- Martin Wimpress <email address hidden> Mon, 23 Mar 2020 23:18:18 +0000

Changed in marco (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Jared Punzel (jpunzel) wrote :

This appears to have not been fixed in 1.24.0-1ubuntu1 on the latest 20.04. It happens at occasional times when I close a window. There are some similar recent reports on the github page:
https://github.com/mate-desktop/marco/issues/617
https://github.com/mate-desktop/marco/issues/661

Here's a backtrace from the core dump:

Core was generated by `marco'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f05e10699d4 in cairo_region_num_rectangles () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
[Current thread is 1 (Thread 0x7f05dfb5aa80 (LWP 454768))]
(gdb) bt
#0 0x00007f05e10699d4 in cairo_region_num_rectangles () at /usr/lib/x86_64-linux-gnu/libcairo.so.2
#1 0x00007f05e1d3541e in () at /usr/lib/x86_64-linux-gnu/libmarco-private.so.2
#2 0x00007f05e1d37944 in () at /usr/lib/x86_64-linux-gnu/libmarco-private.so.2
#3 0x00007f05e1d38b1e in () at /usr/lib/x86_64-linux-gnu/libmarco-private.so.2
#4 0x00007f05e1d3a0c9 in () at /usr/lib/x86_64-linux-gnu/libmarco-private.so.2
#5 0x00007f05e1d42b06 in () at /usr/lib/x86_64-linux-gnu/libmarco-private.so.2
#6 0x00007f05e1d8cbb9 in () at /usr/lib/x86_64-linux-gnu/libmarco-private.so.2
#7 0x00007f05e122405f in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#8 0x00007f05e122444a in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#9 0x00007f05e11ec0f4 in gdk_display_get_event () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#10 0x00007f05e12240f6 in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#11 0x00007f05e1e0af9d in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007f05e1e0b220 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007f05e1e0b513 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x0000561e8df74233 in main ()

Revision history for this message
Miguel Ángel (zurashu) wrote :

I have the same exact same backtrace on my core dumps as Jared Punzel. For me, it happens each time VSCode is launched or reloaded.

Revision history for this message
Bert Driehuis (driehuis) wrote :

I also still get the occasional Marco crash with a backtrace pointing to cairo_region_num_rectangles. If I can do something to assist tracking this down I'm all ears. I can confirm I'm running Marco built off sources that contain the fix, i.e. marco 1.24.0-1ubuntu1. My stacktrace looks identical to the one in comment #8. The SegvAnalysis looks the same as in the original report.

I cannot tell from my backtrace what the offending code path is: apply_cairo_region_to_window(), meta_frames_draw() or cairo_region_to_xserver_region(). I have installed dbgsyms for marco and libcairo2 and will report back if I can get a handle on the issue.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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