-
-
Notifications
You must be signed in to change notification settings - Fork 25.8k
Tests failing on master due to tree recythonization issues #7094
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
Comments
@arthurmensch you're the expert here. This is really not great at the moment... |
travis is green again, but this remains an inconvenience. i'm closing this for now. |
Hm, I am not a Travis expert either, but would it maybe help to use the "Trusty" environment?
https://docs.travis-ci.com/user/trusty-ci-environment/ It says it's beta but I haven't had any issues with that so far. Maybe it's worth a try?
|
Hmm, how is using trusty different from just turning off build caching all together? Can you even do the latter? |
sorry, that I don't know ;). The reason why is started using trusty was because of other issues I had when compiling tensorflow. If I remember correctly, there were some issues with some C libraries, and trusty is more up to date regarding the toolchain (plus, I noticed that builds are much faster). In any case, I just thought that may be interesting, but turning off caching may have the same effect here. |
Ah I see, thanks for the suggestion, I'd be in favor of turning off the cache / using trusty (I'll first read a bit more into the docs ;) ) |
Sure. The specific issue I had with the default travis environment was more like
Just noticed the
line in the trusty doc and thought it could be relevant. I am really curious about the diff between this and the regular environment without caching (I think there must be some diff., otherwise they wouldn't write this out so explicitly in the docs!?) |
I am away from computer until august 16th (I have only my phone right now),
|
+1 for that! |
ping @arthurmensch :) |
Could I kindly dearly gently but adamantly re-request that the travis cache be disabled until we fix it to not fail on PRs that work perfectly?!! :) This wastes the developer's time in searching for a solution that does not exist. We save a maximum of 10 minutes by caching the compilation, but appveyor builds typically take 30 mins to pass... Travis is never the bottle neck... |
I think, I know why this fails, so our The problem happens at a particular class in a file A that has dependencies in another file B that has been edited/recythonized and hence re-compiled. I think file A is not re-cythonized and hence not re-compiled (and is instead taken from cache)... And hence the class at file A complains that the dependent class in file B is of wrong size... If my understanding is right, we need to re-cythonize all the interdependent files. (This is somewhat similar to the my fix for |
what do you mean by dependency? I'm pretty sure travis is often the bottle neck and changing cython is relatively rare to the number of all PRs. Fix welcome though ;) |
I think raghav is on the right track, several times I've modified tree cython files and gotten this error in gradient boosting. |
Not sure I used the right term here but I mean |
For anyone who wants to quickly verify if the travis cache is the reason for failure try this curl -Ls https://goo.gl/fj71qd | git apply -v --index; git commit -m "NOMERGE use new cache dir travis"; and push to your branch. |
Ah wait this patch is better. This will delete the curl -Ls https://goo.gl/fprtqz | git apply -v --index; git commit -m "NOMERGE recythonize all"; and push to your branch. Make sure to delete this commit later, once the tests pass and force push again. Or curl -Ls https://goo.gl/D3sF0m | git apply -v --index; git commit -m "UNDO recythonize all"; and push. |
A quick stop-gap solution would be to always do Cythonization of all files takes 40s on my machine so I agree the caching is not that crucial. Looking at timings on Travis most build take 8-12 minutes so you are looking at saving at most 8% of build time for each individual build. |
Description
The last commit to master, 376aa50 (from #6954) is failing tests on travisCI (although the PR passed all tests). The reason it's doing so is because of a phenomenon that people who work with the
tree
module are quite familiar with --- for some reason, it isn't recythonizing all of the dependencies and thus throws anImportError
.This behavior has been reported several times, e.g. at:
#4899 (comment)
Steps/Code to Reproduce
see: https://travis-ci.org/scikit-learn/scikit-learn/jobs/147795508 line 2226
Expected Results
Tests pass
Actual Results
Tests fail
Misc Comments
I've been using hacky methods to get around this for awhile (e.g. manually adding a change to the file that isn't being recythonized), but it also seems to work if someone clears the travis cache. However, these are annoying "solutions" -- is there anyway we can fix the behavior? Namely, it seems that
_gradient_boosting.pyx
isn't being recythonized when things change in thetree
module.The text was updated successfully, but these errors were encountered: