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
https://github.com/moby/moby/issues/9547, 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):
“/usr/bin/python” “/usr/bin/empy” “–raw-errors” “-F”
error code Text file busy
Call Stack (most recent call first):
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