yshui / picom

A lightweight compositor for X11 with animation support
https://picom.app/
Other
4.19k stars 588 forks source link

sgi_video_sync_scheduler_schedule: Assertion `!base->vblank_event_requested' failed #1300

Closed awused closed 3 months ago

awused commented 3 months ago

Platform

fedora 40 amd64

GPU, drivers, and screen setup

4090, four monitors at 120hz

name of display: :0 display: :0 screen: 0 direct rendering: Yes Memory info (GL_NVX_gpu_memory_info): Dedicated video memory: 24564 MB Total available memory: 24564 MB Currently available dedicated video memory: 19508 MB OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: NVIDIA GeForce RTX 4090/PCIe/SSE2 OpenGL core profile version string: 4.6.0 NVIDIA 555.58.02 OpenGL core profile shading language version string: 4.60 NVIDIA OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile

OpenGL version string: 4.6.0 NVIDIA 555.58.02 OpenGL shading language version string: 4.60 NVIDIA OpenGL context flags: (none) OpenGL profile mask: (none)

OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 555.58.02 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Environment

i3, x11

picom version

vgit-7094d from earlier today

Diagnostics ``` [ 08/02/2024 20:28:36.811 c2_parse_target WARN ] Type specifier is deprecated. Type "c" specified on target "I3_FLOATING_WINDOW" will be ignored, you can remove it. [ 08/02/2024 20:28:36.811 c2_parse_target WARN ] Type specifier is deprecated. Type "a" specified on target "_NET_WM_STATE" will be ignored, you can remove it. [ 08/02/2024 20:28:36.811 c2_parse_target WARN ] Format specifier is deprecated. Format "32" specified on target "_NET_WM_STATE" will be ignored, you can remove it. [ 08/02/2024 20:28:36.811 c2_parse_target WARN ] Type specifier is deprecated. Type "a" specified on target "_NET_WM_STATE" will be ignored, you can remove it. [ 08/02/2024 20:28:36.811 c2_parse_target WARN ] Format specifier is deprecated. Format "32" specified on target "_NET_WM_STATE" will be ignored, you can remove it. [ 08/02/2024 20:28:36.811 c2_parse_target WARN ] Type specifier is deprecated. Type "c" specified on target "_GTK_FRAME_EXTENTS" will be ignored, you can remove it. [ 08/02/2024 20:28:36.811 c2_parse_target WARN ] Type specifier is deprecated. Type "c" specified on target "_GTK_FRAME_EXTENTS" will be ignored, you can remove it. [ 08/02/2024 20:28:36.811 c2_parse_target WARN ] Type specifier is deprecated. Type "a" specified on target "_NET_WM_STATE" will be ignored, you can remove it. [ 08/02/2024 20:28:36.811 c2_parse_target WARN ] Format specifier is deprecated. Format "32" specified on target "_NET_WM_STATE" will be ignored, you can remove it. **Version:** vgit-7094d ### Extensions: * Shape: Yes * RandR: Yes * Present: Present ### Misc: * Use Overlay: No * Config file specified: None * Config file used: /home/desuwa/.config/picom.conf ### Drivers (inaccurate): NVIDIA [ 08/02/2024 20:28:36.878 egl_init WARN ] The egl backend is still experimental, use with care. [ 08/02/2024 20:28:38.274 egl_init ERROR ] Failed to create EGL surface. Cannot initialize backend egl ### Backend: glx * Driver vendors: * GLX: NVIDIA Corporation * GL: NVIDIA Corporation * GL renderer: NVIDIA GeForce RTX 4090/PCIe/SSE2 ```

Configuration:

