CI documentation job sometimes fails with "[Errno 18] Invalid cross-device link"
From first glance this looks like an issue with moving/renaming files on different filesystems, assuming /tmp
is a tmpfs
in this case and /root/.cache
is probably an overlayfs
[771/809] Generating subprojects/gst-plugins-base/gst-libs/gst/audio/GstAudio-1.0.gir with a custom command (wrapped by meson to set env)
[772/809] Generating subprojects/gst-plugins-base/gst-libs/gst/pbutils/GstPbutils-1.0.gir with a custom command (wrapped by meson to set env)
FAILED: subprojects/gst-plugins-base/gst-libs/gst/pbutils/GstPbutils-1.0.gir
env PKG_CONFIG_PATH=/builds/alatiera/gstreamer_test_test123/build/meson-uninstalled 'CC=ccache cc' /usr/bin/g-ir-scanner --quiet --no-libtool --namespace=GstPbutils --nsversion=1.0 --warn-all --output subprojects/gst-plugins-base/gst-libs/gst/pbutils/GstPbutils-1.0.gir '--add-init-section=extern void gst_init(gint*,gchar**);g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);g_setenv("GST_REGISTRY_1.0", "/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gir_empty_registry.reg", TRUE);g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);g_setenv("GST_PLUGIN_SYSTEM_PATH_1_0", "", TRUE);gst_init(NULL,NULL);' --quiet --c-include=gst/pbutils/pbutils.h -I/builds/alatiera/gstreamer_test_test123/subprojects/gst-plugins-base/gst-libs/gst/pbutils -I/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs/gst/pbutils -I/builds/alatiera/gstreamer_test_test123/subprojects/gst-plugins-base/. -I/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/. -I/builds/alatiera/gstreamer_test_test123/subprojects/gst-plugins-base/gst-libs -I/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs -I/builds/alatiera/gstreamer_test_test123/subprojects/gstreamer/libs -I/builds/alatiera/gstreamer_test_test123/build/subprojects/gstreamer/libs -I/builds/alatiera/gstreamer_test_test123/subprojects/gstreamer/. -I/builds/alatiera/gstreamer_test_test123/build/subprojects/gstreamer/. -I/builds/alatiera/gstreamer_test_test123/subprojects/orc/. -I/builds/alatiera/gstreamer_test_test123/build/subprojects/orc/. --filelist=/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs/gst/pbutils/libgstpbutils-1.0.so.0.2300.0.p/GstPbutils_1.0_gir_filelist --include=Gst-1.0 --include=GstBase-1.0 --include=GstAudio-1.0 --include=GstVideo-1.0 --symbol-prefix=gst --identifier-prefix=Gst --pkg-export=gstreamer-pbutils-1.0 --cflags-begin -DG_DISABLE_DEPRECATED -I/builds/alatiera/gstreamer_test_test123/subprojects/gst-plugins-base/. -I/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/. -I/builds/alatiera/gstreamer_test_test123/subprojects/gst-plugins-base/gst-libs -I/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs -I/builds/alatiera/gstreamer_test_test123/subprojects/gstreamer/libs -I/builds/alatiera/gstreamer_test_test123/build/subprojects/gstreamer/libs -I/builds/alatiera/gstreamer_test_test123/subprojects/gstreamer/. -I/builds/alatiera/gstreamer_test_test123/build/subprojects/gstreamer/. -I/builds/alatiera/gstreamer_test_test123/subprojects/orc/. -I/builds/alatiera/gstreamer_test_test123/build/subprojects/orc/. -I/builds/alatiera/gstreamer_test_test123/subprojects/gstreamer/gst/parse -I/builds/alatiera/gstreamer_test_test123/build/subprojects/gstreamer/gst/parse -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/gobject-introspection-1.0 --cflags-end --add-include-path=/builds/alatiera/gstreamer_test_test123/build/subprojects/gstreamer/gst --add-include-path=/builds/alatiera/gstreamer_test_test123/build/subprojects/gstreamer/libs/gst/base --add-include-path=/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs/gst/video --add-include-path=/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs/gst/tag --add-include-path=/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs/gst/audio --add-include-path=/usr/share/gir-1.0 -L/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs/gst/video -L/builds/alatiera/gstreamer_test_test123/build/subprojects/gstreamer/libs/gst/base -L/builds/alatiera/gstreamer_test_test123/build/subprojects/gstreamer/gst -L/builds/alatiera/gstreamer_test_test123/build/subprojects/orc/orc --extra-library=gstvideo-1.0 --extra-library=gstbase-1.0 --extra-library=gstreamer-1.0 --extra-library=orc-0.4 -L/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs/gst/audio -L/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs/gst/tag --extra-library=gstaudio-1.0 --extra-library=gsttag-1.0 -L/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs/gst/pbutils --library gstpbutils-1.0 -L/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs/gst/video -L/builds/alatiera/gstreamer_test_test123/build/subprojects/gstreamer/libs/gst/base -L/builds/alatiera/gstreamer_test_test123/build/subprojects/gstreamer/gst -L/builds/alatiera/gstreamer_test_test123/build/subprojects/orc/orc -L/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs/gst/audio -L/builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base/gst-libs/gst/tag --extra-library=glib-2.0 --extra-library=gobject-2.0 --extra-library=gmodule-2.0 --extra-library=m --extra-library=z --extra-library=dl --extra-library=unwind --extra-library=dw --extra-library=elf --extra-library=girepository-1.0 --sources-top-dirs /builds/alatiera/gstreamer_test_test123/subprojects/gst-plugins-base --sources-top-dirs /builds/alatiera/gstreamer_test_test123/build/subprojects/gst-plugins-base
Traceback (most recent call last):
File "/usr/lib64/python3.9/shutil.py", line 823, in move
os.rename(src, real_dst)
OSError: [Errno 18] Invalid cross-device link: '/tmp/g-ir-scanner-cache-khadpdor' -> '/root/.cache/g-ir-scanner/afb95f42d519099f327fee30698cbf9039a9e0c1'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/g-ir-scanner", line 99, in <module>
sys.exit(scanner_main(sys.argv))
File "/usr/lib64/gobject-introspection/giscanner/scannermain.py", line 580, in scanner_main
transformer = create_transformer(namespace, options)
File "/usr/lib64/gobject-introspection/giscanner/scannermain.py", line 403, in create_transformer
transformer.register_include(include_obj)
File "/usr/lib64/gobject-introspection/giscanner/transformer.py", line 140, in register_include
self._parse_include(filename)
File "/usr/lib64/gobject-introspection/giscanner/transformer.py", line 225, in _parse_include
self._cachestore.store(filename, parser)
File "/usr/lib64/gobject-introspection/giscanner/cachestore.py", line 153, in store
shutil.move(tmp_filename, store_filename)
File "/usr/lib64/python3.9/shutil.py", line 843, in move
copy_function(src, real_dst)
File "/usr/lib64/python3.9/shutil.py", line 445, in copy2
copystat(src, dst, follow_symlinks=follow_symlinks)
File "/usr/lib64/python3.9/shutil.py", line 384, in copystat
lookup("utime")(dst, ns=(st.st_atime_ns, st.st_mtime_ns),
FileNotFoundError: [Errno 2] No such file or directory
[773/809] Generating subprojects/gst-plugins-base/gst-libs/gst/audio/GstAudio-1.0.typelib with a custom command