Giter VIP home page Giter VIP logo

Comments (9)

absolutelynothelix avatar absolutelynothelix commented on August 28, 2024

unfortunately, a core of the non-debug build has a little use. if it’s possible do and run a debug build of picom built from the latest commit of the next branch. when a segfault happens, do coredumpctl gdb, then bt and post the backtrace.

from picom.

Monsterovich avatar Monsterovich commented on August 28, 2024

I have a similar problem on Intel integrated hardware (Intel(R) HD Graphics 520). I will provide a debug file when I catch the crash.

from picom.

vejkse avatar vejkse commented on August 28, 2024

I think I managed to install a debug build of picom (I just used meson --buildtype=debug instead of meson --buildtype=release, I hope this is right).

I now am able to reproduce the crash at will with my XMonad configuration, but not without using XMonad-specific commands. I just need to fill a workspace with 5 or 6 windows, and then

  1. go to another workspace
  2. apply the XMonad function killWindow to all windows of the first workspace
  3. delete the first workspace using removeWorkspaceByTag from XMonad DynamicWorkspaces extension.

Just killing the windows doesn’t crash picom. When there are not that many windows, it doesn’t crash either.

Doing coredumpctl gdb and then bt, I get this:

#0  0x00007f11e3a108ec in ?? () from /usr/lib/libc.so.6
#1  0x00007f11e39c1ea8 in raise () from /usr/lib/libc.so.6
#2  0x00007f11e39ab53d in abort () from /usr/lib/libc.so.6
#3  0x00007f11e39ab45c in ?? () from /usr/lib/libc.so.6
#4  0x00007f11e39ba9f6 in __assert_fail () from /usr/lib/libc.so.6
#5  0x0000563ec987f0d7 in ?? ()
#6  0x0000563ec984ca06 in ?? ()
#7  0x0000563ec984d68c in ?? ()
#8  0x00007f11e3fc60cb in ev_invoke_pending () from /usr/lib/libev.so.4
#9  0x00007f11e3fc9d10 in ev_run () from /usr/lib/libev.so.4
#10 0x0000563ec9847ac8 in ?? ()
#11 0x00007f11e39ac790 in ?? () from /usr/lib/libc.so.6
#12 0x00007f11e39ac84a in __libc_start_main () from /usr/lib/libc.so.6
#13 0x0000563ec9848e25 in ?? ()

which doesn’t look very useful. So I suspect I did something wrong. If I know what, I can easily redo this, since I can now reproduce the crash at will.

from picom.

Monsterovich avatar Monsterovich commented on August 28, 2024

I was able to catch a crash.

GNU gdb (Ubuntu 12.1-0ubuntu1~22.04) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/picom...

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file /memfd:xshmfence (deleted) during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing

