Bug 391105 - systemsettings5 crashes mprotect Permission denied
Summary: systemsettings5 crashes mprotect Permission denied
Status: RESOLVED NOT A BUG
Alias: None
Product: systemsettings
Classification: Applications
Component: general (show other bugs)
Version: 5.12.2
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2018-02-26 15:41 UTC by Jason Jorgensen
Modified: 2018-04-05 00:47 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jason Jorgensen 2018-02-26 15:41:17 UTC
Application: systemsettings5 (5.12.2)

Qt Version: 5.10.0
Frameworks Version: 5.43.0
Operating System: Linux 4.13.0-36-generic x86_64
Distribution: KDE neon User Edition 5.12

-- Information about the crash:
- What I was doing when the application crashed:

Running KDE Neon 5.12.2. All updates applied 2018-02-26 09:30AM CST. Fresh reboot. Click K menu -> Settings -> System Settings, crash every time.

Short summary:
Googled around for the error and found https://bbs.archlinux.org/viewtopic.php?id=222486 suggesting
export QML_DISABLE_DISK_CACHE=1
then running
systemsettings5

This works, but you have to know to use that environment variable everytime you want to change settings, and to run systemsettings5 from a command line.

I couldnt find a duplicate bug for this. I apologize in advance if this is a duplicate and I could not find it.

gdb systemsettings5  2>&1 | tee out
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from systemsettings5...Reading symbols from /usr/lib/debug/.build-id/62/a1e36c937b59b988be50716e4461e7fdf52939.debug...done.
done.
(gdb) r
Starting program: /usr/bin/systemsettings5 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe387e700 (LWP 17630)]
[New Thread 0x7fffda55a700 (LWP 17631)]
[New Thread 0x7fffcf264700 (LWP 17634)]
mprotect failed in ExecutableAllocator::makeExecutable: Permission denied
Mapped JIT code for 

    disassembly not available for range 0x7ffff7dfe5c0...0x7ffff7dfe63e
mprotect failed in ExecutableAllocator::makeExecutable: Permission denied
Mapped JIT code for 

...

Thread 1 "systemsettings5" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()

The crash can be reproduced every time.

-- Backtrace:
Application: System Settings (systemsettings5), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f84d9bda900 (LWP 15952))]

Thread 3 (Thread 0x7f84b10fa700 (LWP 15958)):
#0  0x00007f84d56ec74d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f84cf58b38c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f84cf58b49c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f84d601f5cb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f84d5fc664a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f84d5de6554 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f84d3926a35 in QQmlThreadPrivate::run (this=0x203a9f0) at qml/ftw/qqmlthread.cpp:147
#7  0x00007f84d5deb6eb in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f84d1b776ba in start_thread (arg=0x7f84b10fa700) at pthread_create.c:333
#9  0x00007f84d56f841d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f84bc37e700 (LWP 15955)):
#0  0x00007f84d56ec74d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f84cf58b38c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f84cf58b49c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f84d601f5cb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f84d5fc664a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f84d5de6554 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f84d78ff2c5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007f84d5deb6eb in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f84d1b776ba in start_thread (arg=0x7f84bc37e700) at pthread_create.c:333
#9  0x00007f84d56f841d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f84d9bda900 (LWP 15952)):
[KCrash Handler]
#6  0x0000000000000000 in ?? ()
#7  0x00007f84d37c488b in QV4::ExecutionContext::simpleCall (this=<optimized out>, scope=..., callData=callData@entry=0x7f84b00bc280, function=0x2180710) at jsruntime/qv4context.cpp:302
#8  0x00007f84d3906a1f in QQmlJavaScriptExpression::evaluate (this=this@entry=0x218a1f0, callData=0x7f84b00bc280, isUndefined=isUndefined@entry=0x7ffe0a496dbf, scope=...) at qml/qqmljavascriptexpression.cpp:223
#9  0x00007f84d3911228 in QQmlNonbindingBinding::doUpdate (this=0x218a1f0, watcher=..., flags=..., scope=...) at qml/qqmlbinding.cpp:207
#10 0x00007f84d390e25b in QQmlBinding::update (this=0x218a1f0, flags=...) at qml/qqmlbinding.cpp:168
#11 0x00007f84d391b091 in QQmlObjectCreator::finalize (this=0x217de90, interrupt=...) at qml/qqmlobjectcreator.cpp:1225
#12 0x00007f84d3893d8e in QQmlComponentPrivate::complete (enginePriv=0x203a710, state=0x21210b0) at qml/qqmlcomponent.cpp:914
#13 0x00007f84d3893ea7 in QQmlComponentPrivate::completeCreate (this=0x2121010) at qml/qqmlcomponent.cpp:950
#14 0x00007f84d3895be8 in QQmlComponent::createObject (this=<optimized out>, args=0x7ffe0a4972a0) at qml/qqmlcomponent.cpp:1308
#15 0x00007f84d3897114 in QQmlComponent::qt_static_metacall (_o=_o@entry=0x2120470, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=6, _a=_a@entry=0x7ffe0a4972c0) at .moc/moc_qqmlcomponent.cpp:149
#16 0x00007f84d38974c0 in QQmlComponent::qt_metacall (this=0x2120470, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7ffe0a4972c0) at .moc/moc_qqmlcomponent.cpp:213
#17 0x00007f84d38d8bf9 in QQmlObjectOrGadget::metacall (this=this@entry=0x7ffe0a497220, type=type@entry=QMetaObject::InvokeMetaMethod, index=11, argv=argv@entry=0x7ffe0a4972c0) at qml/qqmlpropertycache.cpp:1732
#18 0x00007f84d3857e9a in QV4::QObjectMethod::callInternal (this=<optimized out>, callData=0x7f84b00bc1f8, scope=...) at jsruntime/qv4qobjectwrapper.cpp:1960
#19 0x00007f84d38709de in QV4::Object::call (d=0x7f84b00bc1f8, scope=..., this=<optimized out>) at jsruntime/qv4object_p.h:445
#20 QV4::Runtime::method_callProperty (engine=0x2075b10, nameIndex=<optimized out>, callData=0x7f84b00bc1f8) at jsruntime/qv4runtime.cpp:1104
#21 0x00007f84b00b9e91 in ?? ()
#22 0x0000000000000103 in ?? ()
#23 0x00007ffe0a4976f4 in ?? ()
#24 0xffff8001f5b68b91 in ?? ()
#25 0x00007ffe0a49746f in ?? ()
#26 0x0000000000000000 in ?? ()

Possible duplicates by query: bug 381701.

Reported using DrKonqi
Comment 1 Jason Jorgensen 2018-04-04 23:55:47 UTC
So googling more I saw some people saying some qml stuff is compiled and cached in $HOME/.cache and is executed by different kde components?

I had my $HOME/.cache setup in tmpfs and set as noexec so the compiled bits could not be executed.

I removed the noexec from my .cache and it appears to be ok now. 

I guess its up to you to decide of having compiled executables is a safe thing to store in users .cache directories.
Comment 2 David Edmundson 2018-04-05 00:47:23 UTC
Thanks for investigating and reporting back.