picom icon indicating copy to clipboard operation
picom copied to clipboard

Crashes when moving, opening, maximizing or closing windows.

Open SkyyySi opened this issue 5 years ago • 9 comments

Platform

Arch Linux

GPU, drivers, and screen setup

GTX 750 ti, latest Nvidia driver from Arch's repos, two monitors configured side-by-side

Environment

Official i3-gaps & openbox packages from Arch's reops

picom version

Version: vgit-d6bc6

Extensions:

  • Shape: Yes
  • XRandR: Yes
  • Present: Present

Misc:

  • Use Overlay: No (Another compositor is already running)
  • Config file used: /home/simon/.config/quickrice/picom.conf

Drivers (inaccurate):

NVIDIA

Configuration:

# Shadow
shadow = false;
shadow-radius = 12;
shadow-offset-x = -12;
shadow-offset-y = -12;
shadow-opacity = 1.0;
#shadow-red = 0.05;
#shadow-green = 0.08;
#shadow-blue = 0.15;
shadow-exclude = [
	"n:e:Notification",
	"_GTK_FRAME_EXTENTS@:c",
#	"window_type = 'unknown'",
	"window_type = 'dock'",
	"window_type = 'desktop'",
	"window_type = 'dnd'",
#	"window_type = 'menu'",
#	"window_type = 'dropdown_menu'",
#	"window_type = 'popup_menu'",
	"name = 'GLava'",
	"class_g = 'Conky'",
	"class_g ?= 'Notify-osd'",
	"class_g = 'Cairo-clock'",
    "class_g = 'Ulauncher'",
    "class_g = 'albert'",
	"class_g = 'Gnome-screenshot'",
];

# Blur
#blur-background = true;
#blur-background-frame = true;
#blur-method = "kawase";
blur-strength = 8;
blur-background-fixed = true;
blur-background-exclude = [
	"_GTK_FRAME_EXTENTS@:c",
	"window_type = 'unknown'",
 	"window_type = 'dock'",
	"window_type = 'desktop'",
	"window_type = 'dnd'",
#	"window_type = 'menu'",
#	"window_type = 'dropdown_menu'",
#	"window_type = 'popup_menu'",
	"class_g = 'GLava'",
	"class_g = 'Polybar'",
	"class_g = 'Ulauncher'",
	"class_g = 'Gnome-screenshot'",
	"class_g = 'Xfce4-screenshooter'",
	"class_g = 'albert'",
	"class_g = 'firefox'"
];

# Opacity
active-opacity = 1.0;
inactive-opacity = 1.0;
frame-opacity = 1.0;
inactive-opacity-override = false;
opacity-rule = [
	"100:class_g = 'Alacritty'",
	"100:class_g = 'konsole'",
	"100:class_g = 'Chromium'",
	"100:class_g = 'Google-chrome'",
	"100:class_g = 'firefox'",
];

# Fading
fading = true;
fade-delta = 7;
fade-in-step = 0.05;
fade-out-step = 0.05;
no-fading-openclose = false;
fade-exclude = [
	"_GTK_FRAME_EXTENTS@:c",
#	"window_type = 'unknown'",
#	"window_type = 'dock'",
#	"window_type = 'desktop'",
#	"window_type = 'dnd'",
#	"window_type = 'menu'",
#	"window_type = 'dropdown_menu'",
#	"window_type = 'popup_menu'",
	"name = 'GLava'",
	"class_g = 'Alacritty'",
	"class_g = 'konsole'",
	"class_g = 'Polybar'",
	"class_g = 'Tint2'",
	"class_g = 'Ulauncher'",
	"class_g = 'albert'",
	"class_g = 'Chromium'",
	"class_g = 'Google-chrome'",
	"class_g = 'firefox'",
];

# Other
backend = "glx";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;
vsync = true;
detect-transient = true;
detect-client-leader = true;
invert-color-include = [ ];
use-damage = true;

Steps of reproduction

Move some windows around on i3-gaps

Expected behavior

It just slides the windows

Current Behavior

  • Moving floating windows instandly crashes
  • Windows sometimes get shown at a position they were before moving them (in tiling mode)

Other details

I am aware that this fork is still very experimental, but I still hope you can make it a bit more stable :)

SkyyySi avatar Jul 12 '20 19:07 SkyyySi

Unfortunately I can't recreate this bug :/ Does this happen as well when using the xrender backend?

jonaburg avatar Jul 15 '20 06:07 jonaburg

Are there any errors that pop when it crashes? Is it just a segfault?

jonaburg avatar Jul 15 '20 17:07 jonaburg

No idea on the specific issue OP gets, but I'm able to reproduce crashes frequently.

 ~ ››› picom --experimental-backend --config /dev/null --backend glx
picom: ../src/picom.c:430: paint_preprocess: Assertion `now >= ps->fade_time' failed.
[1]    2999 abort (core dumped)  picom --experimental-backend --config /dev/null  glx

Also occurs with the xrender backend.

Able to reproduce by triggering too many (for some definition of "too many") animations simultaneously: spawning a lot of windows, layout changes with many windows. Easier to reproduce with a minimal config setting transition-length to something like 1000.

Issue template with system details

xeals avatar Jul 16 '20 08:07 xeals

I also just get this "core dumped" error with no further details, so I gess it's for the same reason.

SkyyySi avatar Jul 16 '20 08:07 SkyyySi

I have a similar issue. It starts normally but crashes as soon as I open another window.

Error message: free(): double free detected in tcache 2 Interestingly the error disappears as I run valgrind picom Now it shows lots of invalid reads but it doesn't crash anymore. Sadly running it with valgrind by default is not an option. Hopefully this helps.

Platform

Artix Linux latest updates (Nov. 26 2020)

GPU, drivers, and screen setup

One screen via HDMI connected to Laptop No GPU, just the intel internal chipset.

XMonad

picom version

vgit-3ecf9

Configuration:

backend = "glx";
glx-no-stencil = true;
glx-copy-from-front = false;
glx-swap-method = 1;
blur-background = true;
blur-kern = "7x7box";

corner-radius = 15;
transition-length = 1000
 
# Shadow
shadow = false;			# Disabled client-side shadows on windows.
dropdown_menu = { shadow = false;  };
popup_menu    = { shadow = false;  };
utility       = { shadow = false;  };

#Window type settings
wintypes:
{
  tooltip = { fade = true; shadow = false; };
  menu = { shadow = false; };
  dropdown_menu = { shadow = false; };
  popup_menu =  { shadow = false; };
};

mrdgo avatar Nov 26 '20 15:11 mrdgo

:+1: Same issue & error message as @mrdgo on Arch linux with BSPWM.

GPU is AMD rx570

Config:

backend = "glx";
vsync = true;

corner-radius = 16.0;

shadow = false;
shadow-offset-x = -4;
shadow-offset-y = -3;
shadow-radius = 12.0;
shadow-opacity = 0.85;

If I comment-out backend = "glx", it segfaults instead of aborting.

K4rakara avatar Dec 22 '20 19:12 K4rakara

I had the same issue, solved it by using --experimental-backends.

arthurbacci avatar Dec 28 '20 16:12 arthurbacci

where do you need to add --experimental-backends

NicTanghe avatar Feb 02 '21 11:02 NicTanghe

where do you need to add --experimental-backends

Running picom --experimental-backend -f --config ~/.config/picom instead of picom -f --config ~/.config/picom

arthurbacci avatar Feb 02 '21 14:02 arthurbacci