Bug 45151

Summary: Не работает печать из сеанса X2GO
Product: Sisyphus Reporter: Elena Mishina <lepata>
Component: cups-x2goAssignee: Elena Mishina <lepata>
Status: CLOSED WORKSFORME QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: cas, jqt4, lepata, rodyginao, sysoevas, tatyana
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
печать в x2go
none
Видео ошибки
none
файл /etc/cups/cups-x2go.conf
none
печать в x2go new
none
файл с клиента
none
логи с сервера
none
логи с сервера
none
journalctl server
none
journalctl workstation
none
Альт Сервер в качестве сервера none

Description Elena Mishina 2023-02-07 14:59:26 MSK
При попытке отправить документ на печать, диалога на клиенте не возникает, документ в очереди на печати всё время в состоянии "Приостановлено" в логах (на сервере) ошибка:

фев 07 14:32:38 host-15 /usr/lib/cups/backend/cups-x2go[454691]: Converting printjob with command: /usr/bin/gs -q -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=- -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -dDoNumCopies -c .setpdfwrite -f /var/spool/cups/tmp/10-user-cupsjob454691dzMOPluptLncUr6H
фев 07 14:32:38 host-15 /usr/lib/cups/backend/cups-x2go[454691]: ERROR: ps2pdf conversion program failed to convert /var/spool/cups/tmp/10-user-cupsjob454691dzMOPluptLncUr6H: failed with exit code 1


Ошибка связана с параметром "-c .setpdfwrite" в команде /usr/bin/gs.
Для cups-PDF была похожая ошибка: https://bugzilla.altlinux.org/41587

Замена "-c .setpdfwrite" на "-c 30000000 setvmthreshold" помогает, в этом случае появляется запрос на печать на клиенте
Comment 1 Elena Mishina 2023-02-07 18:23:18 MSK
См. также https://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=1551
Comment 2 Repository Robot 2023-02-19 22:30:52 MSK
cups-x2go-3.0.1.4-alt1.1 -> sisyphus:

 Sun Feb 19 2023 Elena Mishina <lepata@altlinux> 3.0.1.4-alt1.1
 - Fix GhostScript command line (closes: #45151).
Comment 3 Aleksandr Sysoev 2023-03-07 13:02:57 MSK
На сервере обновленном до Sysiphus ошибка воспоизводится. 
Версия пакета: cups-x2go-3.0.1.4-alt1.1

При отправке на клиенте на печать вывод journalctl -f на сервере:

x2go: Print job received from cups -> 12 test Mousepad задание №1 1 PageSize=A4 number-up=1 Resolution=300dpi noCollate job-uuid=urn:uuid:6aa8d9a8-5533-3471-572a-73d9b125499d job-originating-host-name=localhost date-time-at-creation= date-time-at-processing= time-at-creation=1678179289 time-at-processing=1678179386@

При отправке на клиенте на печать вывод /var/log/cups/error_log:

E [07/Mar/2023:11:49:10 +0300] [Job 5] Files have gone away.
E [07/Mar/2023:11:49:10 +0300] Unable to open listen socket for address [v1.::1]:631 - Address already in use.
E [07/Mar/2023:11:49:10 +0300] Unable to open listen socket for address 127.0.0.1:631 - Address already in use.
W [07/Mar/2023:11:51:37 +0300] [Job 11] Backend returned status 2 (authentication required)

Вывод /var/log/cups/access_log:
localhost - - [07/Mar/2023:12:01:47 +0300] "POST /printers/Generic-CUPS-X2Go-Printer HTTP/1.1" 200 3499 Print-Job successful-ok
localhost - - [07/Mar/2023:12:01:48 +0300] "POST / HTTP/1.1" 200 362 Create-Printer-Subscriptions successful-ok

На сервере в очереди печати висит задание со статусом "Приостановлено до аутентификации". Если нажать ПКМ по заданию, нажать аутенцифицировать и ввести пароль, то ничего не меняется.
Comment 4 Elena Mishina 2023-03-07 13:32:13 MSK
1) Вам не кажется, что ошибка у вас совсем другая? Т.е. данная ошибка не воспроизводится??
2) Вы точно не путаете понятия клиент/сервер и настраиваете по https://www.altlinux.org/X2Go#Печать ??

