Запись дросселей на 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
Другие вопросы по тегам