Bug 376895 - Partition Manager crashes when run without root
Summary: Partition Manager crashes when run without root
Status: RESOLVED DUPLICATE of bug 375394
Alias: None
Product: partitionmanager
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Debian stable Linux
: NOR crash
Target Milestone: ---
Assignee: Andrius Štikonas
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2017-02-24 21:03 UTC by Erin Yuki Schlarb
Modified: 2017-02-25 13:38 UTC (History)
0 users

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 Erin Yuki Schlarb 2017-02-24 21:03:02 UTC
Application: partitionmanager (3.0.1)

Qt Version: 5.7.1
Frameworks Version: 5.31.0
Operating System: Linux 4.9.0-1-amd64 x86_64
Distribution: KDE neon User Edition 5.9

-- Information about the crash:
Basically the title says it all, however I'm fairly certain it fails while probing the available partitions, so here are my exported partition tables for all drives:


##|v1|## partition table of /dev/sda
# on Fr. Feb. 24 21:56:07 2017
type: "gpt"
align: "sector"

# number start end type roles label flags
1;2048;407551;Fat32;primary;"EFI";"boot,esp"
5;407552;62912511;ext4;primary;"Debian";""
6;62913332;2000408575;ext4;primary;"Home";""


##|v1|## partition table of /dev/sdb
# on Fr. Feb. 24 21:53:49 2017
type: "msdos"
align: "sector"

# number start end type roles label flags
1;1;26294271;Fat32;primary;"";"lba"
2;26294272;30488575;ext4;primary;"";""
3;30488576;31115263;Linux-Swap;primary;"";""


##|v1|## partition table of /dev/sdc
# on Fr. Feb. 24 21:56:16 2017
type: "gpt"
align: "sector"

# number start end type roles label flags
1;2048;625141759;ext4;primary;"Backup";""



Also this command-line output is produced during the crash:

org.kde.kdesu: Daemon not safe (not sgid), not using it.

Loaded backend plugin:  "pmlibpartedbackendplugin"
"Using backend-module: pmlibpartedbackendplugin (1)"
"Scanning for devices ..."
"LibParted Exception: Error opening /dev/sda: Permission denied"
"Could not access device „/dev/sda“"
"LibParted Exception: Error opening /dev/sdb: Permission denied"
"Could not access device „/dev/sdb“"
"LibParted Exception: Error opening /dev/sdc: Permission denied"
"Could not access device „/dev/sdc“"
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = partitionmanager path = /usr/bin pid = 29883
KCrash: Arguments: /usr/bin/partitionmanager --dontsu 
KCrash: Attempting to start /usr/lib/x86_64-linux-gnu/libexec/drkonqi from kdeinit
sock_file=/run/user/1000/kdeinit5__0

The crash can be reproduced every time.

-- Backtrace:
Application: KDE-Partitionsverwaltung (partitionmanager), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
[Current thread is 1 (Thread 0x7f062c8c6940 (LWP 29883))]

