Вопрос или проблема
На стабильной версии Debian у меня есть сетевой принтер, подключенный и共享иваемый (Epson hp1536dnf):
socket://ip:9100
С Linux-клиентов я использовал:
ipp://IP/printers/printer1
Логи сервера:
D [01/Sep/2017:18:21:29 +0200] cupsdSetBusyState: newbusy="Не занят", busy="Активные клиенты"
D [01/Sep/2017:18:21:29 +0200] [Client 33] HTTP_STATE_WAITING Закрытие из-за ошибки 32 (Сломанная труба)
D [01/Sep/2017:18:21:29 +0200] [Client 33] Закрытие соединения.
Печать идет на сервер, но на принтере ничего не печатается. Принтер работает корректно с сервера.
ИЗМЕНЕНИЕ: изменив драйвер принтера, я решил проблему.
У меня была такая же проблема, и я использовал драйвер HP, описанный в lpinfo -m
как “требует проприетарный плагин”.
Мне пришлось установить hplip-plugin
из AUR.
Ответ или решение
Ошибка "HTTP_STATE_WAITING Closing for error 32 (Broken pipe)" в CUPS: Причины и Решения
Введение
Ошибка "HTTP_STATE_WAITING Closing for error 32 (Broken pipe)" в системе CUPS (Common UNIX Printing System) на Debian может быть признаком проблемы с соединением между клиентом и сервером печати. В этой статье мы рассмотрим возможные причины возникновения данной ошибки, а также пути ее устранения.
Описание Проблемы
На вашей системе Debian установлен сетевой принтер Epson hp1536dnf, к которому осуществлен доступ через сокет. Клиенты Linux пытаются подключиться к принтеру, используя протокол IPP (Internet Printing Protocol). Однако, несмотря на то что печать из сервера проходит успешно, клиенты не могут завершить процесс печати, что приводит к появлению ошибки "Broken pipe".
Логи сервера
В логах CUPS можно увидеть следующие сообщения:
D [01/Sep/2017:18:21:29 +0200] cupsdSetBusyState: newbusy="Not busy", busy="Active clients"
D [01/Sep/2017:18:21:29 +0200] [Client 33] HTTP_STATE_WAITING Closing for error 32 (Broken pipe)
D [01/Sep/2017:18:21:29 +0200] [Client 33] Closing connection.
Эти сообщения указывают на то, что сервер CUPS переводит клиентское соединение в состояние "Закрыто" из-за проблемы с соединением.
Возможные Причины
- Неправильный драйвер для принтера: Использование неподходящего драйвера может привести к неправильной обработке заданий на печать, что и стало причиной ошибки "Broken pipe".
- Сетевые проблемы: Потеря соединения или временные сбои в сети между клиентами и сервером также могут вызвать подобную ошибку.
- Конфигурация CUPS: Неправильные настройки конфигурации CUPS могут привести к ошибкам при обработке print job’ов.
Решение Проблемы
-
Оптимизация принтерного драйвера: Как упоминалось в вашем обновлении, изменение драйвера на более подходящий, например, HP-драйвер с поддержкой стороннего плагина, может решить проблему. Для этого можно выполнить следующее в терминале:
sudo apt install hplip-plugin
Данный шаг должен загрузить и установить необходимые плагины для корректной работы принтера.
-
Проверка сетевых соединений: Убедитесь в том, что между клиентами и сервером нет временных разрывов в соединении. Используйте команды
ping
иtraceroute
для проверки сетевого состояния. -
Настройки конфигурации CUPS: Проверьте файл конфигурации CUPS (обычно находится по пути
/etc/cups/cupsd.conf
) на предмет возможных ошибок. Убедитесь, что параметры, такие какAllow
,Require
, иListen
, правильно настроены. -
Обновление ПО: Убедитесь, что ваше ПО (особенно CUPS и Driver’ы) обновлено до последней стабильной версии, так как это может решить многие известные проблемы.
-
Изучение логов: Продолжайте мониторить логи CUPS для выявления дополнительных ошибок или предупреждений, которые могут присутствовать в процессе работы.
Заключение
Ошибка "HTTP_STATE_WAITING Closing for error 32 (Broken pipe)" в CUPS может вызвать значительные неудобства при работе с сетевыми принтерами. Применение корректного драйвера, проверка сетевых соединений и настройка конфигурации CUPS могут помочь в ее устранении. Следуя предложенным рекомендациям, вы сможете обеспечить стабильную работу вашей системы печати. Не забывайте также о регулярных обновлениях и проверке логов для минимизации рисков возникновения подобных проблем в будущем.