Configuration file ``` backend = "glx"; vsync = true; shadow = true; #no-dock-shadow = true; #no-dnd-shadow = true; shadow-radius = 10; shadow-offset-x = -5; shadow-offset-y = 0; shadow-opacity = 0.8; shadow-red = 0.11; shadow-green = 0.12; shadow-blue = 0.13; shadow-exclude = [ "name = 'Notification'", "_GTK_FRAME_EXTENTS@:c", "class_g = 'i3-frame'", "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'", "_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'", "!I3_FLOATING_WINDOW@:c" ]; shadow-ignore-shaped = true; #alpha-step = 0.06; blur-background = false; blur-background-fixed = true; blur-kern = "7x7box"; blur-background-exclude = [ "class_g = 'i3-frame'", "window_type = 'dock'", "window_type = 'desktop'", "_GTK_FRAME_EXTENTS@:c" ]; # Duplicating the _NET_WM_STATE entries because compton cannot deal with atom arrays :-/ opacity-rule = [ "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" ]; fading = false; fade-delta = 7; fade-in-step = 0.05; fade-out-step = 0.05; fade-exclude = []; mark-wmwin-focused = true; mark-ovredir-focused = true; use-ewmh-active-win = true; detect-rounded-corners = true; detect-client-opacity = true; # refresh-rate = 0; dbe = false; glx-no-stencil = true; glx-copy-from-front = false; use-damage = true; # sw-opti = false; unredir-if-possible = false; focus-exclude = []; detect-transient = true; detect-client-leader = true; invert-color-include = []; xrender-sync-fence = true; wintypes: { tooltip = { fade = true; shadow = false; opacity = 1.00; focus = true; }; }; use_realtime_scheduling = false; ```

Steps of reproduction

  1. Use picom
  2. It sometimes crashes. This is not the earlier realtime crash when unlocking the screen.

Stack trace

[ 08/02/2024 20:27:12.955 sgi_video_sync_scheduler_init INFO ] Started sgi_video_sync_thread
picom: ../src/vblank.c:256: sgi_video_sync_scheduler_schedule: Assertion `!base->vblank_event_requested' failed.
zsh: IOT instruction (core dumped)  /usr/local/bin/picom --log-level info

Other Details

I noticed it crashing earlier, so I rebuilt with what was then git head. So the crash was introduced before this or in something else (driver update?). Hard to say if it's nvidia or picom since I updated everything at once, including picom to some old git version from a few weeks ago since 11.2 is still crashy with the other crash.

yshui commented 3 months ago

hi do you have a stack trace?

awused commented 3 months ago

I've rebuilt it with --releasetype=debug and I'm waiting for it to crash again with --log-level debug. Could take a few hours or a few days.

awused commented 3 months ago
[ 08/03/2024 13:54:12.987 gl_blit_inner TRACE ] Blitting 3 rectangles
[ 08/03/2024 13:54:12.987 gl_blit_inner TRACE ] Blitting 3 rectangles
[ 08/03/2024 13:54:12.987 gl_blit_inner TRACE ] Blitting 2 rectangles
[ 08/03/2024 13:54:12.987 gl_blit_inner TRACE ] Blitting 1 rectangles
[ 08/03/2024 13:54:12.987 gl_blit_inner TRACE ] Blitting 4 rectangles
[ 08/03/2024 13:54:12.987 draw_callback_impl VERBOSE ] Render schedule deviation: 2057 us (late) 674445269482 674445267425
[ 08/03/2024 13:54:12.987 draw_callback_impl VERBOSE ] Render end
[ 08/03/2024 13:54:12.987 sgi_video_sync_scheduler_schedule VERBOSE ] Requesting vblank event for msc 38355461
picom: ../src/vblank.c:256: sgi_video_sync_scheduler_schedule: Assertion `!base->vblank_event_requested' failed.
zsh: IOT instruction (core dumped)  /usr/local/bin/picom --log-level trace
/usr/local/bin/picom --log-level trace  606.22s user 1639.86s system 23% cpu 2:36:38.03 total
Program terminated with signal SIGABRT, Aborted.
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
Downloading source file /usr/src/debug/glibc-2.39-17.fc40.x86_64/nptl/pthread_kill.c
44        return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
[Current thread is 1 (Thread 0x7fc14061fac0 (LWP 1941570))]
(gdb) bt full
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {140725336159024}}
        ret = <optimized out>
#1  0x00007fc140908513 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78
No locals.
#2  0x00007fc1408afc4e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x00007fc140897902 in __GI_abort () at abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x20, sa_sigaction = 0x20}, sa_mask = {__val = {140467988240230, 12631216, 12631216, 1, 7, 0, 4, 47244640256, 0, 140725336159208, 18446744073709546728, 11, 12631200, 140725336159248, 140467988689806,
              140467990000864}}, sa_flags = -1127477760, sa_restorer = 0x7ffd2bac3410}
