Я пытаюсь запустить свои витые юнит-тесты внутри экземпляра 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?Большое спасибо.: -)