AUFS related "Text file busy" error

I am running into intermittent “Text file busy” errors when trying to run some simple ROS tests that are built with catkin_make (see below for details).

According to the discussions at https://bitbucket.org/osrf/srcsim/issues/218/docker-build-error and
Running chmod on file results in 'text file busy' when running straight after. · Issue #9547 · moby/moby · GitHub, this sounds like it is an AUFS race condition with subsequent commands interacting with the same files. Consistent with this, I have not yet seen this issue when running circleci local execute with an overlay2 storage driver.

The other workaround suggested by the links above is to insert a wait or a sync between the offending commands. Unfortunately, in my case, the suspected commands are buried within catkin_make files generated by cmake, so I cannot easily modify them.

Question 1) Is there any way to run circleci in a docker container with the overlay2 storage driver?

Question 2) Does anyone have any other suggestion on how to resolve this problem?

Running command: “cmake /opt/artemis/src -DCATKIN_DEVEL_PREFIX=/opt/artemis/devel -DCMAKE_INSTALL_PREFIX=/opt/artemis/install -G Unix Makefiles” in “/opt/artemis/build”

– Using CATKIN_DEVEL_PREFIX: /opt/artemis/devel
– Using CMAKE_PREFIX_PATH: /opt/artemis/devel;/opt/ros/kinetic
– This workspace overlays: /opt/artemis/devel;/opt/ros/kinetic
– Using PYTHON_EXECUTABLE: /usr/bin/python
– Using Debian Python package layout
– Using empy: /usr/bin/empy
– Using CATKIN_ENABLE_TESTING: ON
– Call enable_testing()
– Using CATKIN_TEST_RESULTS_DIR: /opt/artemis/build/test_results
– Found gmock sources under ‘/usr/src/gmock’: gmock will be built
– Found gtest sources under ‘/usr/src/gmock’: gtests will be built
– Using Python nosetests: /usr/bin/nosetests-2.7
– catkin 0.7.14
– BUILD_SHARED_LIBS is on
– Using CATKIN_BLACKLIST_PACKAGES: sas_rviz_plugins;ros_visualizer
CMake Error at /opt/ros/kinetic/share/catkin/cmake/safe_execute_process.cmake:11 (message):
execute_process(/opt/artemis/build/catkin_generated/env_cached.sh
“/usr/bin/python” “/usr/bin/empy” “–raw-errors” “-F”
“/opt/artemis/build/catkin_generated/order_packages.py” “-o”
“/opt/artemis/build/catkin_generated/order_packages.cmake”
“/opt/ros/kinetic/share/catkin/cmake/em/order_packages.cmake.em”) returned
error code Text file busy
Call Stack (most recent call first):
/opt/ros/kinetic/share/catkin/cmake/em_expand.cmake:25 (safe_execute_process)
/opt/ros/kinetic/share/catkin/cmake/catkin_workspace.cmake:35 (em_expand)
CMakeLists.txt:63 (catkin_workspace)

Something similar was previously reported as a bug here on circleci as Moving then executing script in Dockerfile causes "Text file busy" error, but then worked around by adding sync commands.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.