Public bug reported: Hello.
I think I found a small bug in the printing process of Xubuntu 20.04.02 LTS. I have a networked laser printer (Xerox Phaser 3250) that requires username/password credentials to print. The device is present in the CUPS page (see the Printers page in http://localhost:631) and uses the IPP protocol set to "ipp://192.168.1.10:631/ipp" URI. It is also visible in the system-config-printer window (XFCE Start button => Settings => Printers) and is set as default printer. The printer username/password are different than my PC username/password. Anyway, I noticed that the OS will sometimes pester me to enter the same credentials each time I try to print something. I recall the printing authorization window does have a "Remember password" checkbox that seemingly does nothing. Now why I am mentioning that this happens only sometimes? It's because I noticed that different programs will use different authorization windows to get printer credentials. For example, Mousepad will try to get credentials by using a CUPS popup dialog (I think). LibreOffice seems to popup its own small password entry window. This bug only applies to the cases where the printing is done via system-config-printer that uses its own authorization dialog. The printing works fine after credentials are entered though. So, after a short debug session I managed to narrow down the problem to this file: /usr/share/system-config-printer/jobviewer.py. I ran the applet.py and scp-dbus-service.py with the --debug option from command line to get some extra debug messages. Printing from Mousepad did not trigger any debug messages, but it did bring up the printing authorization dialog regardless. Like I've previously stated, Mousepad seems to use a different auth dialog, and I've verified (via seahorse) that this dialog works properly because it correctly stores the credentials into the keyring, and, if the Remember password checkbox is ticked, remembers them next time I try to print something. The problem only applies to the auth dialog triggered from jobviewer.py of system- config-printer. I managed to trigger the jobviewer auth dialog by trying to print something in LibreOffice Writer and then hitting Cancel in the small window that pops up. This will then trigger the *proper* jobviewer.py auth window to show up. It also triggers upon boot when there is something queued to be printed. It can also be reliably triggered queueing a print job, killing scp-dbus-service.py and applet.py and re-running them in this order: 1) /usr/share/system-config-printer/scp-dbus-service.py --debug 2) /usr/share/system-config-printer/applet.py --debug Though this jobviewer.py auth dialog will successfully save the printer credentials to the keyring, if the checkbox is ticked (verified with Seahorse), it will fail to read them next time, assume the credentials are missing, and ask the user to enter them. The error appears to happen in jobviewer.py: Line 1056: search_obj = ItemSearch(service, attrs) This line causes the following error to appear in the terminal: GLib-GIO-CRITICAL **: 19:28:31.663: g_dbus_connection_call_internal: assertion 'G_IS_DBUS_CONNECTION (connection)' failed The call fails to fetch any credentials and instead returns an empty result. I've written a short python script (see test.py) that reproduces the issue and triggers the same error. Related libsecret documentation: https://developer.gnome.org/libsecret/0.20/ ProblemType: Bug DistroRelease: Ubuntu 20.04 Package: system-config-printer 1.5.12-0ubuntu1.1 ProcVersionSignature: Ubuntu 5.4.0-66.74-generic 5.4.86 Uname: Linux 5.4.0-66-generic x86_64 NonfreeKernelModules: nvidia_modeset nvidia ApportVersion: 2.20.11-0ubuntu27.16 Architecture: amd64 CasperMD5CheckResult: skip CupsErrorLog: CurrentDesktop: XFCE Date: Fri Mar 5 19:34:54 2021 InstallationDate: Installed on 2020-01-20 (409 days ago) InstallationMedia: Xubuntu 19.10 "Eoan Ermine" - Release amd64 (20191017) Lpstat: device for Phaser-3250: ipp://192.168.1.10:631/ipp Lsusb: Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 046d:c069 Logitech, Inc. M-U0007 [Corded Mouse M500] Bus 001 Device 003: ID 8087:0aaa Intel Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Lsusb-t: /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 10000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M |__ Port 4: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 14: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 14: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M MachineType: Acer Predator PH317-52 PackageArchitecture: all Papersize: a4 PpdFiles: Error: command ['fgrep', '-H', '*NickName', '/etc/cups/ppd/Phaser.ppd', '/etc/cups/ppd/Phaser-3250.ppd'] failed with exit code 2: grep: /etc/cups/ppd/Phaser.ppd: Permission denied grep: /etc/cups/ppd/Phaser-3250.ppd: Permission denied ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-5.4.0-66-generic root=UUID=b1b80b22-4e8a-4fe5-9c0a-7716a49283e2 ro cryptdevice=/dev/disk/by-partlabel/LUKS:cryptroot:allow-discards noresume quiet splash vt.handoff=7 SourcePackage: system-config-printer UpgradeStatus: Upgraded to focal on 2020-07-15 (233 days ago) dmi.bios.date: 03/27/2019 dmi.bios.vendor: Insyde Corp. dmi.bios.version: V1.26 dmi.board.asset.tag: Type2 - Board Serial Number dmi.board.name: Sienna_CFS dmi.board.vendor: CFL dmi.board.version: V1.26 dmi.chassis.type: 10 dmi.chassis.vendor: Acer dmi.chassis.version: V1.26 dmi.modalias: dmi:bvnInsydeCorp.:bvrV1.26:bd03/27/2019:svnAcer:pnPredatorPH317-52:pvrV1.26:rvnCFL:rnSienna_CFS:rvrV1.26:cvnAcer:ct10:cvrV1.26: dmi.product.family: Predator Helios 300 dmi.product.name: Predator PH317-52 dmi.product.sku: 0000000000000000 dmi.product.version: V1.26 dmi.sys.vendor: Acer ** Affects: system-config-printer (Ubuntu) Importance: Undecided Status: New ** Tags: amd64 apport-bug focal ** Attachment added: "Short PoC of the problem" https://bugs.launchpad.net/bugs/1917941/+attachment/5473569/+files/test.py -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to system-config-printer in Ubuntu. https://bugs.launchpad.net/bugs/1917941 Title: System-config-printer keeps asking for network printer credentials Status in system-config-printer package in Ubuntu: New Bug description: Hello. I think I found a small bug in the printing process of Xubuntu 20.04.02 LTS. I have a networked laser printer (Xerox Phaser 3250) that requires username/password credentials to print. The device is present in the CUPS page (see the Printers page in http://localhost:631) and uses the IPP protocol set to "ipp://192.168.1.10:631/ipp" URI. It is also visible in the system- config-printer window (XFCE Start button => Settings => Printers) and is set as default printer. The printer username/password are different than my PC username/password. Anyway, I noticed that the OS will sometimes pester me to enter the same credentials each time I try to print something. I recall the printing authorization window does have a "Remember password" checkbox that seemingly does nothing. Now why I am mentioning that this happens only sometimes? It's because I noticed that different programs will use different authorization windows to get printer credentials. For example, Mousepad will try to get credentials by using a CUPS popup dialog (I think). LibreOffice seems to popup its own small password entry window. This bug only applies to the cases where the printing is done via system-config-printer that uses its own authorization dialog. The printing works fine after credentials are entered though. So, after a short debug session I managed to narrow down the problem to this file: /usr/share/system-config-printer/jobviewer.py. I ran the applet.py and scp-dbus-service.py with the --debug option from command line to get some extra debug messages. Printing from Mousepad did not trigger any debug messages, but it did bring up the printing authorization dialog regardless. Like I've previously stated, Mousepad seems to use a different auth dialog, and I've verified (via seahorse) that this dialog works properly because it correctly stores the credentials into the keyring, and, if the Remember password checkbox is ticked, remembers them next time I try to print something. The problem only applies to the auth dialog triggered from jobviewer.py of system-config-printer. I managed to trigger the jobviewer auth dialog by trying to print something in LibreOffice Writer and then hitting Cancel in the small window that pops up. This will then trigger the *proper* jobviewer.py auth window to show up. It also triggers upon boot when there is something queued to be printed. It can also be reliably triggered queueing a print job, killing scp-dbus-service.py and applet.py and re-running them in this order: 1) /usr/share/system-config-printer/scp-dbus-service.py --debug 2) /usr/share/system-config-printer/applet.py --debug Though this jobviewer.py auth dialog will successfully save the printer credentials to the keyring, if the checkbox is ticked (verified with Seahorse), it will fail to read them next time, assume the credentials are missing, and ask the user to enter them. The error appears to happen in jobviewer.py: Line 1056: search_obj = ItemSearch(service, attrs) This line causes the following error to appear in the terminal: GLib-GIO-CRITICAL **: 19:28:31.663: g_dbus_connection_call_internal: assertion 'G_IS_DBUS_CONNECTION (connection)' failed The call fails to fetch any credentials and instead returns an empty result. I've written a short python script (see test.py) that reproduces the issue and triggers the same error. Related libsecret documentation: https://developer.gnome.org/libsecret/0.20/ ProblemType: Bug DistroRelease: Ubuntu 20.04 Package: system-config-printer 1.5.12-0ubuntu1.1 ProcVersionSignature: Ubuntu 5.4.0-66.74-generic 5.4.86 Uname: Linux 5.4.0-66-generic x86_64 NonfreeKernelModules: nvidia_modeset nvidia ApportVersion: 2.20.11-0ubuntu27.16 Architecture: amd64 CasperMD5CheckResult: skip CupsErrorLog: CurrentDesktop: XFCE Date: Fri Mar 5 19:34:54 2021 InstallationDate: Installed on 2020-01-20 (409 days ago) InstallationMedia: Xubuntu 19.10 "Eoan Ermine" - Release amd64 (20191017) Lpstat: device for Phaser-3250: ipp://192.168.1.10:631/ipp Lsusb: Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 046d:c069 Logitech, Inc. M-U0007 [Corded Mouse M500] Bus 001 Device 003: ID 8087:0aaa Intel Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Lsusb-t: /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 10000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M |__ Port 4: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 14: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 14: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M MachineType: Acer Predator PH317-52 PackageArchitecture: all Papersize: a4 PpdFiles: Error: command ['fgrep', '-H', '*NickName', '/etc/cups/ppd/Phaser.ppd', '/etc/cups/ppd/Phaser-3250.ppd'] failed with exit code 2: grep: /etc/cups/ppd/Phaser.ppd: Permission denied grep: /etc/cups/ppd/Phaser-3250.ppd: Permission denied ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-5.4.0-66-generic root=UUID=b1b80b22-4e8a-4fe5-9c0a-7716a49283e2 ro cryptdevice=/dev/disk/by-partlabel/LUKS:cryptroot:allow-discards noresume quiet splash vt.handoff=7 SourcePackage: system-config-printer UpgradeStatus: Upgraded to focal on 2020-07-15 (233 days ago) dmi.bios.date: 03/27/2019 dmi.bios.vendor: Insyde Corp. dmi.bios.version: V1.26 dmi.board.asset.tag: Type2 - Board Serial Number dmi.board.name: Sienna_CFS dmi.board.vendor: CFL dmi.board.version: V1.26 dmi.chassis.type: 10 dmi.chassis.vendor: Acer dmi.chassis.version: V1.26 dmi.modalias: dmi:bvnInsydeCorp.:bvrV1.26:bd03/27/2019:svnAcer:pnPredatorPH317-52:pvrV1.26:rvnCFL:rnSienna_CFS:rvrV1.26:cvnAcer:ct10:cvrV1.26: dmi.product.family: Predator Helios 300 dmi.product.name: Predator PH317-52 dmi.product.sku: 0000000000000000 dmi.product.version: V1.26 dmi.sys.vendor: Acer To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/system-config-printer/+bug/1917941/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp