Второй вызов `twisted.internet.utils.getProcessValue ()` зависает в модульном тесте utwist в экземпляре EC2 - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь запустить свои витые юнит-тесты внутри экземпляра Amazon EC2 (Ubuntu 16.04 AMI по умолчанию) и у меня возникают проблемы с последующими вызовами utils.getProcessValue() в том же тесте.Ниже приведен минимальный пример того, о чем я говорю:

# test_hang.py
from twisted.internet import defer, utils
from unittest import TestCase
from utwist import with_reactor

class Test_TestHang(TestCase):
    @with_reactor(timeout=10.0)
    @defer.inlineCallbacks
    def test_hang(self):
        ret1 = yield utils.getProcessValue("echo", args=["'hello'"])
        print ret1

        #ret2 = yield utils.getProcessValue("echo", args=["'hello'"])
        #print ret2

Когда я запускаю python -m unittest test_hang, первый вызов utils.getProcessValue() выполняется без проблем и возвращает 0, как и ожидалось.Однако, если я раскомментирую последние две строки, второй вызов будет зависать на неопределенное время до истечения времени ожидания реактора (10 секунд).Это зависание только происходит внутри моего Ubuntu AMI.Если я запускаю это на своей машине, проблем не возникает.

Может ли быть что-то внутри супервизора EC2, которое может конфликтовать с тем, как витая обрабатывает дочерние процессы?У кого-нибудь есть опыт запуска модульных тестов utwist внутри AWS?Большое спасибо.: -)

...