Thread 9 (Thread 0x7f05fdb80700 (LWP 29978)):
[KCrash Handler]
#6  0x00007f062dc07893 in FS::lvm2_pv::getPVs(QList<Device*> const&) () from /lib/x86_64-linux-gnu/libkpmcore.so.4
#7  0x00007f062dc25761 in DeviceScanner::scan() () from /lib/x86_64-linux-gnu/libkpmcore.so.4
#8  0x00007f062a9efda8 in QThreadPrivate::start (arg=0xa541f0) at thread/qthread_unix.cpp:368
#9  0x00007f0627350424 in start_thread (arg=0x7f05fdb80700) at pthread_create.c:333
#10 0x00007f062a3019bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 8 (Thread 0x7f0603b5d700 (LWP 29890)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f060a102d0b in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#2  0x00007f060a102b67 in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#3  0x00007f0627350424 in start_thread (arg=0x7f0603b5d700) at pthread_create.c:333
#4  0x00007f062a3019bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 7 (Thread 0x7f060435e700 (LWP 29889)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f060a102d0b in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#2  0x00007f060a102b67 in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#3  0x00007f0627350424 in start_thread (arg=0x7f060435e700) at pthread_create.c:333
#4  0x00007f062a3019bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 6 (Thread 0x7f0604b5f700 (LWP 29888)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f060a102d0b in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#2  0x00007f060a102b67 in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#3  0x00007f0627350424 in start_thread (arg=0x7f0604b5f700) at pthread_create.c:333
#4  0x00007f062a3019bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 5 (Thread 0x7f0605360700 (LWP 29887)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f060a102d0b in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#2  0x00007f060a102b67 in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#3  0x00007f0627350424 in start_thread (arg=0x7f0605360700) at pthread_create.c:333
#4  0x00007f062a3019bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 4 (Thread 0x7f0605dd8700 (LWP 29886)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f060a102d0b in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#2  0x00007f060a102b67 in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#3  0x00007f0627350424 in start_thread (arg=0x7f0605dd8700) at pthread_create.c:333
#4  0x00007f062a3019bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 3 (Thread 0x7f0614478700 (LWP 29885)):
#0  0x00007f062a2f854d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f062585b9f6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f062585bb0c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f062ac1406b in QEventDispatcherGlib::processEvents (this=0x7f060c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f062abbd9ca in QEventLoop::exec (this=this@entry=0x7f0614477c50, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#5  0x00007f062a9eb0f3 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:507
#6  0x00007f0628e8e6d5 in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007f062a9efda8 in QThreadPrivate::start (arg=0x7f0628f03d60) at thread/qthread_unix.cpp:368
#8  0x00007f0627350424 in start_thread (arg=0x7f0614478700) at pthread_create.c:333
#9  0x00007f062a3019bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 2 (Thread 0x7f061cdc0700 (LWP 29884)):
#0  0x00007f062a2f854d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f06253c5150 in ?? () from /lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f06253c6ee9 in xcb_wait_for_event () from /lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f061f144b69 in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007f062a9efda8 in QThreadPrivate::start (arg=0x73d0f0) at thread/qthread_unix.cpp:368
#5  0x00007f0627350424 in start_thread (arg=0x7f061cdc0700) at pthread_create.c:333
#6  0x00007f062a3019bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 1 (Thread 0x7f062c8c6940 (LWP 29883)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f06253c53c7 in ?? () from /lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f06253c6c0f in ?? () from /lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f06253c6d22 in xcb_wait_for_reply () from /lib/x86_64-linux-gnu/libxcb.so.1
#4  0x00007f061f143c5a in QXcbConnection::sync() () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#5  0x00007f061f1629e0 in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#6  0x00007f061f162aba in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#7  0x00007f062b09c929 in QBackingStore::beginPaint(QRegion const&) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#8  0x00007f062b4bada9 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007f062b4bb6d5 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007f062b50e90c in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007f062b50f343 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007f062b4aab8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007f062b4b2341 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007f062abbf9e0 in QCoreApplication::notifyInternal2 (receiver=0xd8bdf0, event=0x7ffeb76abb60) at kernel/qcoreapplication.cpp:988
#15 0x00007f062af09aed in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#16 0x00007f062af0a6fd in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#17 0x00007f062aee861b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#18 0x00007f061f17b4c0 in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#19 0x00007f062585b7f7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007f062585ba60 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007f062585bb0c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007f062ac1404f in QEventDispatcherGlib::processEvents (this=0x799370, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#23 0x00007f062abbd9ca in QEventLoop::exec (this=this@entry=0x7ffeb76abe40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#24 0x00007f062abc613c in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261
#25 0x0000000000428661 in main ()

Reported using DrKonqi
Comment 1 Andrius Štikonas 2017-02-24 21:11:14 UTC
Yeah, known issue... Happens if you use LVM...

*** This bug has been marked as a duplicate of bug 375394 ***
Comment 2 Erin Yuki Schlarb 2017-02-25 12:21:08 UTC
No problem! Thanks for the reply!

I can't remember ever setting up an LVM-based partition layout through… Or is it the LVM-integration module/code that causes this?
Comment 3 Andrius Štikonas 2017-02-25 12:26:51 UTC
(In reply to Alexander Schlarb from comment #2)
> No problem! Thanks for the reply!
> 
> I can't remember ever setting up an LVM-based partition layout through… Or
> is it the LVM-integration module/code that causes this?

I'm actually not sure. It's just that backtrace contains FS::lvm2_pv::getPVs, so crash must happen in that function.

That function in kpmcore/src/fs/lvm2_pv.cpp loops over QList<Device*>& devices. I guess it crashes if there are no devices. Feell free to play around yourself if you have time :), should be quite easy to fix, probably one "if". If not I'll look at it at some point later, but these days I'm quite busy... Writing my PhD thesis.
Comment 4 Erin Yuki Schlarb 2017-02-25 13:36:34 UTC
Thanks for the hint, I wouldn't have taken up this little bug squashing exercise otherwise! :-)

As you expected there are only some very minor changes required, they just happen to be in the `libparted` backend, not in the LVM code itself. I like how easy it is to follow the structure of your code btw! Not gonna make me friends with C/C++ but it definitely makes things a lot more pleasant this way!

Anyway, the code for review is here:
https://git.reviewboard.kde.org/r/129968/

Have a nice weekend and thanks for KPM! It has become such an awesome tool to use!
Comment 5 Andrius Štikonas 2017-02-25 13:38:45 UTC
Thanks, a lot! I'll commit it...