python-teos icon indicating copy to clipboard operation
python-teos copied to clipboard

Add a signal to notify when the teosd.py/TeosDaemon is done with bootstrapping

Open bigspider opened this issue 5 years ago • 1 comments

Currently, there is no way of knowing when the TeosDaemon is fully initialized and ready once start is called, therefore the e2e tests just wait for a timeout, which occasionally led to failures like this when the timeout is too short: https://app.circleci.com/pipelines/github/talaia-labs/python-teos/789/workflows/7301bb92-7e0b-4e64-ae1d-bccaef33f89c/jobs/1096

Adding an Event argument to the main() method and to the TeosDaemon constructor would allow for a more reliable synchronization mechanism. A similar method could be used for all other processes as long as they are run via multiprocessing.Process.

bigspider avatar Sep 10 '20 09:09 bigspider

I tried to do some work in the 214-bootstrap-signal branch; it's easy to do it using an Event for processes that we create with multiprocessing.Process, but I didn't manage to use a simple method to synchronize with subprocesses created in other ways, like the api process created with gunicorn using popen. I tried to create a pipe using os.pipe, but getting an OSError: [Errno 9] Bad file descriptor when I tried to open it in the child process.

Leaving it for now to work on other issues.

bigspider avatar Sep 11 '20 07:09 bigspider