I'm experiencing rare (but annoying) whole X session crashes, since mid-2023.
To my surprise it turns out to be FVWM exiting on SIGABRT. I was able to make these crashes more likely by exercising Chromium screen-scraping, Firefox playing YouTube, whilst iconifying a small window. And do so with my own debug build. The result is the stack trace below. Packages are from Slackware 15.0, with a local build of xorg-server at 1.21.1.10. The fvwm-2.6.9-x86_64-4 package has been in use for some time without crashes, so likely what's changed is my working practices, another application, or library. Is anything in the stack trace raise suspicion? Is it likely (security) change to libX11 is exposing a bug, either in that library or FVWM? Thanks -- Mark Reading symbols from /opt/fvwm/bin/fvwm... [New LWP 18689] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Core was generated by `/opt/fvwm/bin/fvwm'. Program terminated with signal SIGABRT, Aborted. #0 0x00007f4f91bd5868 in raise () from /lib64/libc.so.6 (gdb) bt #0 0x00007f4f91bd5868 in raise () at /lib64/libc.so.6 #1 0x00007f4f91bbc546 in abort () at /lib64/libc.so.6 #2 0x00007f4f91bbc43f in _nl_load_domain.cold () at /lib64/libc.so.6 #3 0x00007f4f91bcd392 in () at /lib64/libc.so.6 <-- __assert_fail() #4 0x00007f4f92ffedf5 in () at /usr/lib64/libX11.so.6 <-- _XAllocID() #5 0x00007f4f92e6a2f8 in XRenderCreatePicture () at /usr/lib64/libXrender.so.1 #6 0x00000000004cd187 in FRenderRender (dpy=0x7568a0, win=8390156, pixmap=8390152, mask=0, alpha=8390154, depth=24, added_alpha_percent=100, tint=0, tint_percent=0, d=8390156, gc=0x76fc40, alpha_gc=0x76ff00, src_x=0, src_y=0, src_w=56, src_h=56, dest_x=2, dest_y=2, dest_w=56, dest_h=56, do_repeat=0) at FRender.c:464 #7 0x00000000004c1e65 in PGraphicsRenderPixmaps (dpy=0x7568a0, win=8390156, pixmap=8390152, mask=0, alpha=8390154, depth=24, fra=0x7fff98bb9c40, d=8390156, gc=0x76fc40, mono_gc=0x76fe50, alpha_gc=0x76ff00, src_x=0, src_y=0, src_w=56, src_h=56, dest_x=2, dest_y=2, dest_w=56, dest_h=56, do_repeat=0) at PictureGraphics.c:1012 #8 0x000000000045b808 in DrawIconPixmapWindow (fw=0x79e640, reset_bg=0, pev=0x7fff98bb9ce0, Shadow=0x76c8b0, Relief=0x76c800, cs=-1) at icons.c:1192 #9 0x000000000045c7c2 in DrawIconWindow (fw=0x79e640, draw_title=1, draw_pixmap=1, focus_change=0, reset_bg=0, pev=0x7fff98bb9e50) at icons.c:1490 #10 0x000000000043b08d in HandleExpose (ea=0x7fff98bb9f90) at events.c:2361 #11 0x000000000043e371 in dispatch_event (e=0x7a6e78) at events.c:4160 #12 0x000000000043738c in _pred_weed_handle_expose (display=0x7568a0, event=0x7a6e78, arg=0x0) at events.c:266 #13 0x00000000004d0b3f in _fev_pred_weed_if (display=0x7568a0, event=0x7a6e78, arg=0x7fff98bba3a0 "asC") at FEvent.c:176 #14 0x00000000004d0957 in _fev_pred_check_peek (display=0x7568a0, event=0x7a6e78, arg=0x7fff98bba100 "|\nM") at FEvent.c:144 #15 0x00007f4f92fdb8b2 in XCheckIfEvent () at /usr/lib64/libX11.so.6 #16 0x00000000004d1cfb in FCheckPeekIfEvent (display=0x7568a0, event_return=0x7fff98bba2e0, predicate=0x4d0a7c <_fev_pred_weed_if>, arg=0x7fff98bba3a0 "asC") at FEvent.c:590 #17 0x00000000004d1b04 in FWeedIfEvents (display=0x7568a0, weed_predicate=0x437361 <_pred_weed_handle_expose>, arg=0x0) at FEvent.c:527 #18 0x000000000043ece1 in handle_all_expose () at events.c:4545 #19 0x000000000047e12f in __raise_or_lower_window (t=0x79e640, mode=SM_RAISE, allow_recursion=1, is_new_window=0, is_client_request=0) at stack.c:1141 #20 0x000000000047e19c in raise_or_lower_window (t=0x79e640, mode=SM_RAISE, allow_recursion=1, is_new_window=0, is_client_request=0) at stack.c:1158 #21 0x000000000047ed6d in RaiseWindow (t=0x79e640, is_client_request=0) at stack.c:1715 #22 0x000000000047f611 in CMD_Raise (cond_rc=0x7fff98bba9d8, exc=0x79ed70, action=0x79b235 "") at stack.c:2048 #23 0x00000000004894c0 in __execute_function (cond_rc=0x7fff98bba9d8, exc=0x79ee70, action=0x783990 "Raise", exec_flags=128 '\200', args=0x7fff98bba810, has_ref_window_moved=0) at functions.c:639 #24 0x000000000048998f in __run_complex_function_items (cond_rc=0x7fff98bba9d8, cond=105 'i', func=0x783a00, exc=0x79ee70, args=0x7fff98bba810, has_ref_window_moved=0) at functions.c:838 #25 0x0000000000489f61 in execute_complex_function (cond_rc=0x7fff98bba9d8, exc=0x79ef70, action=0x799d00 "IconifyRaiseFunction", desperate=0x7fff98bba960, has_ref_window_moved=0) at functions.c:1036 #26 0x0000000000489548 in __execute_function (cond_rc=0x0, exc=0x774670, action=0x78b7b0 "IconifyRaiseFunction", exec_flags=0 '\000', args=0x0, has_ref_window_moved=0) at functions.c:659 #27 0x000000000048a693 in execute_function (cond_rc=0x0, exc=0x774670, action=0x78b7b0 "IconifyRaiseFunction", exec_flags=0 '\000') at functions.c:1302 #28 0x0000000000439bbf in __handle_bpress_action (exc=0x774670, action=0x78b7b0 "IconifyRaiseFunction") at events.c:1642 #29 0x0000000000439ea7 in __handle_bpress_on_managed (exc=0x774670) at events.c:1743 #30 0x000000000043a02f in HandleButtonPress (ea=0x7fff98bbaba0) at events.c:1801 #31 0x000000000043e371 in dispatch_event (e=0x7fff98bbabd0) at events.c:4160 #32 0x000000000043e445 in HandleEvents () at events.c:4211 #33 0x0000000000464e37 in main (argc=2, argv=0x7fff98bbb058) at fvwm.c:2590 (gdb) up #1 0x00007f4f91bbc546 in abort () from /lib64/libc.so.6 (gdb) up #2 0x00007f4f91bbc43f in __assert_fail_base.cold () from /lib64/libc.so.6 (gdb) up #3 0x00007f4f91bcd392 in __assert_fail () from /lib64/libc.so.6 (gdb) up #4 0x00007f4f92ffedf5 in _XAllocID () from /usr/lib64/libX11.so.6 (gdb) up #5 0x00007f4f92e6a2f8 in XRenderCreatePicture () from /usr/lib64/libXrender.so.1 (gdb) up #6 0x00000000004cd187 in FRenderRender (dpy=0x7568a0, win=8390156, pixmap=8390152, mask=0, alpha=8390154, depth=24, added_alpha_percent=100, tint=0, tint_percent=0, d=8390156, gc=0x76fc40, alpha_gc=0x76ff00, src_x=0, src_y=0, src_w=56, src_h=56, dest_x=2, dest_y=2, dest_w=56, dest_h=56, do_repeat=0) at FRender.c:464 464 alpha_picture = FRenderCreatePicture( (gdb) list 459 460 if (added_alpha_percent >= 100) 461 { 462 if (alpha != None) 463 { 464 alpha_picture = FRenderCreatePicture( 465 dpy, alpha, PFrenderAlphaFormat, pam, &pa); 466 } 467 else if (mask != None) 468 { -rw-r--r-- 1 root root 49773 Oct 12 18:49 /var/log/packages/libX11-1.8.7-x86_64-1_slack15.0 -rw-r--r-- 1 root root 12096 Apr 1 2021 /var/log/packages/fvwm-2.6.9-x86_64-4 +--------------------------+ Tue Oct 3 22:19:10 UTC 2023 patches/packages/libX11-1.8.7-x86_64-1_slack15.0.txz: Upgraded. This update fixes security issues: libX11: out-of-bounds memory access in _XkbReadKeySyms(). libX11: stack exhaustion from infinite recursion in PutSubImage(). libX11: integer overflow in XCreateImage() leading to a heap overflow. For more information, see: https://lists.x.org/archives/xorg-announce/2023-October/003424.html https://www.cve.org/CVERecord?id=CVE-2023-43785 https://www.cve.org/CVERecord?id=CVE-2023-43786 https://www.cve.org/CVERecord?id=CVE-2023-43787 (* Security fix *) +--------------------------+ Thu Jun 15 18:59:33 UTC 2023 patches/packages/libX11-1.8.6-x86_64-1_slack15.0.txz: Upgraded. This update fixes buffer overflows in InitExt.c that could at least cause the client to crash due to memory corruption. For more information, see: https://www.cve.org/CVERecord?id=CVE-2023-3138 (* Security fix *) +--------------------------+ Mon Jun 7 18:53:49 UTC 2021 x/libX11-1.7.2-x86_64-1.txz: Upgraded. This is a bug fix release, correcting a regression introduced by and improving the checks from the fix for CVE-2021-31535. +--------------------------+ Wed May 19 21:05:00 UTC 2021 x/libX11-1.7.1-x86_64-1.txz: Upgraded. This update fixes missing request length checks in libX11 that can lead to the emission of extra X protocol requests to the X server. For more information, see: https://lists.x.org/archives/xorg-announce/2021-May/003088.html https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-31535 (* Security fix *) $ xdpyinfo name of display: :1 version number: 11.0 vendor string: The X.Org Foundation vendor release number: 12101010 X.Org version: 1.21.1.10 maximum request size: 16777212 bytes motion buffer size: 256 bitmap unit, bit order, padding: 32, LSBFirst, 32 image byte order: LSBFirst number of supported pixmap formats: 7 supported pixmap formats: depth 1, bits_per_pixel 1, scanline_pad 32 depth 4, bits_per_pixel 8, scanline_pad 32 depth 8, bits_per_pixel 8, scanline_pad 32 depth 15, bits_per_pixel 16, scanline_pad 32 depth 16, bits_per_pixel 16, scanline_pad 32 depth 24, bits_per_pixel 32, scanline_pad 32 depth 32, bits_per_pixel 32, scanline_pad 32 keycode range: minimum 8, maximum 255 focus: window 0x400000c, revert to Parent number of extensions: 28 BIG-REQUESTS Composite DAMAGE DOUBLE-BUFFER DPMS DRI2 DRI3 GLX Generic Event Extension MIT-SCREEN-SAVER MIT-SHM Present RANDR RECORD RENDER SHAPE SYNC X-Resource XC-MISC XFIXES XFree86-DGA XFree86-VidModeExtension XINERAMA XInputExtension XKEYBOARD XTEST XVideo XVideo-MotionCompensation default screen number: 0 number of screens: 1 screen #0: dimensions: 5120x1200 pixels (1354x317 millimeters) resolution: 96x96 dots per inch depths (7): 24, 1, 4, 8, 15, 16, 32 root window id: 0x6b2 depth of root window: 24 planes number of colormaps: minimum 1, maximum 1 default colormap: 0x20 default number of colormap cells: 256 preallocated pixels: black 0, white 16777215 options: backing-store WHEN MAPPED, save-unders NO largest cursor: 64x64 current input event mask: 0xda003f KeyPressMask KeyReleaseMask ButtonPressMask ButtonReleaseMask EnterWindowMask LeaveWindowMask StructureNotifyMask SubstructureNotifyMask SubstructureRedirectMask PropertyChangeMask ColormapChangeMask number of visuals: 504 default visual id: 0x21 [...]