#4  0x00007fc14089781e in __assert_fail_base (fmt=0x7fc140a23b58 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x465c4d "!base->vblank_event_requested", file=file@entry=0x465c32 "../src/vblank.c", line=line@entry=256,
    function=function@entry=0x482ce0 <__PRETTY_FUNCTION__.20> "sgi_video_sync_scheduler_schedule") at assert.c:94
        str = 0xc0bcb0 "\213\200\301"
        total = 4096
#5  0x00007fc1408a7d87 in __assert_fail (assertion=assertion@entry=0x465c4d "!base->vblank_event_requested", file=file@entry=0x465c32 "../src/vblank.c", line=line@entry=256,
    function=function@entry=0x482ce0 <__PRETTY_FUNCTION__.20> "sgi_video_sync_scheduler_schedule") at assert.c:103
No locals.
#6  0x0000000000429712 in sgi_video_sync_scheduler_schedule (base=0x12219a0) at ../src/vblank.c:256
        self = <optimized out>
        self = <optimized out>
        __func__ = "sgi_video_sync_scheduler_schedule"
        __PRETTY_FUNCTION__ = "sgi_video_sync_scheduler_schedule"
#7  sgi_video_sync_scheduler_schedule (base=0x12219a0) at ../src/vblank.c:249
        self = 0x12219a0
        __func__ = "sgi_video_sync_scheduler_schedule"
        __PRETTY_FUNCTION__ = "sgi_video_sync_scheduler_schedule"
#8  0x0000000000429d75 in vblank_scheduler_schedule (self=0x12219a0, vblank_callback=vblank_callback@entry=0x40fa40 <check_render_finish>, user_data=user_data@entry=0xbf69f0) at ../src/vblank.c:493
        closure = <optimized out>
#9  0x0000000000413120 in draw_callback_impl (ps=ps@entry=0xbf69f0, revents=<optimized out>, loop=0x7fc140f24060 <default_loop_struct>) at ../src/picom.c:1906
        now = {tv_sec = 674445, tv_nsec = 268960294}
        draw_callback_enter_us = <optimized out>
        now_ms = <optimized out>
        delta_ms = <optimized out>
        after_handle_pending_updates_us = <optimized out>
        animation = <optimized out>
        was_redirected = true
        bottom = <optimized out>
        after_preprocess_us = <optimized out>
        did_render = <optimized out>
        __PRETTY_FUNCTION__ = "draw_callback_impl"
        __func__ = "draw_callback_impl"
#10 0x000000000041423a in draw_callback (loop=0x7fc140f24060 <default_loop_struct>, w=0xbf6a50, revents=<optimized out>) at ../src/picom.c:1917
        ps = 0xbf69f0
#11 0x00007fc140f18d8b in ev_invoke_pending (loop=0x7fc140f24060 <default_loop_struct>) at /usr/src/debug/libev-4.33-11.fc40.x86_64/ev.c:3770
        p = <optimized out>
#12 0x00007fc140f1c901 in ev_run (flags=0, loop=0x7fc140f24060 <default_loop_struct>) at /usr/src/debug/libev-4.33-11.fc40.x86_64/ev.c:4190
        __PRETTY_FUNCTION__ = <optimized out>
#13 ev_run (loop=0x7fc140f24060 <default_loop_struct>, flags=flags@entry=0) at /usr/src/debug/libev-4.33-11.fc40.x86_64/ev.c:4021
        __PRETTY_FUNCTION__ = "ev_run"
        waittime = <optimized out>
        sleeptime = <optimized out>
        prev_mn_now = <optimized out>
        to = <optimized out>
        to = <optimized out>
#14 0x000000000040df91 in session_run (ps=0xbf69f0) at ../src/picom.c:2677
No locals.
#15 main (argc=<optimized out>, argv=<optimized out>) at ../src/picom.c:2797
        dpy = <optimized out>
        exit_code = 0
        config_file = 0x0
        all_xerrors = false
        need_fork = false
        exe_name = <optimized out>
        pfds = {0, 0}
        quit = <optimized out>
        ret_code = <optimized out>
        pid_file = <optimized out>
        __func__ = "main"
yshui commented 3 months ago

@awused thanks! do you have more of that log?

yshui commented 3 months ago

hmm, i have a theory.

yshui commented 3 months ago

@awused try 4c5224a0ebee0ccd06c104dcdc297227ccba03a7 ae21c3df61b872010fdf3cb3d74e27e0468c6330

never mind, i don't think this is it.

