85d775a193
Some filesystem tests are failing when their image is prepared with guestmount, but succeeding if loop mounts are used instead. The reason seems to be a race condition the guestmount(1) manual page explains: When guestunmount(1)/fusermount(1) exits, guestmount may still be running and cleaning up the mountpoint. The disk image will not be fully finalized. This means that scripts like the following have a nasty race condition: guestmount -a disk.img -i /mnt # copy things into /mnt guestunmount /mnt # immediately try to use 'disk.img' ** UNSAFE ** The solution is to use the --pid-file option to write the guestmount PID to a file, then after guestunmount spin waiting for this PID to exit. The Python standard library has an os.waitpid() function for waiting a child to terminate, but it cannot wait on non-child processes. Implement a utility function that can do this by polling the process repeatedly for a given duration, optionally killing the process if it won't terminate on its own. Apply the suggested solution with this utility function, which makes the failing tests succeed again. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
||
---|---|---|
.. | ||
cmd | ||
dm | ||
env | ||
fs | ||
image | ||
lib | ||
log | ||
optee | ||
overlay | ||
py | ||
stdint | ||
trace | ||
bloblist.c | ||
bootm.c | ||
cmd_ut.c | ||
command_ut.c | ||
common.sh | ||
compression.c | ||
Kconfig | ||
Makefile | ||
nokia_rx51_test.sh | ||
print_ut.c | ||
run | ||
str_ut.c | ||
test-main.c | ||
time_ut.c | ||
unicode_ut.c | ||
ut.c |