Только что проверила, при установке cups-x2go-3.0.1.4-alt1.1 из Сизифа, ошибка не воспроизводится, на клиенте появляется окно печати, документ распечатывается успешно
Comment 5 Aleksandr Sysoev 2023-03-07 13:42:44 MSK
(Ответ для Elena Mishina на комментарий #4)
> 1) Вам не кажется, что ошибка у вас совсем другая? Т.е. данная ошибка не
> воспроизводится??
> 2) Вы точно не путаете понятия клиент/сервер и настраиваете по
> https://www.altlinux.org/X2Go#Печать ??
> 
> Только что проверила, при установке cups-x2go-3.0.1.4-alt1.1 из Сизифа,
> ошибка не воспроизводится, на клиенте появляется окно печати, документ
> распечатывается успешно

1) Окно выбора локального принтера на клиенте не появляется
2) Настраиваю согласно  https://www.altlinux.org/X2Go#Печать.

В качестве клиента машина с установленной p10-kworkstation-10.1-x86-64
В качестве сервера машина с установленной p10-server-10.1-x86-64
В данном случае наличие брокера роли не играет. Что с брокером, что без,окна не появляется. 

На сервере добавлен принтер «Generic CUPS-X2Go-printer».
На клиенте в x2goclient покдлючаюсь к сессии сервера, при печати выбираю принтер  Generic CUPS-X2Go-printer и ничего не происходит, окно выбора не появляется. На сервере при этом в очереди печати появляется задание со статусом "Приостановлено до аутентификации". Логи сервера выложил в прошлом своем комментарии. 

Возможно Вы выполняете какие-то дополнительные действия, которые не указаны в инструкции на Wiki?
Comment 6 Elena Mishina 2023-03-07 13:50:58 MSK
Created attachment 12704 [details]
печать в x2go

