mirror of
https://git.yoctoproject.org/poky
synced 2026-04-19 15:32:13 +02:00
oeqa: Update cleanup code to wait for hashserv exit
We sometimes see exceptions from code seeing the hashserv DB files
being removed at directory cleanup time. Add a check to ensure the
hashserv has written the data base journal (and hence likely exited)
before cleaning up.
This will hopefully avoid errors like:
Traceback (most recent call last):
File "[...]/meta/lib/oeqa/sdk/buildtools-cases/build.py", line 30, in test_libc
delay = delay - 1
File "/usr/lib/python3.6/tempfile.py", line 948, in __exit__
self.cleanup()
File "/usr/lib/python3.6/tempfile.py", line 952, in cleanup
_rmtree(self.name)
File "/usr/lib/python3.6/shutil.py", line 486, in rmtree
_rmtree_safe_fd(fd, path, onerror)
File "/usr/lib/python3.6/shutil.py", line 424, in _rmtree_safe_fd
_rmtree_safe_fd(dirfd, fullname, onerror)
File "/usr/lib/python3.6/shutil.py", line 444, in _rmtree_safe_fd
onerror(os.unlink, fullname, sys.exc_info())
File "/usr/lib/python3.6/shutil.py", line 442, in _rmtree_safe_fd
os.unlink(name, dir_fd=topfd)
FileNotFoundError: [Errno 2] No such file or directory: 'hashserv.db-wal'
(From OE-Core rev: 635833734b4c61e453ca9843a9fb5cecf3eb1c97)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0b07d9add687d78495176cda0f3011c10ffa4d4b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -25,6 +25,6 @@ class BuildTests(OESDKTestCase):
|
||||
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"):
|
||||
while delay and (os.path.exists(testdir + "/bitbake.lock") or os.path.exists(testdir + "/cache/hashserv.db-wal")):
|
||||
time.sleep(1)
|
||||
delay = delay - 1
|
||||
|
||||
@@ -100,7 +100,7 @@ SSTATE_MIRRORS = "file://.* file://%s/PATH"
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
for i in range(0, 10):
|
||||
if os.path.exists(os.path.join(cls.tmpdir_eSDKQA, 'bitbake.lock')):
|
||||
if os.path.exists(os.path.join(cls.tmpdir_eSDKQA, 'bitbake.lock')) or os.path.exists(os.path.join(cls.tmpdir_eSDKQA, 'cache/hashserv.db-wal')):
|
||||
time.sleep(1)
|
||||
else:
|
||||
break
|
||||
|
||||
@@ -39,7 +39,7 @@ class NonConcurrentTestSuite(unittest.TestSuite):
|
||||
|
||||
def removebuilddir(d):
|
||||
delay = 5
|
||||
while delay and os.path.exists(d + "/bitbake.lock"):
|
||||
while delay and (os.path.exists(d + "/bitbake.lock") or os.path.exists(d + "/cache/hashserv.db-wal")):
|
||||
time.sleep(1)
|
||||
delay = delay - 1
|
||||
# Deleting these directories takes a lot of time, use autobuilder
|
||||
|
||||
Reference in New Issue
Block a user