Simultaneous start of two X servers fails with "EVO Push buffer channel allocation failed"

Hello!

Around 80 % of tries I experiencing following issue.

If I start two X servers during system startup (almost) simultaneously I’m getting one X server started (sometimes eating 100 % CPU and don’t responding), and second X server fails to start with

(EE) Feb 20 19:55:48 NVIDIA(GPU-0): EVO Push buffer channel allocation failed
(EE) Feb 20 19:55:48 NVIDIA(GPU-0): Failed to allocate EVO core DMA push buffer
(WW) Feb 20 19:55:58 NVIDIA(GPU-0): Timed out detecting DP displays on DP-1
(EE) Feb 20 19:55:58 NVIDIA(0): Failing initialization of X screen 0

This behaviour observed on two different computers with CentOS 6-based OS (kernel 2.6.32) and GeForce 580 and 780.
I tried 319.76, 331.20, 331.49, 334.16 (beta) drivers.

As workaround I added “sleep 3” to one of X servers start scripts which looks like resolved this issue.

nvidia-bug-report.log.gz (121 KB)

Looks like I can’t add second attachment, so I pasted log of failing X server here: http://pastebin.com/ZgeUJbi3

This seems like an X server bug. It shouldn’t be trying to initialize the driver until after it has successfully acquired the VT, so the fact that they’re both trying to initialize simultaneously is a synchronization problem in the server. X.Org xserver 1.7 is pretty old. Do you still see this problem with a more modern server?

I tried to start simultaneously two X servers on Ubuntu 13.10 with Xorg 1.14.5 and NVidia drivers 319.32, and can’t reproduce described above behaviour.

Probably this is Xorg-related bug fixed in more recent releases, but now I tried on Debian-based Ubuntu, and in original report was RHEL 6-based OS — I’m not sure how similar startup sequence in their Upstart configurations and how “simultaneously” X-servers starts in both configurations.