Bug 389147

Summary: Edit of places entries not possible - later on segfault in PlacesItemModel
Product: [Applications] dolphin Reporter: Roman Gilg <subdiff>
Component: panels: placesAssignee: Renato Oliveira <renatooliveira.cin>
Status: RESOLVED FIXED    
Severity: critical CC: bugseforuns, eugene.shalygin+bugzilla.kde, kde, nate, renatooliveira.cin
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In:

Description Roman Gilg 2018-01-18 10:41:44 UTC
Try to edit the name or path of an entry in Places sidebar. Does not change on pressing Ok.

master branch - Neon dev unstable
Comment 1 Nate Graham 2018-01-18 15:23:08 UTC
Could not confirm as of git master yesterday. Can confirm after a pull and build, which includes all the 17.12 work that was just merged to master. Probably fallout from some of Renato's work.
Comment 2 Roman Gilg 2018-01-19 09:57:44 UTC
The situation just got worse. After multiple edit attempts I gave up and later rebooted. Now Dolphin segfaults on launch. Backtrace shows that it is related to the PlacesItemModel:

#0  __memmove_avx_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-avx-unaligned.S:357
#1  0x00007ffff7b6ed5e in memmove (__len=<optimized out>, __src=0xc5a308, __dest=0xc5a310) at /usr/include/x86_64-linux-gnu/bits/string3.h:59
#2  QVector<QPersistentModelIndex>::insert (t=..., n=1, before=<optimized out>, this=0xc57498) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h:726
#3  QVector<QPersistentModelIndex>::insert (t=..., i=16, this=0xc57498) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h:435
#4  PlacesItemModel::insertSortedItem (this=this@entry=0xc57440, item=item@entry=0xc5b0f0) at /workspace/build/src/panels/places/placesitemmodel.cpp:177
#5  0x00007ffff7b6eed8 in PlacesItemModel::insertSortedItem (item=0xc5b0f0, this=0xc57440) at /workspace/build/src/panels/places/placesitemmodel.cpp:413
#6  PlacesItemModel::addItemFromSourceModel (this=0xc57440, index=...) at /workspace/build/src/panels/places/placesitemmodel.cpp:414
#7  0x00007ffff7b706cb in PlacesItemModel::loadBookmarks (this=this@entry=0xc57440) at /workspace/build/src/panels/places/placesitemmodel.cpp:629
#8  0x00007ffff7b71926 in PlacesItemModel::PlacesItemModel (this=0xc57440, parent=<optimized out>) at /workspace/build/src/panels/places/placesitemmodel.cpp:79
#9  0x00007ffff7b664a0 in PlacesPanel::showEvent (this=0x85c5f0, event=0x7fffffffd770) at /workspace/build/src/panels/places/placespanel.cpp:116
#10 0x00007ffff280eb08 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff27cfb9c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff27d75a7 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff17e6df8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007ffff280b8c3 in QWidgetPrivate::show_helper() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff280b727 in QWidgetPrivate::showChildren(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff280b7bf in QWidgetPrivate::show_helper() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff280b727 in QWidgetPrivate::showChildren(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff280b7bf in QWidgetPrivate::show_helper() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007ffff280e62d in QWidget::setVisible(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007ffff7b43ae3 in kdemain (argc=1, argv=<optimized out>) at /workspace/build/src/main.cpp:152
#21 0x00007ffff7756830 in __libc_start_main (main=0x4006b0 <main(int, char**)>, argc=1, argv=0x7fffffffdc68, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdc58)
    at ../csu/libc-start.c:291
#22 0x00000000004006e9 in _start ()
Comment 3 Kai Uwe Broulik 2018-01-19 10:18:05 UTC
Editing in file dialog (using KFilePlacesModel) works fine and is reflected in Dolphin immediately. Editing in Dolphin briefly shows the new value but is then overridden by the old.
Comment 4 Roman Gilg 2018-01-19 10:42:21 UTC
The first bad commit for the seg fault is:
1a6b3c0a2baba955259d6083c0a3f25dfb44a682

The first bad commit for the original problem (edit of places entries is not possible) does not seem to be introduced by Renato's patch though. At least on its parent commit I could observe similar problems on renaming.

I'll leave the segfault in here anyway, because it both from all we know involves the PlacesItemModel in some way.
Comment 5 Luca Beltrame 2018-01-19 12:32:13 UTC
Git commit d55b0875ffac78ba99ca63f774be17273d396137 by Luca Beltrame.
Committed on 19/01/2018 at 12:27.
Pushed by lbeltrame into branch 'master'.

Revert "Ignore baloo urls created from new KIO model"

This reverts commit 9d3a019445d7a7fdf3177bca9eeef4c44599e706.

Causes breakage in Dolphin in master. The proper fix is in D9333.

M  +0    -16   src/panels/places/placesitemmodel.cpp

https://commits.kde.org/dolphin/d55b0875ffac78ba99ca63f774be17273d396137
Comment 6 Kai Uwe Broulik 2018-01-22 09:05:00 UTC
*** Bug 389180 has been marked as a duplicate of this bug. ***
Comment 7 Nate Graham 2018-01-26 15:23:51 UTC
author	Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
committer	Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
commit	a8a3fa51a0649ffc43b0d740c268e39a6dd6672b (patch)
tree	f89bb52f464dd19733cc546e18a4551c9eb9fa1d
parent	3bf68fd71492f02bffb6cf040e9471c5e997180e (diff)

Fix place item edit after creationHEADmaster
Summary:
Make sure that the place can be edited after the creation.

Depends on D9333

BUG: 389147

Test Plan:
Create an item in dolphin places panel, make sure that you
can rename it

Reviewers: #dolphin, ngraham

Reviewed By: ngraham

Subscribers: michaelh, elvisangelaccio, lbeltrame, ngraham, #dolphin

Differential Revision: https://phabricator.kde.org/D9985