Bug 106930 - xwl_present_flips_stop: Assertion `xwl_window->present_window == window' failed.
Summary: xwl_present_flips_stop: Assertion `xwl_window->present_window == window' failed.
Status: RESOLVED FIXED
Alias: None
Product: Wayland
Classification: Unclassified
Component: XWayland (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: Wayland bug list
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-06-15 15:26 UTC by James
Modified: 2018-12-23 17:00 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description James 2018-06-15 15:26:39 UTC
Arch Linux
xorg-server-xwayland 1.20.0-7
kwin 5.13.0-1

Xwayland does not play nicely with kwin_wayland.  In particular, repeated selection of buttons, for instance the Application Launcher from the Panel, will eventually result in an Xwayland crash that locks-up the kwin_wayland keyboard and mouse.

Locking-up kwin_wayland is KDE's problem.  Crashing the Xwayland X server is a xorg/Wayland problem.

The kwin_wayland log reports:

Xwayland: ../xorg-server-1.20.0/hw/xwayland/xwayland-present.c:520: xwl_present_flips_stop: Assertion `xwl_window->present_window == window' failed.

I have seen this on both a dual display laptop with i915/i965 hardware and a triple display desktop machine with Radeon HD 5570 / Redwood PRO hardware.
Comment 1 ahc 2018-06-15 16:45:07 UTC
> Xwayland: ../xorg-server-1.20.0/hw/xwayland/xwayland-present.c:520:
> xwl_present_flips_stop: Assertion `xwl_window->present_window == window' failed.

I get this error as well with plasma 5.13.0 on Radeon HD 7750. Xwayland 1.20.0 used to work on plasma 5.12.5 though. I've tested Xwayland with the latest master branch and the error is still present:

Xwayland: xwayland-present.c:519: xwl_present_flips_stop: Assertion `xwl_window->present_window == window' failed.
(EE) 
(EE) Backtrace:
(EE) 0: /bin/Xwayland (xorg_backtrace+0x56) [0x55bdbca6cbf7]
(EE) 1: /bin/Xwayland (0x55bdbc912000+0x15d9cb) [0x55bdbca6f9cb]
(EE) 2: //lib/libpthread.so.0 (0x7f6b696d8000+0xfe70) [0x7f6b696e7e70]
(EE) 3: //lib/libc.so.6 (gsignal+0xb7) [0x7f6b68e0921a]
(EE) 4: //lib/libc.so.6 (abort+0x11f) [0x7f6b68e0a17c]
(EE) 5: //lib/libc.so.6 (__assert_fail+0x0) [0x7f6b68e03384]
(EE) 6: //lib/libc.so.6 (__assert_perror_fail+0x0) [0x7f6b68e033c8]
(EE) 7: /bin/Xwayland (0x55bdbc912000+0x5a5e8) [0x55bdbc96c5e8]
(EE) 8: /bin/Xwayland (0x55bdbc912000+0xe8788) [0x55bdbc9fa788]
(EE) 9: /bin/Xwayland (0x55bdbc912000+0xe8b43) [0x55bdbc9fab43]
(EE) 10: /bin/Xwayland (0x55bdbc912000+0xe75b3) [0x55bdbc9f95b3]
(EE) 11: /bin/Xwayland (compClipNotify+0x93) [0x55bdbca3688e]
(EE) 12: /bin/Xwayland (0x55bdbc912000+0x8e0d7) [0x55bdbc9a00d7]
(EE) 13: /bin/Xwayland (0x55bdbc912000+0x8dff0) [0x55bdbc99fff0]
(EE) 14: /bin/Xwayland (0x55bdbc912000+0x8dff0) [0x55bdbc99fff0]
(EE) 15: /bin/Xwayland (miValidateTree+0x30d) [0x55bdbc9a0408]
(EE) 16: /bin/Xwayland (miResizeWindow+0x3c4) [0x55bdbc9a54fb]
(EE) 17: /bin/Xwayland (compResizeWindow+0x61) [0x55bdbca3676d]
(EE) 18: /bin/Xwayland (ConfigureWindow+0x90e) [0x55bdbca67c28]
(EE) 19: /bin/Xwayland (ProcConfigureWindow+0x6b) [0x55bdbca41534]
(EE) 20: /bin/Xwayland (Dispatch+0x2a6) [0x55bdbca464f5]
(EE) 21: /bin/Xwayland (dix_main+0x3fa) [0x55bdbca4984c]
(EE) 22: //lib/libc.so.6 (__libc_start_main+0x157) [0x7f6b68df9c1a]
(EE) 23: /bin/Xwayland (_start+0x2a) [0x55bdbc963c0a]
(EE)
Comment 2 magiblot 2018-12-22 21:26:13 UTC
Bump.

I managed to get a backtrace with debug symbols. Please notice the signal is first raised at #7, and if you ask gdb to continue running then a signal is raised again at #0.

If not the same bug, a very similar one. XWayland almost crashes by just looking at it.

> Thread 1 "Xwayland" received signal SIGABRT, Aborted.
> 0x00007fe4f8661d7f in raise () from /usr/lib/libc.so.6
> #0  0x00007fe4f8661d7f in raise () from /usr/lib/libc.so.6
> #1  0x00007fe4f864c672 in abort () from /usr/lib/libc.so.6
> #2  0x000055c82a4fd8fa in OsAbort () at ../xserver/os/utils.c:1347
> #3  0x000055c82a5014b5 in AbortServer () at ../xserver/os/log.c:879
> #4  FatalError (f=f@entry=0x55c82a638bf8 "Caught signal %d (%s). Server aborting\n") at ../xserver/os/log.c:1017
> #5  0x000055c82a505a16 in OsSigHandler (signo=<optimized out>, sip=<optimized out>, unused=<optimized out>, signo=<optimized out>, sip=<optimized out>, 
>     unused=<optimized out>) at ../xserver/os/osinit.c:156
> #6  <signal handler called>
> #7  0x00007fe4f8661d7f in raise () from /usr/lib/libc.so.6
> #8  0x00007fe4f864c672 in abort () from /usr/lib/libc.so.6
> #9  0x00007fe4f864c548 in __assert_fail_base.cold.0 () from /usr/lib/libc.so.6
> #10 0x00007fe4f865a396 in __assert_fail () from /usr/lib/libc.so.6
> #11 0x000055c82a61d56b in xwl_present_flips_stop (window=<optimized out>, window=<optimized out>) at ../xserver/hw/xwayland/xwayland-present.c:551
> #12 0x000055c82a56b8ce in present_wnmd_flips_stop (window=<optimized out>, window=<optimized out>) at ../xserver/present/present_wnmd.c:159
> #13 0x000055c82a56bb45 in present_wnmd_check_flip_window (window=0x55c82c92e0e0) at ../xserver/present/present_wnmd.c:332
> #14 0x000055c82a56e8ef in present_clip_notify (window=0x55c82c92e0e0, dx=0, dy=298) at ../xserver/present/present_screen.c:203
> #15 0x000055c82a597e68 in compClipNotify (pWin=0x55c82c92e0e0, dx=0, dy=298) at ../xserver/composite/compwindow.c:317
> #16 0x000055c82a5dd615 in miComputeClips (pParent=pParent@entry=0x55c82c92e0e0, pScreen=pScreen@entry=0x55c82c1442c0, universe=universe@entry=0x7ffd9f1ab760, 
>     kind=kind@entry=VTOther, exposed=exposed@entry=0x7ffd9f1ab8c0) at ../xserver/mi/mivaltree.c:478
> #17 0x000055c82a5dd508 in miComputeClips (pParent=pParent@entry=0x55c82c7b3610, pScreen=pScreen@entry=0x55c82c1442c0, universe=universe@entry=0x7ffd9f1ab830, 
>     kind=kind@entry=VTOther, exposed=exposed@entry=0x7ffd9f1ab8c0) at ../xserver/mi/mivaltree.c:428
> #18 0x000055c82a5dd508 in miComputeClips (pParent=pParent@entry=0x55c82c7b9b00, pScreen=pScreen@entry=0x55c82c1442c0, universe=universe@entry=0x7ffd9f1ab8e0, 
>     kind=kind@entry=VTOther, exposed=exposed@entry=0x7ffd9f1ab8c0) at ../xserver/mi/mivaltree.c:428
> #19 0x000055c82a5ddc6b in miValidateTree (pParent=0x55c82c38fe80, pChild=0x55c82c7b9b00, kind=<optimized out>) at ../xserver/mi/mivaltree.c:681
> #20 0x000055c82a5d8261 in miResizeWindow (pWin=0x55c82c7b9b00, x=0, y=<optimized out>, w=<optimized out>, h=<optimized out>, pSib=0x0) at ../xserver/mi/miwindow.c:467
> #21 0x000055c82a597cbd in compResizeWindow (pWin=0x55c82c7b9b00, x=<optimized out>, y=<optimized out>, w=<optimized out>, h=<optimized out>, pSib=<optimized out>)
>     at ../xserver/composite/compwindow.c:407
> #22 0x000055c82a59e5f1 in ConfigureWindow (pWin=<optimized out>, mask=<optimized out>, vlist=<optimized out>, client=<optimized out>) at ../xserver/dix/window.c:2406
> #23 0x000055c82a5cf7e0 in ProcConfigureWindow (client=0x55c82c793a80) at ../xserver/dix/dispatch.c:916
> #24 0x000055c82a5cdf20 in Dispatch () at ../xserver/dix/dispatch.c:478
> #25 0x000055c82a4c715d in dix_main (envp=<optimized out>, argv=0x7ffd9f1abe58, argc=6) at ../xserver/dix/main.c:274
> #26 main (argc=6, argv=0x7ffd9f1abe58, envp=<optimized out>) at ../xserver/dix/stubmain.c:34

Cheers.
Comment 3 Lionel Landwerlin 2018-12-22 21:41:46 UTC
(In reply to magiblot from comment #2)
> Bump.
> 
> I managed to get a backtrace with debug symbols. Please notice the signal is
> first raised at #7, and if you ask gdb to continue running then a signal is
> raised again at #0.
> 
> If not the same bug, a very similar one. XWayland almost crashes by just
> looking at it.
> 
> > Thread 1 "Xwayland" received signal SIGABRT, Aborted.
> > 0x00007fe4f8661d7f in raise () from /usr/lib/libc.so.6
> > #0  0x00007fe4f8661d7f in raise () from /usr/lib/libc.so.6
> > #1  0x00007fe4f864c672 in abort () from /usr/lib/libc.so.6
> > #2  0x000055c82a4fd8fa in OsAbort () at ../xserver/os/utils.c:1347
> > #3  0x000055c82a5014b5 in AbortServer () at ../xserver/os/log.c:879
> > #4  FatalError (f=f@entry=0x55c82a638bf8 "Caught signal %d (%s). Server aborting\n") at ../xserver/os/log.c:1017
> > #5  0x000055c82a505a16 in OsSigHandler (signo=<optimized out>, sip=<optimized out>, unused=<optimized out>, signo=<optimized out>, sip=<optimized out>, 
> >     unused=<optimized out>) at ../xserver/os/osinit.c:156
> > #6  <signal handler called>
> > #7  0x00007fe4f8661d7f in raise () from /usr/lib/libc.so.6
> > #8  0x00007fe4f864c672 in abort () from /usr/lib/libc.so.6
> > #9  0x00007fe4f864c548 in __assert_fail_base.cold.0 () from /usr/lib/libc.so.6
> > #10 0x00007fe4f865a396 in __assert_fail () from /usr/lib/libc.so.6
> > #11 0x000055c82a61d56b in xwl_present_flips_stop (window=<optimized out>, window=<optimized out>) at ../xserver/hw/xwayland/xwayland-present.c:551
> > #12 0x000055c82a56b8ce in present_wnmd_flips_stop (window=<optimized out>, window=<optimized out>) at ../xserver/present/present_wnmd.c:159
> > #13 0x000055c82a56bb45 in present_wnmd_check_flip_window (window=0x55c82c92e0e0) at ../xserver/present/present_wnmd.c:332
> > #14 0x000055c82a56e8ef in present_clip_notify (window=0x55c82c92e0e0, dx=0, dy=298) at ../xserver/present/present_screen.c:203
> > #15 0x000055c82a597e68 in compClipNotify (pWin=0x55c82c92e0e0, dx=0, dy=298) at ../xserver/composite/compwindow.c:317
> > #16 0x000055c82a5dd615 in miComputeClips (pParent=pParent@entry=0x55c82c92e0e0, pScreen=pScreen@entry=0x55c82c1442c0, universe=universe@entry=0x7ffd9f1ab760, 
> >     kind=kind@entry=VTOther, exposed=exposed@entry=0x7ffd9f1ab8c0) at ../xserver/mi/mivaltree.c:478
> > #17 0x000055c82a5dd508 in miComputeClips (pParent=pParent@entry=0x55c82c7b3610, pScreen=pScreen@entry=0x55c82c1442c0, universe=universe@entry=0x7ffd9f1ab830, 
> >     kind=kind@entry=VTOther, exposed=exposed@entry=0x7ffd9f1ab8c0) at ../xserver/mi/mivaltree.c:428
> > #18 0x000055c82a5dd508 in miComputeClips (pParent=pParent@entry=0x55c82c7b9b00, pScreen=pScreen@entry=0x55c82c1442c0, universe=universe@entry=0x7ffd9f1ab8e0, 
> >     kind=kind@entry=VTOther, exposed=exposed@entry=0x7ffd9f1ab8c0) at ../xserver/mi/mivaltree.c:428
> > #19 0x000055c82a5ddc6b in miValidateTree (pParent=0x55c82c38fe80, pChild=0x55c82c7b9b00, kind=<optimized out>) at ../xserver/mi/mivaltree.c:681
> > #20 0x000055c82a5d8261 in miResizeWindow (pWin=0x55c82c7b9b00, x=0, y=<optimized out>, w=<optimized out>, h=<optimized out>, pSib=0x0) at ../xserver/mi/miwindow.c:467
> > #21 0x000055c82a597cbd in compResizeWindow (pWin=0x55c82c7b9b00, x=<optimized out>, y=<optimized out>, w=<optimized out>, h=<optimized out>, pSib=<optimized out>)
> >     at ../xserver/composite/compwindow.c:407
> > #22 0x000055c82a59e5f1 in ConfigureWindow (pWin=<optimized out>, mask=<optimized out>, vlist=<optimized out>, client=<optimized out>) at ../xserver/dix/window.c:2406
> > #23 0x000055c82a5cf7e0 in ProcConfigureWindow (client=0x55c82c793a80) at ../xserver/dix/dispatch.c:916
> > #24 0x000055c82a5cdf20 in Dispatch () at ../xserver/dix/dispatch.c:478
> > #25 0x000055c82a4c715d in dix_main (envp=<optimized out>, argv=0x7ffd9f1abe58, argc=6) at ../xserver/dix/main.c:274
> > #26 main (argc=6, argv=0x7ffd9f1abe58, envp=<optimized out>) at ../xserver/dix/stubmain.c:34
> 
> Cheers.

Could it be fixed by : https://gitlab.freedesktop.org/ajax/xserver/commit/ce271535adb6974e0a43bb64c8ed7a5dcaff67a2 (available in 1.20.3) ?
Comment 4 magiblot 2018-12-22 21:56:04 UTC
(In reply to Lionel Landwerlin from comment #3)
> Could it be fixed by :
> https://gitlab.freedesktop.org/ajax/xserver/commit/
> ce271535adb6974e0a43bb64c8ed7a5dcaff67a2 (available in 1.20.3) ?

Thanks for pointing that commit out. However, I got the backtrace using xserver from git://anongit.freedesktop.org/xorg/xserver at the beginning of November, when I guess the fix had already been efective for some time. Please confirm that's the right git repository and I'll try to reproduce the issue again with the latest version.
Comment 5 Michel Dänzer 2018-12-23 11:45:17 UTC
Thanks for the report, should be fixed in xserver Git master by
https://gitlab.freedesktop.org/xorg/xserver/commit/6b016d58d23d16eaae9908a92ed90547d1926317 .
Comment 6 magiblot 2018-12-23 17:00:51 UTC
Thank you very much. I hope the next release comes soon.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.