Bug 293615

Summary: kcmshell4 system-config-printer-kde hangs long and then crashes
Product: [Unmaintained] system-config-printer-kde Reporter: Oliver Maurhart <dyle71>
Component: generalAssignee: Jonathan Riddell <jr>
Status: RESOLVED UNMAINTAINED    
Severity: crash CC: cfeck, gcala, Nick.Shustov, schoelje, vladrassokhin
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Oliver Maurhart 2012-02-08 09:31:13 UTC
Version:           unspecified (using KDE 4.8.0) 
OS:                Linux

Using KDE4.8. In the systemsettings clicking Printer Config renders the whole systemsettings useless, since then the kcmshell4 hangs, showing me a busy cursor.

Then I tried in the konsole: $ kcmshell4 system-config-printer-kde

Which takes looooooong time, to finally crash:

$ kcmshell4 system-config-printer-kde
Caught non-fatal exception.  Traceback:
File "/usr/share/apps/system-config-printer-kde/system-config-printer-kde.py", line 734, in setDataButtonState
    printable = (self.ppd != None and
AttributeError: 'GUI' object has no attribute 'ppd'
Continuing anyway..
KCrash: Application 'kcmshell4' crashing...
Fatal Error: Accessed global static 'KGlobalPrivate *globalData()' after destruction. Defined at /var/tmp/portage/kde-base/kdelibs-4.8.0-r1/work/kdelibs-4.8.0/kdecore/kernel/kglobal.cpp:127
Unable to start Dr. Konqi


However I can configure my printers well at http://localhost:631 and also printing (like PDF via okular) does work.

Reproducible: Didn't try

Steps to Reproduce:
Installed KDE4.8, open SystemSettings, click on Printer.


Expected Results:  
Show Printer config dialog.
Don't crash.
Comment 1 Giuseppe CalĂ  2012-02-22 12:32:42 UTC
I confirm the bug. Same error here in Chakra Linux 64bit with kde 4.8.0
Comment 2 Schoelje 2012-07-16 09:54:54 UTC
Confirmed on Debian with KDE (4.7)
Workaround:
kdesudo kcmshell4 system-config-printer-kde
or
sudo apt-get purge system-config-printer-kde && sudo apt-get install system-config-printer

inxi -Srxxx
System:    Host lmdekde Kernel 3.2.0-2-amd64 x86_64 (64 bit) Distro Linux Mint Debian Edition
Repos:     Active apt sources in file: /etc/apt/sources.list
           deb http://packages.linuxmint.com/ debian main upstream import
           deb http://debian.linuxmint.com/latest testing main contrib non-free
           deb http://debian.linuxmint.com/latest/security testing/updates main contrib non-free
           deb http://debian.linuxmint.com/latest/multimedia testing main non-free
Comment 3 Schoelje 2012-07-16 21:52:13 UTC
Running strace on kcmshell4 system-config-printer-kde I see an infinite loop:

open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 16
lseek(16, 0, SEEK_CUR)                  = 0
fstat(16, {st_mode=S_IFREG|0644, st_size=1712, ...}) = 0
mmap(NULL, 1712, PROT_READ, MAP_SHARED, 16, 0) = 0x7f39070eb000
lseek(16, 1712, SEEK_SET)               = 1712
fstat(16, {st_mode=S_IFREG|0644, st_size=1712, ...}) = 0
munmap(0x7f39070eb000, 1712)            = 0
close(16)                               = 0
open("/var/run/cups/certs/4885", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/var/run/cups/certs/0", O_RDONLY) = -1 EACCES (Permission denied)
close(15)                               = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 15
setsockopt(15, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(15, SOL_TCP, TCP_NODELAY, [1], 4) = -1 EOPNOTSUPP (Operation not supported)
fcntl(15, F_SETFD, FD_CLOEXEC)          = 0
connect(15, {sa_family=AF_FILE, path="/var/run/cups/cups.sock"}, 26) = 0
close(15)                               = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 15
setsockopt(15, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(15, SOL_TCP, TCP_NODELAY, [1], 4) = -1 EOPNOTSUPP (Operation not supported)
fcntl(15, F_SETFD, FD_CLOEXEC)          = 0
connect(15, {sa_family=AF_FILE, path="/var/run/cups/cups.sock"}, 26) = 0
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
sendto(15, "POST / HTTP/1.1\r\nAuthorization: "..., 160, 0, NULL, 0) = 160
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
sendto(15, "\1\1@\v\0\0\0\1\1G\0\22attributes-charset\0\5"..., 75, 0, NULL, 0) = 75
poll([{fd=15, events=POLLIN}], 1, 1000) = 1 ([{fd=15, revents=POLLIN}])
poll([{fd=15, events=POLLIN}], 1, 60000) = 1 ([{fd=15, revents=POLLIN}])
recvfrom(15, "HTTP/1.1 100 Continue\r\n\r\nHTTP/1."..., 2048, 0, NULL, NULL) = 809
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
time(NULL)                              = 1342475030
Comment 4 Schoelje 2012-07-16 22:05:44 UTC
Thanks to the trace I found out that /var/run/cups/certs/0 is opened.
Policies on this file says that group lpadmin has read permission.
My user did not belong to the lpadmin group.

After adding the user to the lpadmin group, the new printer dialogue pops up.

Can anyone confirm this?
Comment 5 Nikolay 2012-12-20 01:53:54 UTC
Confirmed on Gentoo 3.5.7 KDE 4.9.3.
Comment 6 Christoph Feck 2013-11-23 20:31:44 UTC
"system-config-printer-kde" is no longer maintained and has been replaced with "Print Manager" since KDE 4.10. The new version is a C++ rewrite of the old Python version, and may still lack some features or have some bugs.

If this or another issue still needs to be addressed in KDE 4.10 or newer, please add a comment, or report it for "Print Manager".
Comment 7 Schoelje 2013-11-23 22:36:19 UTC
Thanks for the heads-up.
I confirm that using print-manager with KDE 4.10 is the preferred way.
Comment 8 Oliver Maurhart 2013-11-25 05:58:30 UTC
m2: KDE SystemSettings on 4.11 here - Printer Settings is working smooth.