-
Notifications
You must be signed in to change notification settings - Fork 280
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ImportError: No module named catkin.environment_cache #806
Comments
The error message indicated that the Python package
But the module Please provide some logs about what happens in the CI build. What is in the workspace?
If you have control about the setup it might be valuable to add some debug logic like:
|
catkin_pkg (and friends) are installed from debs inside the cowbuilder. The workspace is several hundred packages— it builds a nightly SDK bundle of our software. I'll fork catkin and add the suggested lines; then we'll hopefully get some additional info the next time this triggers. |
Are you using the devel space or actually doing an install? |
It's That said, the |
Since |
Given that it's generated only a single time, some kind of problem with the |
I'm not sure that this is a correct assertion:
Simple test:
I'll have it trap the error and and dump |
Sorry, I was only testing with Python 3. Looks like Python 2 behaves differently. That makes much more sense - not being available at all - rather then being available partially only. |
Caught one:
Looks like
@jbohren Thoughts on all this? |
I just got something really similar in a freshly downloaded and setup Docker from today:
I |
@davetcoleman Whoa, interesting— especially as you hit this a) with catkin_tools, and b) in whatever Docker's COW filesystem is. Did you happen to try re-invoking |
Yes, I tried running catkin build a bunch of times after seeing your post, but it didn't change anything. cleaning did. |
Since this looks like an environment problem with |
Okay, will do. If it emerges that a change is required in ros/catkin to resolve it, I'll open a new ticket. |
For any future travellers, this has been confirmed as a catkin_tools bug around inadequate filesystem mutexing for large parallel builds. The fix is in catkin/catkin_tools#391. |
We're getting an intermittent issue affecting our CI builds. It pops up at random on different packages, but always takes this form:
This is running inside a cowbuilder, on vmware, with no additional containerization or isolation. The overall build is a large parallel affair being managed by catkin_tools. I've reported this there too (catkin/catkin_tools#378), but @jbohren suggests (and I'm inclined to agree) that this may only be fixable within catkin itself.
Looking at the templated logic here, I'm wondering if we're looking at a race condition with the copy-on-write filesystem?
It's not clear to me where an additional sync call is required, or even how to reliably reproduce this problem, but I'd be delighted to accept counsel on either of those points. In the meantime, would we consider a workaround which, say, pauses for 100ms and then retries the whole import/try-block in the event of the second import failing?
The text was updated successfully, but these errors were encountered: