Xorg does not close old /dev/dri/card0 connections
Submitted by Isabelle
Assigned to Xorg Project Team
Recently I've been getting a lot of "maximum number of x clients reached" errors. On my computer I run two X servers. I switch between them pretty regularly with crtl+alt+f1/f2.
I've been trying to figure out why I keep getting this error. xlsclients only lists 12 items, xrestop doesn't show much more. As of this writing I'm currently getting this error and cannot open any more processes.
lsof -U lists 203 items (mostly chromium, but I don't think that's the problem here), but
sudo ls /proc/2541/fd has 259 items (2541 is the pid of Xorg.bin.)
Now here's the thing, if I switch between my two x servers with ctrl+alt+f1/f2 (this works even if tty2 is a framebuffer) the number of items in /proc/2541/fd increases by one. Indeed if I run
sudo ls -p 2541 there's a new entry, /dev/dri/card0
I think that every time I switch, X re-opens my graphics card, but never closes the old connection. the number of items lsof -U doesn't change when I do this, so none of my programs are to blame, this is just X.
Because there are a lot of old connections floating around, I'm guessing the number of clients X can have is severely limited. I think this is why I'm getting these errors.
Not sure if this is a DRI extension error, saw the dri in /dev/dri/card0 and assumed.
I just updated three days ago too. Still have this problem.
~$ Xorg.bin -version X.Org X Server 1.16.2 Release Date: 2014-11-10 X Protocol Version 11, Revision 0 Build Operating System: Linux 3.17.2-1-ARCH x86_64 Current Operating System: Linux blackle-thinkpad 3.17.3-3-ck #1 SMP PREEMPT Tue Nov 18 16:50:56 EST 2014 x86_64 Kernel command line: BOOT_IMAGE=/boot/vmlinuz-linux-ck root=UUID=65d91862-d03e-4b93-b52c-6dae55b39a97 ro nox2apic rcutree.rcu_idle_gp_delay=1 init=/usr/lib/systemd/systemd Build Date: 10 November 2014 07:52:13PM
Current version of pixman: 0.32.6 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version.