]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
oeqa/buildtools-cases: Allow bitbake time to shutdown
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 31 Aug 2021 13:14:16 +0000 (14:14 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 1 Sep 2021 13:06:44 +0000 (14:06 +0100)
bitbake may still be shutting down when the UI exits. Wait for the lock
to disappear before trying to delete the directory to avoid errors.

Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/buildtools/build/meta/lib/oeqa/sdk/buildtools-cases/build.py", line 23, in test_libc
    self._run('. %s/oe-init-build-env %s && bitbake virtual/libc' % (corebase, testdir))
  File "/usr/lib64/python3.7/tempfile.py", line 807, in __exit__
    self.cleanup()
  File "/usr/lib64/python3.7/tempfile.py", line 811, in cleanup
    _shutil.rmtree(self.name)
  File "/usr/lib64/python3.7/shutil.py", line 494, in rmtree
    _rmtree_safe_fd(fd, path, onerror)
  File "/usr/lib64/python3.7/shutil.py", line 452, in _rmtree_safe_fd
    onerror(os.unlink, fullname, sys.exc_info())
  File "/usr/lib64/python3.7/shutil.py", line 450, in _rmtree_safe_fd
    os.unlink(entry.name, dir_fd=topfd)
FileNotFoundError: [Errno 2] No such file or directory: 'bitbake.sock'

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/sdk/buildtools-cases/build.py

index 5a17ab98c6c4e3643fb95f51e5808875c65b0e48..9c9a84bf8a0b6da7c4a69c5ec5dcc9354b18e710 100644 (file)
@@ -3,6 +3,7 @@
 #
 
 import os, tempfile
+import time
 from oeqa.sdk.case import OESDKTestCase
 from oeqa.utils.subprocesstweak import errors_have_output
 errors_have_output()
@@ -20,4 +21,10 @@ class BuildTests(OESDKTestCase):
                 conf.write('\n')
                 conf.write('DL_DIR = "%s"\n' % self.td['DL_DIR'])
 
-            self._run('. %s/oe-init-build-env %s && bitbake virtual/libc' % (corebase, testdir))
+            try:
+                self._run('. %s/oe-init-build-env %s && bitbake virtual/libc' % (corebase, testdir))
+            finally:
+                delay = 10
+                while delay and os.path.exists(testdir + "/bitbake.lock"):
+                    time.sleep(1)
+                    delay = delay - 1