никаких доп.действий см. видео
Comment 7 Elena Mishina 2023-03-07 14:43:50 MSK
Похоже, что у вас проблема с локальным принтером. Установите на клиенте xpdf, а в окне «Параметры», клиента X2Go выберите не «Печать», а «Просмотр PDF» (открыть командой просмотра xpdf).
C cups-x2go-3.0.1.4-alt1.1, установленном на сервере, на клиенте будет открываться окно xpdf, а с cups-x2go-3.0.1.4-alt1 не будет (с ошибкой  ERROR: ps2pdf conversion program failed)
Comment 8 Aleksandr Sysoev 2023-03-07 16:49:58 MSK
Created attachment 12707 [details]
Видео ошибки
Comment 9 Elena Mishina 2023-03-07 16:54:30 MSK
(Ответ для Aleksandr Sysoev на комментарий #8)
> Создано вложение 12707 [details] [подробности]
> Видео ошибки

В видео ничего нет про настройку печати на клиенте.
Печать с клиента напрямую возможна? А если попробовать не принтер (не «Печать»), а  «Просмотр PDF»?
Comment 10 Aleksandr Sysoev 2023-03-09 09:22:23 MSK
(Ответ для Elena Mishina на комментарий #9)
> (Ответ для Aleksandr Sysoev на комментарий #8)
> > Создано вложение 12707 [details] [подробности]
> > Видео ошибки
> 
> В видео ничего нет про настройку печати на клиенте.
> Печать с клиента напрямую возможна? А если попробовать не принтер (не
> «Печать»), а  «Просмотр PDF»?

Печать напрямую возможна. При выборе просмотр PDF поведение аналогично.
Настройки на клиенте соответствуют вики. Приложите, пожалуйста, ваш файл /etc/cups/cups-x2go.conf.
Comment 11 Elena Mishina 2023-03-09 09:42:10 MSK
Created attachment 12708 [details]
файл /etc/cups/cups-x2go.conf

Боюсь файл /etc/cups/cups-x2go.conf ничем не поможет, т.к. все строки там закомментированы

Кстати, у меня на клиенте в /var/log/cups/error_log также есть ошибка
E [09/Mar/2023:08:23:02 +0200] Unable to open listen socket for address [v1.::1]:631 - Address already in use.

но это не мешает печати.
Comment 12 Aleksandr Sysoev 2023-03-09 10:32:56 MSK
(Ответ для Elena Mishina на комментарий #11)
> Создано вложение 12708 [details] [подробности]
> файл /etc/cups/cups-x2go.conf
> 
> Боюсь файл /etc/cups/cups-x2go.conf ничем не поможет, т.к. все строки там
> закомментированы
> 
> Кстати, у меня на клиенте в /var/log/cups/error_log также есть ошибка
> E [09/Mar/2023:08:23:02 +0200] Unable to open listen socket for address
> [v1.::1]:631 - Address already in use.
> 
> но это не мешает печати.

Мою голову окончательно запутал commit меняющий строчку так-же в файле /etc/cups/cups-x2go.conf. По факту единственное значение имеет строка тут /usr/lib/cups/backend/cups-x2go. В принципе, файл /etc/cups/cups-x2go.conf можно оставить пустым, печать все равно будет работать. Worksforme.
Comment 13 Elena Mishina 2023-03-09 10:34:38 MSK
(Ответ для Aleksandr Sysoev на комментарий #12)

> Мою голову окончательно запутал commit меняющий строчку так-же в файле
> /etc/cups/cups-x2go.conf. По факту единственное значение имеет строка тут
> /usr/lib/cups/backend/cups-x2go. В принципе, файл /etc/cups/cups-x2go.conf
> можно оставить пустым, печать все равно будет работать. Worksforme.
Так в итоге печать у вас заработала? В чём была проблема?
Comment 14 Repository Robot 2023-03-11 14:02:17 MSK
cups-x2go-3.0.1.4-alt1.1 -> p10:

 Sun Feb 19 2023 Elena Mishina <lepata@altlinux> 3.0.1.4-alt1.1
 - Fix GhostScript command line (closes: #45151).
Comment 15 Tatyana Gagina 2023-06-09 13:50:48 MSK
Не удалось вывести печать на принтер (документ не распечатан). 

Согласно инструкции https://www.altlinux.org/X2Go#Печать описано (обратить внимание именно на шаги 2-3):
шаг 2. При печати документа в сессии X2Go выбрать принтер «Generic CUPS-X2Go-printer» и нажать кнопку «Печать»;
шаг 3. После этого на клиенте должно открыться окно выбора локального принтера для печати.

Однако окно так и не открылось на клиенте.
Не зависит от того, выполнялась ли настройка с брокером или без.
В файле /etc/cups/cups-x2go.conf стоит значение "-c 30000000 setvmthreshold". Файл /etc/cups/cups-x2go.conf  идентичен тому, что прикреплён во вложении.

Причём, при отправке задания напрямую на локальный принтер, печать выполняется. 
При выборе «Generic CUPS-X2Go-printer» и затем печать - не открывается окно для выбора конкретного принтера. Хотя предварительно в параметрах (x2goclient) был задан принтер по умолчанию для печати. 

Были настроены сервер, брокер и клиент по инструкции https://www.altlinux.org/X2Go#Использование_x2gobroker.

Для информации: в качестве клиента Workstation K x86-64
В качестве сервера машина Server x86-64
В качестве брокера  Education XFCE x86-64

На сервере:
был запущен system-config-printer и добавлен принтер «Generic CUPS-X2Go-printer», также подготовлен текстовый файл для печати.

На клиенте:
запущен $ x2goclient
В окне «Параметры» выбран принтер по умолчанию для печати. Установлен параметр «Открывать этот диалог перед печатью». Здесь использовались разные принтеры (по сети и по USB).

На клиенте:
выполнено подключение к брокеру сессий, выбран сервер.
$ x2goclient --broker-url=ssh://test@[broker_ip_address]:22/usr/bin/x2gobroker

Выполнены шаги по настройке принтера по инструкции https://www.altlinux.org/X2Go#Печать.

При просмотре очереди печати "Задание выполнено", однако печать на оборудовании не выполнена. Следует отметить, что ошибки с аутентификацией нет, ранее было отмечено, что печать зависала со статусом "Приостановлено до аутентификации".

В логах сервера: 
июн 09 12:25:20 x2go-ts123.plex.test kernel: usb 1-4: USB disconnect, device number 3
июн 09 12:25:20 x2go-ts123.plex.test kernel: usblp0: removed
июн 09 12:25:20 x2go-ts123.plex.test udev-configure-printer[18046]: remove /devices/pci0000:00/0000:00:1a.0/usb1/1-4/1-4:1.0

Итог:
на клиенте в x2goclient подключалась к сессии сервера, при печати выбирала принтер  "Generic CUPS-X2Go-printer" и ничего не произошло, окно выбора не появляется. На сервере при этом в очереди печати появляется задание со статусом "Выполнено", но документ так и не распечатан.

Версия на p10 и Sisyphus: cups-x2go-3.0.1.4-alt1
Comment 16 Elena Mishina 2023-06-09 15:11:43 MSK
(Ответ для Tatyana Gagina на комментарий #15)
> Не удалось вывести печать на принтер (документ не распечатан). 
> 

> Не зависит от того, выполнялась ли настройка с брокером или без.
> В файле /etc/cups/cups-x2go.conf стоит значение "-c 30000000
> setvmthreshold". Файл /etc/cups/cups-x2go.conf  идентичен тому, что
> прикреплён во вложении.
Файл /etc/cups/cups-x2go.conf вообще не надо трогать (там все строки закомментированы)
> 
> Причём, при отправке задания напрямую на локальный принтер, печать
> выполняется. 
При отправке откуда?

> При выборе «Generic CUPS-X2Go-printer» и затем печать - не открывается окно
> для выбора конкретного принтера. Хотя предварительно в параметрах
> (x2goclient) был задан принтер по умолчанию для печати. 
Главное чтобы в параметрах x2goclient был отмечен пункт "Показывать этот диалог перед печатью". Принтер можно выбрать и потом (можно, например, сначала указать Просмотр PDF → Сохранить на диск)

> 
> В логах сервера: 
> июн 09 12:25:20 x2go-ts123.plex.test kernel: usb 1-4: USB disconnect, device
> number 3
> июн 09 12:25:20 x2go-ts123.plex.test kernel: usblp0: removed
> июн 09 12:25:20 x2go-ts123.plex.test udev-configure-printer[18046]: remove
> /devices/pci0000:00/0000:00:1a.0/usb1/1-4/1-4:1.0
> 
В логах сервера не должно быть таких ошибок (там же нет подключённого по usb принтера). В логах сервера должны быть строки от cups-x2go, например:

июн 09 14:07:35 host-15 /usr/lib/cups/backend/cups-x2go[25561]: Print job received from cups -> 7 user 1.txt 1 media=A4 sides=one-sided number-up=1 number-up-layout=lrtb job-billing= job-uuid=urn:uuid:c2274c3c-3894-3757-70a1-0de07bb79ec0 job-originating-host-name=localhost date-time-at-creation= date-time-at-processing= time-at-creation=1686312455 time-at-processing=1686312455 document-name-supplied=0637764891f33 PageSize=A4
июн 09 14:07:36 host-15 /usr/bin/x2goprint[25578]: x2goprint is processing /var/spool/x2goprint/user-50-1686312418_stDKDE_dp24_7-user-cupsjob255616fbfpniC9hguo3M6.pdf with print job title ,,1.txt''

Во вложении видео - всё работает и с брокером и без.
Все настройки по вики:
*в качестве клиента Simply Linux (Sisyphus)
*В качестве сервера машина Workstation K x86-64 (p10)
*В качестве брокера  Education XFCE x86-64(p10)
Comment 17 Elena Mishina 2023-06-09 15:12:22 MSK
Created attachment 13449 [details]
печать в x2go new
Comment 18 Tatyana Gagina 2023-06-09 18:32:27 MSK
"Причём, при отправке задания напрямую на локальный принтер, печать выполняется."
Имеется ввиду при отправке на клиенте.

Пункт "Показывать этот диалог перед печатью" был предварительно отмечен.

Опечатка, логи были указаны с клиента (Workstation K x86-64).
Comment 19 Elena Mishina 2023-06-09 23:34:43 MSK
(Ответ для Tatyana Gagina на комментарий #18)
> 
> Опечатка, логи были указаны с клиента (Workstation K x86-64).

Нужны:
1) Логи с сервера при отправке на печать
2) Содержимое файла /home/user/.x2goclient/printing на клиенте

+ попробовать в качестве сервера не Альт Сервер, т.к. кажется, что проблема именно в нём
Comment 20 Tatyana Gagina 2023-06-15 17:39:31 MSK
(Ответ для Elena Mishina на комментарий #19)
> (Ответ для Tatyana Gagina на комментарий #18)
> > 
> > Опечатка, логи были указаны с клиента (Workstation K x86-64).
> 
> Нужны:
> 1) Логи с сервера при отправке на печать
> 2) Содержимое файла /home/user/.x2goclient/printing на клиенте
> 
> + попробовать в качестве сервера не Альт Сервер, т.к. кажется, что проблема
> именно в нём

Немного позднее приложу логи.
Comment 21 Tatyana Gagina 2023-09-29 16:04:10 MSK
(Ответ для Elena Mishina на комментарий #19)
> Нужны:
> 1) Логи с сервера при отправке на печать
> 2) Содержимое файла /home/user/.x2goclient/printing на клиенте
> 
> + попробовать в качестве сервера не Альт Сервер, т.к. кажется, что проблема
> именно в нём

Была выполнена повторная проверка. Печать выполнилась успешно (в PDF файл, без подключённого по usb принтера.

Прикладываю логи c сервера /var/log/cups/access_log и файл с клиента /home/user/.x2goclient/printing

Машины:
*в качестве клиента  Education XFCE x86-64 (Sisyphus)
*В качестве сервера машина Workstation K x86-64 (p10)
*В качестве брокера Server x86-64(p10)
Comment 22 Tatyana Gagina 2023-09-29 16:04:52 MSK
Created attachment 14614 [details]
файл с клиента
Comment 23 Tatyana Gagina 2023-09-29 16:05:41 MSK
Created attachment 14615 [details]
логи с сервера
Comment 24 Elena Mishina 2023-09-29 16:11:33 MSK
(Ответ для Tatyana Gagina на комментарий #21)
> 
> Была выполнена повторная проверка. Печать выполнилась успешно (в PDF файл,
> без подключённого по usb принтера.
> 
Т.е. окно выбора появляется и ошибку можно закрыть?
Comment 25 Tatyana Gagina 2023-09-29 18:11:12 MSK
Created attachment 14616 [details]
логи с сервера
Comment 26 Tatyana Gagina 2023-09-29 18:12:26 MSK
(Ответ для Elena Mishina на комментарий #24)
> (Ответ для Tatyana Gagina на комментарий #21)
> > 
> > Была выполнена повторная проверка. Печать выполнилась успешно (в PDF файл,
> > без подключённого по usb принтера.
> > 
> Т.е. окно выбора появляется и ошибку можно закрыть?

Да, окно выбора появляется. Ошибку можно закрыть.
Comment 27 Алексей Родыгин 2024-02-08 13:01:54 MSK
Created attachment 15501 [details]
journalctl server

Ошибка воспроизводится при использовании в роли сервера Server x86-64.
Конфигурация:
Брокер: Server x86-64
Сервера: 1) Server x86-64
         2) Workstation x86-64
Клиент: Workstation K x86-64

Настройка производилась по https://www.altlinux.org/X2Go#Печать

При аналогичной настройке ошибка воспроизводится на Server, но при этом всё нормально работает на Workstation и при отправке на клиенте файла на печать появляется окно настройки печати и при сохранении файл появляется на рабочем столе клиента (при использовании cups-pdf в роли принтера).

access_log и error_log на обоих серверах идентичны, однако немного отличается вывод journalctl -f (на workstation появляется больше строк типа Session opened/closed, добавил во вложения).
Comment 28 Алексей Родыгин 2024-02-08 13:02:41 MSK
Created attachment 15502 [details]
journalctl workstation
Comment 29 Алексей Родыгин 2024-02-08 13:04:01 MSK
Ошибка воспроизводится.
Comment 30 Elena Mishina 2024-02-12 16:12:35 MSK
(Ответ для Алексей Родыгин на комментарий #27)
> 
> Ошибка воспроизводится при использовании в роли сервера Server x86-64.
> Конфигурация:
> Брокер: Server x86-64
> Сервера: 1) Server x86-64
>          2) Workstation x86-64
> Клиент: Workstation K x86-64
> 
Попробуйте добавить пользователя на сервере, под которым происходит подключение, в группу fuse.
Comment 31 Elena Mishina 2024-02-12 16:15:04 MSK
Created attachment 15530 [details]
Альт Сервер в качестве сервера

После добавления пользователя в группу fuse, на клиенте появляется окно выбора локального принтера (см.вложение)
Comment 32 Алексей Родыгин 2024-02-13 15:14:40 MSK
(Ответ для Elena Mishina на комментарий #30)

> Попробуйте добавить пользователя на сервере, под которым происходит
> подключение, в группу fuse.

При добавлении пользователя на сервере в группу fuse всё работает корректно.