← Back to team overview

openstack team mailing list archive

eventlet and OpenStack external libraries


Hi stackers,

A couple of days ago there was a long discussion of eventlet. I am
trying to summarize all external python dependencies for nova, glance
and keystone. I extracted the dependency from devstack, but I realize
that it is slightly different from tools/pip-requires. So I'm a little
confused on that and it may not be entirely accurate.

For each dependency, I try to understand the following questions:
1) is it pure python?

2) if it is pure python, does it have blocking operations (read file,
socket, acquire lock) such that eventlet monkey patch made an impact?

3) If it is not pure python, does it have blocking operations in the C
implementation such that eventlet green thread would block?

My understanding is that if the answer to question3 is yes, then the
blocking call should be executed in tpool, although it's more likely
to have bugs in that case.

Right now I find that mysql, xattr, libvirt, sendfile, and sqlite2 are
the libraries with potential blocking calls. There are many empty
cells that I'm not very sure. The result is in google doc and is
editable by anyone with the link. Feel free to edit. Once it
stabilizes maybe I'll put it in a wiki.




Follow ups