yshui commented 3 months ago

@awused try https://github.com/yshui/picom/commit/c987b8c5a6416b453c89f5305e5a02bcb144f1e4

Unsure if this is it. I was pretty sloppy with the locks, and this fixes that.

awused commented 3 months ago

I've got the new code running but since I have no reliable way to reproduce this at will so it might take a while.

awused commented 3 months ago

Got a different crash, not sure if this is related or not. The crash itself is in a log_debug call but I assume it means some state is corrupt at that point.

[ 08/03/2024 18:06:15.021 renderer_prepare_commands TRACE ] Prepare commands for layer 0x11600042 @ 0000000000 ()
[ 08/03/2024 18:06:15.023 gl_blit_inner TRACE ] Blitting 50 rectangles
[ 08/03/2024 18:06:15.023 gl_blit_inner TRACE ] Blitting 4 rectangles
[ 08/03/2024 18:06:15.023 gl_blit_inner TRACE ] Blitting 4 rectangles
[ 08/03/2024 18:06:15.023 gl_blit_inner TRACE ] Blitting 1 rectangles
[ 08/03/2024 18:06:15.023 gl_blit_inner TRACE ] Blitting 4 rectangles
[ 08/03/2024 18:06:15.023 gl_blit_inner TRACE ] Blitting 1 rectangles
[ 08/03/2024 18:06:15.023 gl_blit_inner TRACE ] Blitting 2 rectangles
[ 08/03/2024 18:06:15.023 gl_blit_inner TRACE ] Blitting 1 rectangles
[ 08/03/2024 18:06:15.023 gl_blit_inner TRACE ] Blitting 50 rectangles
[ 08/03/2024 18:06:15.025 draw_callback_impl VERBOSE ] Render schedule deviation: 6319 us (late) 689567358980 689567352661
[ 08/03/2024 18:06:15.025 draw_callback_impl VERBOSE ] Render end
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event DESTROY_NO serial 0x001c45e9 window 0x1220004c "(Failed to get title)"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 0, backend_busy: 1
[ 08/03/2024 18:06:15.025 schedule_render VERBOSE ] Backend busy, will reschedule render at next vblank.
[ 08/03/2024 18:06:15.025 ev_destroy_notify DEBUG ] { event: 0x1160004f, id: 0x1220004c }
[ 08/03/2024 18:06:15.025 wm_destroy DEBUG ] Destroying window 0x1220004c
[ 08/03/2024 18:06:15.025 wm_tree_find_client DEBUG ] Toplevel 0x12800073 has WM_STATE set, weird. Using itself as its client window.
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event DESTROY_NO serial 0x001c45e9 window 0x1160004f "(Failed to get title)"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_destroy_notify DEBUG ] { event: 0x1160004d, id: 0x1160004f }
[ 08/03/2024 18:06:15.025 wm_destroy DEBUG ] Destroying window 0x1160004f
[ 08/03/2024 18:06:15.025 wm_tree_find_client DEBUG ] Toplevel 0x12800073 has WM_STATE set, weird. Using itself as its client window.
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event DESTROY_NO serial 0x001c45e9 window 0x1160004d "(Failed to get title)"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_destroy_notify DEBUG ] { event: 0x12800073, id: 0x1160004d }
[ 08/03/2024 18:06:15.025 wm_destroy DEBUG ] Destroying window 0x1160004d
[ 08/03/2024 18:06:15.025 wm_tree_find_client DEBUG ] Toplevel 0x12800073 has WM_STATE set, weird. Using itself as its client window.
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event DESTROY_NO serial 0x001c45e9 window 0x12800073 "(Failed to get title)"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_destroy_notify DEBUG ] { event: 0x000001f9, id: 0x12800073 }
[ 08/03/2024 18:06:15.025 wm_destroy DEBUG ] Destroying window 0x12800073
[ 08/03/2024 18:06:15.025 update_ewmh_active_win DEBUG ] EWMH _NET_ACTIVE_WINDOW is 0x128000a1
[ 08/03/2024 18:06:15.025 update_ewmh_active_win DEBUG ] 0x128000a1 (Shutdown) focused.
[ 08/03/2024 18:06:15.025 handle_new_window_attributes_reply DEBUG ] Failed to get window attributes for newly created window 0x12800073
[ 08/03/2024 18:06:15.025 ev_handle TRACE ] event DAMAGE_NOT serial 0x001c45eb window 0x004aa8c9 "Alacritty"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 repair_win TRACE ] Mark window 0x004aa8c9 (Alacritty) as having received damage
[ 08/03/2024 18:06:15.025 add_damage TRACE ] Adding damage:
[ 08/03/2024 18:06:15.025 dump_region TRACE ] nrects: 1
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (7687, 2175) - (8945, 2858)
[ 08/03/2024 18:06:15.025 ev_handle TRACE ] event DAMAGE_NOT serial 0x001c45eb window 0x00517beb "We Laugh and React to the CRAZY Media share you send #62 - YouTube — Mozilla Firefox"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 repair_win TRACE ] Mark window 0x00517beb (We Laugh and React to the CRAZY Media share you send #62 - YouTube — Mozilla Firefox) as having received damage
[ 08/03/2024 18:06:15.025 add_damage TRACE ] Adding damage:
[ 08/03/2024 18:06:15.025 dump_region TRACE ] nrects: 1
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (3200, 0) - (5760, 1410)
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event UNMAP_NOTI serial 0x001c45ec window 0x128000a1 "Shutdown"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_handle TRACE ] event DAMAGE_NOT serial 0x001c45ec window 0x00544858 "Shutdown"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 repair_win TRACE ] Mark window 0x00544858 (Shutdown) as having received damage
[ 08/03/2024 18:06:15.025 add_damage TRACE ] Adding damage:
[ 08/03/2024 18:06:15.025 dump_region TRACE ] nrects: 1
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (3903, 2413) - (6463, 3823)
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event UNMAP_NOTI serial 0x001c45ec window 0000000000 ""
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event PROPERTY_N serial 0x001c45ec window 0x128000a1 "Shutdown"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = 0x00000152, window = 0x128000a1, state = 1 }
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = _NET_WM_DESKTOP }
[ 08/03/2024 18:06:15.025 win_set_flags VERBOSE ] Set flags 128 to window 0x00544858 (Shutdown)
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event PROPERTY_N serial 0x001c45ec window 0x128000a1 "Shutdown"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = 0x00000158, window = 0x128000a1, state = 1 }
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = _NET_WM_STATE }
[ 08/03/2024 18:06:15.025 win_set_flags VERBOSE ] Set flags 128 to window 0x00544858 (Shutdown)
[ 08/03/2024 18:06:15.025 win_set_flags VERBOSE ] Set flags 1024 to window 0x00544858 (Shutdown)
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event REPARENT_N serial 0x001c45ec window 0x128000a1 "Shutdown"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_reparent_notify DEBUG ] Window 0x128000a1 has new parent: 0x000001f9, override_redirect: 0, send_event: 0x00544858
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event REPARENT_N serial 0x001c45ec window 0x128000a1 "(Failed to get title)"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_reparent_notify DEBUG ] Window 0x128000a1 has new parent: 0x000001f9, override_redirect: 0, send_event: 0x000001f9
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event PROPERTY_N serial 0x001c45ec window 0x128000a1 "(Failed to get title)"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = 0x0000017e, window = 0x128000a1, state = 0 }
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = WM_STATE }
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] WM_STATE changed for window 0x128000a1 ((Failed to get title)): set
[ 08/03/2024 18:06:15.025 wm_tree_set_wm_state DEBUG ] WM_STATE unchanged call (window 0x128000a1, WM_STATE 1).
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event CONFIGURE_ serial 0x001c45ec window 0x00544858 "Shutdown"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_configure_notify DEBUG ] { event: 0x000001f9, id: 0x00544858, above: 0x004b5ab8, override_redirect: 1 }
[ 08/03/2024 18:06:15.025 add_damage TRACE ] Adding damage:
[ 08/03/2024 18:06:15.025 dump_region TRACE ] nrects: 1
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (3898, 2413) - (4818, 2793)
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event PROPERTY_N serial 0x001c45ec window 0x000001f9 "(Root window)"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = 0x00000195, window = 0x000001f9, state = 0 }
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = _NET_CLIENT_LIST_STACKING }
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event PROPERTY_N serial 0x001c45ec window 0x000001f9 "(Root window)"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = 0x00000194, window = 0x000001f9, state = 0 }
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = _NET_CLIENT_LIST }
[ 08/03/2024 18:06:15.025 ev_handle TRACE ] event DAMAGE_NOT serial 0x001c45ec window 0x00420100 "Alacritty"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 repair_win TRACE ] Mark window 0x00420100 (Alacritty) as having received damage
[ 08/03/2024 18:06:15.025 add_damage TRACE ] Adding damage:
[ 08/03/2024 18:06:15.025 dump_region TRACE ] nrects: 4
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (6415, 2175) - (7673, 2177)
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (6415, 2177) - (6417, 2856)
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (7671, 2177) - (7673, 2856)
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (6415, 2856) - (7673, 2858)
[ 08/03/2024 18:06:15.025 ev_handle TRACE ] event DAMAGE_NOT serial 0x001c45ec window 0x00517d10 "Alacritty"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 repair_win TRACE ] Mark window 0x00517d10 (Alacritty) as having received damage
[ 08/03/2024 18:06:15.025 add_damage TRACE ] Adding damage:
[ 08/03/2024 18:06:15.025 dump_region TRACE ] nrects: 4
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (6415, 2872) - (7673, 2874)
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (6415, 2874) - (6417, 3553)
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (7671, 2874) - (7673, 3553)
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (6415, 3553) - (7673, 3555)
[ 08/03/2024 18:06:15.025 ev_handle TRACE ] event DAMAGE_NOT serial 0x001c45ec window 0x004f5955 "Alacritty"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 repair_win TRACE ] Mark window 0x004f5955 (Alacritty) as having received damage
[ 08/03/2024 18:06:15.025 add_damage TRACE ] Adding damage:
[ 08/03/2024 18:06:15.025 dump_region TRACE ] nrects: 4
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (7687, 2872) - (8945, 2874)
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (7687, 2874) - (7689, 3553)
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (8943, 2874) - (8945, 3553)
[ 08/03/2024 18:06:15.025 dump_region TRACE ] (7687, 3553) - (8945, 3555)
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event PROPERTY_N serial 0x001c45ec window 0x000001f9 "(Root window)"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = 0x0000014d, window = 0x000001f9, state = 0 }
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = _NET_ACTIVE_WINDOW }
[ 08/03/2024 18:06:15.025 ev_update_focused DEBUG ] Started async request to get _NET_ACTIVE_WINDOW
[ 08/03/2024 18:06:15.025 x_handle_error DEBUG ] Expected X error for request in free_win_res at ../src/wm/win.c:1230: X error 152 DAMAGE_BAD_DAMAGE request 143 minor 2 serial 1852911
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event UNMAP_NOTI serial 0x001c45ef window 0x00544858 "Shutdown"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 unmap_win_start DEBUG ] Unmapping 0x00544858 (Shutdown)
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event DESTROY_NO serial 0x001c45ef window 0x00544858 "Shutdown"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_destroy_notify DEBUG ] { event: 0x000001f9, id: 0x00544858 }
[ 08/03/2024 18:06:15.025 wm_destroy DEBUG ] Destroying window 0x00544858
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event CONFIGURE_ serial 0x001c45ef window 0x00544859 "(Failed to get title)"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_configure_notify DEBUG ] { event: 0x000001f9, id: 0x00544859, above: 0x004b5ab8, override_redirect: 1 }
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event PROPERTY_N serial 0x001c45ef window 0x000001f9 "(Root window)"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = 0x00000195, window = 0x000001f9, state = 0 }
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = _NET_CLIENT_LIST_STACKING }
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event PROPERTY_N serial 0x001c45ef window 0x000001f9 "(Root window)"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = 0x00000194, window = 0x000001f9, state = 0 }
[ 08/03/2024 18:06:15.025 ev_property_notify DEBUG ] { atom = _NET_CLIENT_LIST }
[ 08/03/2024 18:06:15.025 ev_handle DEBUG ] event DESTROY_NO serial 0x001c45ef window 0x00544859 "(Failed to get title)"
[ 08/03/2024 18:06:15.025 queue_redraw VERBOSE ] Queue redraw, render_queued: 1, backend_busy: 1
[ 08/03/2024 18:06:15.025 ev_destroy_notify DEBUG ] { event: 0x000001f9, id: 0x00544859 }
[ 08/03/2024 18:06:15.025 wm_destroy DEBUG ] Destroying window 0x00544859
[ 08/03/2024 18:06:15.025 x_handle_error DEBUG ] Expected X error for request in free_win_res at ../src/wm/win.c:1230: X error 152 DAMAGE_BAD_DAMAGE request 143 minor 2 serial 1852912
[ 08/03/2024 18:06:15.025 x_handle_error DEBUG ] Expected X error for request in repair_win at ../src/event.c:670: X error 152 DAMAGE_BAD_DAMAGE request 143 minor 3 serial 1852921
[ 08/03/2024 18:06:15.025 update_ewmh_active_win DEBUG ] EWMH _NET_ACTIVE_WINDOW is 0000000000
zsh: segmentation fault (core dumped)  /usr/local/bin/picom --log-level trace
/usr/local/bin/picom --log-level trace  137.10s user 360.37s system 27% cpu 29:43.68 total
Program terminated with signal SIGSEGV, Segmentation fault.
#0  wm_ref_deref (cursor=cursor@entry=0x0) at ../src/wm/wm.c:100
100     if (node->parent == NULL) {
[Current thread is 1 (Thread 0x7fdb52dfdac0 (LWP 3600330))]
Missing separate debuginfos, use: dnf debuginfo-install xorg-x11-drv-nvidia-libs-555.58.02-1.fc40.x86_64
(gdb) bt full
#0  wm_ref_deref (cursor=cursor@entry=0x0) at ../src/wm/wm.c:100
        node = 0x0
        __func__ = "wm_ref_deref"
#1  0x00000000004270ec in update_ewmh_active_win (req_base=<optimized out>, reply_or_error=<optimized out>) at ../src/event.c:235
        ps = <optimized out>
        __func__ = "update_ewmh_active_win"
        reply = <optimized out>
        wid = 0
        cursor = 0x0
#2  0x000000000041cfb4 in x_poll_for_event (c=c@entry=0x106fb30) at ../src/x.c:1116
        req = 0x120d9f0
        ret = 0x10a2a50
#3  0x000000000040fa7b in handle_x_events (ps=0x106f9f0) at ../src/picom.c:1470
        ev = <optimized out>
        err = <optimized out>
        ev = <optimized out>
        err = <optimized out>
        __func__ = "handle_x_events"
#4  handle_x_events_ev (loop=<optimized out>, w=0x106fa80, revents=<optimized out>) at ../src/picom.c:1483
        ps = 0x106f9f0
#5  0x00007fdb536f6d8b in ev_invoke_pending (loop=0x7fdb53702060 <default_loop_struct>) at /usr/src/debug/libev-4.33-11.fc40.x86_64/ev.c:3770
        p = <optimized out>
#6  0x00007fdb536fadbb in ev_run (flags=0, loop=0x7fdb53702060 <default_loop_struct>) at /usr/src/debug/libev-4.33-11.fc40.x86_64/ev.c:4063
        __PRETTY_FUNCTION__ = <optimized out>
#7  ev_run (loop=0x7fdb53702060 <default_loop_struct>, flags=flags@entry=0) at /usr/src/debug/libev-4.33-11.fc40.x86_64/ev.c:4021
        __PRETTY_FUNCTION__ = "ev_run"
        waittime = <optimized out>
        sleeptime = <optimized out>
        prev_mn_now = <optimized out>
        to = <optimized out>
        to = <optimized out>
#8  0x000000000040e15a in session_run (ps=0x106f9f0) at ../src/picom.c:2697
No locals.
#9  main (argc=<optimized out>, argv=<optimized out>) at ../src/picom.c:2817
        dpy = <optimized out>
        exit_code = 0
        config_file = 0x0
        all_xerrors = false
        need_fork = false
        exe_name = <optimized out>
        pfds = {0, 0}
        quit = <optimized out>
        ret_code = <optimized out>
        pid_file = <optimized out>
        __func__ = "main"

edit: https://github.com/yshui/picom/commit/ee2c097588c8868d4505df4bfc5b9537f7d24c8d#diff-d7b85dd13ad37f50a9fc23e68961ebe40065e3254f15aa8d6fd4e8b9d51f0f80R236 looks like this line added yesterday doesn't consider cursor being potentially NULL.

yshui commented 3 months ago

@awused that's a different one.

I will close this for now. ping me if you see this again.

yshui commented 3 months ago

@awused

looks like this line added yesterday doesn't consider cursor being potentially NULL.

good catch, thanks