xpra icon
Bug tracker and wiki

Opened 3 weeks ago

Closed 3 weeks ago

#1886 closed defect (fixed)

crash with gtk3 cairo backend

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: critical Milestone: 2.4
Component: client Version: 2.3.x
Keywords: Cc:

Description (last modified by Antoine Martin)

python3 /usr/bin/xpra attach tcp://127.0.0.1:10000 --opengl=no -d all

Shows:

2018-06-24 23:47:24,690 cairo._do_paint_rgb(ARGB32, True, 630736 \
    <class 'xpra.net.mmap_pipe.c_char_Array_630736'>,15,0,484,316,1996, \
    {b'rgb_format': 'BGRX', 'encoding': 'mmap'}) \
    set_image_surface_data=<built-in function set_image_surface_data>, use pixbuf=False
2018-06-24 23:47:24,690 source image surface: (cairo.Format.ARGB32, 484, 316, 1936, cairo.Content.COLOR_ALPHA)
2018-06-24 23:47:24,691 cairo_paint_surface(<function CairoBackingBase.cairo_paint_surface.<locals>.set_source_surface at 0x7fc0b771a048>, \
    <cairo.ImageSurface object at 0x7fc09ed645f0>, 15, 0, 484, 316, \
    {b'rgb_format': 'BGRX', 'encoding': 'mmap'}) backing=<cairo.ImageSurface object at 0x7fc0b421f910>, paint box line width=0
double free or corruption (out)
Aborted (core dumped)

The bug does not occur with opengl on, or with mmap off.
Converting the mmap array to bytes does not help.

Change History (2)

comment:1 Changed 3 weeks ago by Antoine Martin

Description: modified (diff)
Priority: majorcritical
Status: newassigned

comment:2 Changed 3 weeks ago by Antoine Martin

Resolution: fixed
Status: assignedclosed
Summary: crash with gtk3 cairo backend and mmapcrash with gtk3 cairo backend

Not just with mmap, also with plain rgb.

Memory overflow fixed in r19707.

Related improvements in:

  • r19705: more consistent cairo context state
  • r19706: simplify surface setup code
  • r19708: better / faster pixel copying
  • r19709: release the GIL (it would be hard to measure if this is actually beneficial as this can't easily be turned into a runtime switch)
Note: See TracTickets for help on using tickets.