Bug 262204

Summary: Font installer crashes when installing a system font, causes infinite loop
Product: [Applications] systemsettings Reporter: Bernhard Rosenkraenzer <bero>
Component: kcm_fontinstAssignee: Craig Drummond <craig>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description Bernhard Rosenkraenzer 2011-01-05 16:10:01 UTC
Version:           unspecified (using Devel) 
OS:                Linux

On 4.6.0-rc2, when trying to install an OTF font as a system font, the progress bar dialog comes up and progresses to 50% quickly; it hangs indefinitely at 50%.

Strace -p-ing the spawned /usr/lib64/kde4/libexec/fontinst process shows an infinite loop of

rt_sigaction(SIGSEGV, {SIG_DFL, [SEGV], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, {0x408e80, [SEGV], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, 8) = 0
rt_sigaction(SIGFPE, {SIG_DFL, [FPE], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, {0x408e80, [FPE], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, 8) = 0
rt_sigaction(SIGILL, {SIG_DFL, [ILL], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, {0x408e80, [ILL], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, 8) = 0
rt_sigaction(SIGABRT, {SIG_DFL, [ABRT], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, {0x408e80, [ABRT], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ILL ABRT FPE SEGV], NULL, 8) = 0
rt_sigaction(SIGSEGV, {0x408e80, [SEGV], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, {SIG_DFL, [SEGV], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, 8) = 0
rt_sigaction(SIGFPE, {0x408e80, [FPE], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, {SIG_DFL, [FPE], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, 8) = 0
rt_sigaction(SIGILL, {0x408e80, [ILL], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, {SIG_DFL, [ILL], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, 8) = 0
rt_sigaction(SIGABRT, {0x408e80, [ABRT], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, {SIG_DFL, [ABRT], SA_RESTORER|SA_RESTART, 0x7fadb2189ca0}, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ILL ABRT FPE SEGV], NULL, 8) = 0
rt_sigreturn(0x1)                       = 262
--- SIGSEGV (Segmentation fault) @ 0 (0) ---


Reproducible: Always

Steps to Reproduce:
1. Open systemsettings, Font Installer
2. Click "Add"
3. Select an OTF file
4. When asked, choose to install it as System font


Actual Results:  
Crash as described before

Expected Results:  
Font is installed, progress dialog closed

I'm using Qt 4.7.1, freetype 2.4.4, fontconfig 2.8.0
Comment 1 Craig Drummond 2011-02-10 23:11:25 UTC
Hmm.. Never seen this. Does the PolicyKit authorisation dialog appear?
Comment 2 Craig Drummond 2011-06-27 18:39:48 UTC
Git commit 08fed7c7c2f65d33c7942aa792de447802a8f3b4 by Craig Drummond.
Committed on 27/06/2011 at 20:28.
Pushed by craig into branch 'KDE/4.6'.

Stop singnal handler from being called recursively
BUG:262204

M  +8    -3    kcontrol/kfontinst/dbus/FontInst.cpp     
M  +8    -3    kcontrol/kfontinst/dbus/Helper.cpp     

http://commits.kde.org/kde-workspace/08fed7c7c2f65d33c7942aa792de447802a8f3b4
Comment 3 Craig Drummond 2011-06-27 18:39:49 UTC
Git commit 803c24a290244708b6ccd8fe2a188e0ff4bf15a7 by Craig Drummond.
Committed on 27/06/2011 at 20:30.
Pushed by craig into branch 'KDE/4.7'.

Stop singnal handler from being called recursively
BUG:262204

M  +8    -3    kcontrol/kfontinst/dbus/FontInst.cpp     
M  +8    -3    kcontrol/kfontinst/dbus/Helper.cpp     

http://commits.kde.org/kde-workspace/803c24a290244708b6ccd8fe2a188e0ff4bf15a7
Comment 4 Craig Drummond 2011-06-27 18:39:52 UTC
Git commit 4157065ddbb1b122816113d98693a65e15b25444 by Craig Drummond.
Committed on 27/06/2011 at 20:32.
Pushed by craig into branch 'master'.

Stop singnal handler from being called recursively
BUG:262204

M  +8    -3    kcontrol/kfontinst/dbus/FontInst.cpp     
M  +8    -3    kcontrol/kfontinst/dbus/Helper.cpp     

http://commits.kde.org/kde-workspace/4157065ddbb1b122816113d98693a65e15b25444