warning: Can't open file anon_inode:i915.gem which was expanded to anon_inode:i915.gem during file-backed mapping note processing
[New LWP 94672]
[New LWP 94754]
[New LWP 94756]
[New LWP 94753]
[New LWP 97127]
[New LWP 94755]
[New LWP 97126]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `picom --daemon --config /home/monsterovich/.config/picom.conf'.
Program terminated with signal SIGABRT, Aborted.
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140535933342592) at ./nptl/pthread_kill.c:44
44	./nptl/pthread_kill.c: Нет такого файла или каталога.
[Current thread is 1 (Thread 0x7fd112629380 (LWP 94672))]
(gdb) back
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140535933342592) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=140535933342592) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=140535933342592, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007fd112442476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007fd1124287f3 in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007fd11242871b in __assert_fail_base (fmt=0x7fd1125dd150 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=0x556fff57ef10 "!(w->flags & WIN_FLAGS_PIXMAP_NONE)", file=0x556fff57ee76 "../src/backend/backend.c", line=206, function=<optimized out>)
    at ./assert/assert.c:92
#6  0x00007fd112439e96 in __GI___assert_fail (assertion=0x556fff57ef10 "!(w->flags & WIN_FLAGS_PIXMAP_NONE)", file=0x556fff57ee76 "../src/backend/backend.c", 
    line=206, function=0x556fff57f0b8 <__PRETTY_FUNCTION__.3> "paint_all_new") at ./assert/assert.c:101
#7  0x0000556fff55d8c8 in paint_all_new (ps=0x556ffff75920, t=0x557000c3e000, ignore_damage=false) at ../src/backend/backend.c:206
#8  0x0000556fff514400 in draw_callback_impl (loop=0x7fd112ba9720, ps=0x556ffff75920, revents=8192) at ../src/picom.c:1527
#9  0x0000556fff514525 in draw_callback (loop=0x7fd112ba9720, w=0x556ffff759e0, revents=8192) at ../src/picom.c:1553
#10 0x00007fd112b9d773 in ev_invoke_pending () from /lib/x86_64-linux-gnu/libev.so.4
#11 0x00007fd112ba1041 in ev_run () from /lib/x86_64-linux-gnu/libev.so.4
#12 0x0000556fff51983d in session_run (ps=0x556ffff75920) at ../src/picom.c:2479
#13 0x0000556fff519b9c in main (argc=4, argv=0x7fff73cca578) at ../src/picom.c:2585

from picom.

vejkse avatar vejkse commented on August 28, 2024

It doesn’t look like my stack trace with the missing symbols filled in. So maybe this is another bug… But what did you do apart from building with --buildtype=debug to get those symbols?

from picom.

Monsterovich avatar Monsterovich commented on August 28, 2024

It doesn’t look like my stack trace with the missing symbols filled in. So maybe this is another bug… But what did you do apart from building with --buildtype=debug to get those symbols?

I didn't do anything, meson generates binary with debug symbols by default.

from picom.

vejkse avatar vejkse commented on August 28, 2024

I found out what I did wrong: I used the PKGBUILD file from the AUR (Arch User Repository) and just changed the --buildtype and installed the resulting package. In the PKGBUILD, after meson, ninja is run. This seems to be the problem. I directly ran the built binary src/picom/build/src/picom without ninja or installing and got the following much better trace:

#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
#1  0x00007fdc0d34d2d3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007fdc0d2fda08 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007fdc0d2e6538 in __GI_abort () at abort.c:79
#4  0x00007fdc0d2e645c in __assert_fail_base (fmt=0x7fdc0d462b08 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
    assertion=assertion@entry=0x5614fc8906d8 "!(w->flags & WIN_FLAGS_PIXMAP_NONE)",
    file=file@entry=0x5614fc8905c9 "../src/backend/backend.c", line=line@entry=206,
    function=function@entry=0x5614fc890800 <__PRETTY_FUNCTION__.3> "paint_all_new") at assert.c:92
#5  0x00007fdc0d2f63d6 in __assert_fail (
    assertion=assertion@entry=0x5614fc8906d8 "!(w->flags & WIN_FLAGS_PIXMAP_NONE)",
    file=file@entry=0x5614fc8905c9 "../src/backend/backend.c", line=line@entry=206,
    function=function@entry=0x5614fc890800 <__PRETTY_FUNCTION__.3> "paint_all_new") at assert.c:101
#6  0x00005614fc8720d7 in paint_all_new (ps=0x5614fe09d000, t=<optimized out>, ignore_damage=<optimized out>)
    at ../src/backend/backend.c:206
#7  0x00005614fc83fa06 in draw_callback_impl (loop=loop@entry=0x7fdc0d914060, ps=ps@entry=0x5614fe09d000,
    revents=<optimized out>) at ../src/picom.c:1527
#8  0x00005614fc84068c in draw_callback (loop=0x7fdc0d914060, w=0x5614fe09d0c0, revents=<optimized out>)
    at ../src/picom.c:1553
#9  0x00007fdc0d9090cb in ev_invoke_pending () from /usr/lib/libev.so.4
#10 0x00007fdc0d90cd10 in ev_run () from /usr/lib/libev.so.4
#11 0x00005614fc83aac8 in session_run (ps=0x5614fe09d000) at ../src/picom.c:2479
#12 main (argc=<optimized out>, argv=<optimized out>) at ../src/picom.c:2585

It looks very much like Monsterovich’s trace after all.

from picom.

absolutelynothelix avatar absolutelynothelix commented on August 28, 2024

it seems that your crashes are actually assertion failures and they’re new (i don’t remember seeing anything like this recently). and you’re both using the glx backend on an intel gpu, so this issue may be specific to intel gpus. i’ll investigate later.

from picom.

Monsterovich avatar Monsterovich commented on August 28, 2024

it seems that your crashes are actually assertion failures and they’re new (i don’t remember seeing anything like this recently). and you’re both using the glx backend on an intel gpu, so this issue may be specific to intel gpus. i’ll investigate later.

@absolutelynothelix

I think it has something to do with turning on the screen and enabling compositing (maybe even related to lightdm). There can be a case where some window doesn't have time to create a pixmap and therefore picom crashes. It's very strange why there's assert instead of just skipping the window and printing a warning.

from picom.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.