No description
d6259d6a54
When tests are run in parallel, they will all compete to update and set up the systemplate directory, which has a handful of files that need to be up-to-date. This is a source of errors. Normally, these files are linked (hard- or soft- link, whichever succeeds). With linking, we only need to worry about the initial setup, as the files will never be out-of-date from then on. However, when linking fails, we need to copy the files, and update them (by copying over fresh versions of the files, if necessary) every time a new kit is forked. Copying over is tricky, as it's not atomic. To make it atomic, we copy the files to the destination directory under a temporary (random) name, and then rename to the final name (which is atomic, including replacing the target file, if it exists). No such race exists in production, where there is (or should be) but one instance of loolwsd (which does the initial setup) and forkit (which updates systemplate before forking new kit instances). This is an issue with parallel tests only. Change-Id: I6ba1514d00a84da7397d28efeb6378619711d52f Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97785 Tested-by: Jenkins Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> |
||
---|---|---|
android | ||
common | ||
cypress_test | ||
debian | ||
docker | ||
etc | ||
fuzzer | ||
gtk | ||
ios | ||
kit | ||
kubernetes/helm | ||
loleaflet | ||
man | ||
net | ||
scripts | ||
test | ||
tools | ||
wsd | ||
.clang-format | ||
.clang-tidy | ||
.gitignore | ||
.gitreview | ||
AUTHORS | ||
autogen.sh | ||
browsersync-config.js | ||
ChangeLog | ||
configure.ac | ||
COPYING | ||
discovery.xml | ||
favicon.ico | ||
INSTALL | ||
logerrit | ||
loolkitconfig-mobile.xcu | ||
loolkitconfig.xcu | ||
loolwsd-generate-proof-key | ||
loolwsd-systemplate-setup | ||
loolwsd.init.rhel6 | ||
loolwsd.service | ||
loolwsd.spec.in | ||
loolwsd.xml.in | ||
Makefile.am | ||
NEWS | ||
PROBLEMS | ||
README | ||
sysconfig.loolwsd |
LibreOffice Online. This project has several components: wsd/ The Web Services Daemon - which accepts external connections. kit/ The client which lives in its own chroot and renders documents. common/ Shared code between these processes. loleaflet/ The client side JavaScript component. test/ C++ based unit tests. cypress_test/ JavaScript based integration tests. It is recommended to read these files: wsd/README loleaflet/README Enjoy.