-
-
Notifications
You must be signed in to change notification settings - Fork 745
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
Upgrade eventlet to the latest version (0.22.1) #4007
Conversation
eventlet where poll() method has been removed from select module because it's blocking. Note: This issue only affects tests.
It looks like CI fails with a lot of errors, even though unit tests pass locally. It looks like some of issues are related to the change in the DNS resolving. |
@warrenvw @armab It looks like packages build is failing with:
New version of eventlet uses It looks like we should probably ensure this file exists and install |
Yes, install |
👍 to verify what @warrenvw said. An addition to that, if minimal Docker image requires |
FWIW, seems we need
|
Yay, looks like adding |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. But the change is a little bit cryptic. Take InstallPackTestCase for example, i drilled down to https://github.com/StackStorm/st2/blob/master/contrib/packs/actions/pack_mgmt/download.py but I don't see any reference to eventlet and select poll. How is this failing?
@m4dcoder It's the underlying git library we use for git related operations - it shells out and uses As mentioned in the description - this only affects tests where we use |
And to clarify the test situation - there is actually no need for this and many other tests to use eventlet monkey patching, but the way the test runner works (multiple test files run in a single process) and the way eventlet monkey patching works (import side affect) it's sadly a side affect from some other test. We had issues with this cross test side affects and pollution in the past, but sadly there is no easy way around it - running each test file in a separate process would be too slow and expensive. |
This pull request upgrades
eventlet
to the latest stable version.Some tests were failing with this version because of the removal of
select.poll()
method. To get it to pass, I added a work around which injects originalselect.poll()
for tests.This issue itself only affected tests.
We don't perform monkey patching in the subprocess which is used to execute Python runner actions - we tried to do monkey patching there in the past, but it negatively affected / didn't work with some 3rd party libraries so we decided to remove it and making it opt-in instead of being enabled by default.
Resolves #3968.