Запись дросселей на BlockingIOError: запись не может быть завершена без блокировки
Я недавно портировал свои скрипты с 2.x на 3.x. Во время производственных циклов автоматизации (rundeck) мы видим ошибки, вызванные тем, что регистратор не обрабатывает блокирующий ввод / вывод. Любые идеи, как решить, было бы здорово.
- Ubuntu 18.04.1 LTS
- Python 3.6.7
--- Logging error ---
Traceback (most recent call last):
File "/usr/lib/python3.6/logging/__init__.py", line 998, in emit
self.flush()
File "/usr/lib/python3.6/logging/__init__.py", line 978, in flush
self.stream.flush()
BlockingIOError: [Errno 11] write could not complete without blocking
0 ответов
Я получал ту же ошибку на сборках CI. Похоже, это была проблема с выходным потоком. После уменьшения вывода журнала ошибки исчезли.
Недавно я столкнулся с ошибкой при создании своего Docker
изображение с использованием docker-compose
в CI, и я нашел одно обходное решение, возможно, это поможет кому-то:
Ошибка:
BlockingIOError: [Errno 11] write could not complete without blocking
если вы не хотите терять журналы, вы можете отправить все журналы в файл и сохранить его как артефакт, протестированный на Bamboo
а также Jenkins
:
docker-compose build --no-cache my_image > myfile.txt
если вам не нужны журналы:
docker-compose build --no-cache my_image > /dev/null