Commit e0970f45 authored by Jérome Perrin's avatar Jérome Perrin Committed by Eteri

test: Do not check presence of lockfile in /tmp/ to assume Xvfb is running for this display

This caused two problems:
 - If Xfvb was killed and left a stale lock file, we don't reuse this
   display. After some time we end up having "All display locked"
   exception but no Xvfb process running.
 - Xvfb's slapos is patched to store control sockets and lockfiles in
   $TMPDIR ( nexedi/slapos@58462c24 ).
   We don't have $TMPDIR set in testnodes, but this would be a problem
   if we ever set it.

Because Xvfb can detect a stale lock file upon startup and start anyway,
the easy way running Xvfb for each display and see if it's still running
after a few seconds.
parent af6f45cb
...@@ -108,9 +108,8 @@ class Xvfb(Process): ...@@ -108,9 +108,8 @@ class Xvfb(Process):
def run(self): def run(self):
for display_try in self.display_list: for display_try in self.display_list:
lock_filepath = '/tmp/.X%s-lock' % display_try.replace(":", "") self._runCommand(display_try)
if not os.path.exists(lock_filepath): if self.process.poll() is None:
self._runCommand(display_try)
self.display = display_try self.display = display_try
os.environ['DISPLAY'] = self.display os.environ['DISPLAY'] = self.display
break break
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment