By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.
Bug 1764 - [Regression] Konqueror error dialog and kcrash when accessing sidebar System button
Summary: [Regression] Konqueror error dialog and kcrash when accessing sidebar System ...
Status: REOPENED
Alias: None
Product: TDE
Classification: Unclassified
Component: tdebase (show other bugs)
Version: R14.0.x [Trinity]
Hardware: Other Linux
: P5 normal
Assignee: Timothy Pearson
URL:
: 1663 (view as bug list)
Depends on:
Blocks: 2968
  Show dependency treegraph
 
Reported: 2013-12-10 16:45 CST by Darrell
Modified: 2018-08-30 02:52 CDT (History)
5 users (show)

See Also:
Compiler Version:
TDE Version String:
Application Version:
Application Name:


Attachments
Screen capture of error dialog (logged in as non-root user) (8.93 KB, image/png)
2013-12-10 16:45 CST, Darrell
Details
Screen capture of error dialog (logged in as root user) (8.63 KB, image/png)
2013-12-10 16:46 CST, Darrell
Details
Konqueror kcrash backtrace (64.30 KB, application/octet-stream)
2013-12-10 16:46 CST, Darrell
Details
Image of system button in konqueror nav bar (44.97 KB, image/png)
2013-12-18 09:03 CST, Darrell
Details
Image showing double listing (30.02 KB, image/png)
2013-12-19 08:55 CST, Darrell
Details
snapshot (63.12 KB, image/png)
2014-01-08 07:44 CST, Michele Calgaro
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Darrell 2013-12-10 16:45:16 CST
Created attachment 1716 [details]
Screen capture of error dialog (logged in as non-root user)

Using the latest R14.

In the konqueror sidebar, when I select the System button, an error dialog appears and konqueror crashes.

Typically the kcrash does not happen on the first attempt at selecting the System button. After receiving the error dialog, I close konqueror, reopen, and again select the System button. Then kcrash appears with the backtrace.

As noted in the error dialog, my user accounts are stored in /home/users/$USER rather than the traditional $HOME/$USER. That difference likely is irrelevant because I see the same dialog when logged in as root.

The dialog and crash occur with a fresh R14 profile.

The crash does not occur in 3.5.13.2.

The bug seems related to $HOME because when konqueror does not crash, the sidebar System pane is missing the Home Folder option.

I'm attaching dialog images and kcrash backtrace.
Comment 1 Darrell 2013-12-10 16:46:26 CST
Created attachment 1717 [details]
Screen capture of error dialog (logged in as root user)
Comment 2 Darrell 2013-12-10 16:46:53 CST
Created attachment 1718 [details]
Konqueror kcrash backtrace
Comment 3 Darrell 2013-12-11 11:42:19 CST
When I type system:/ in the konqueror location bar, the Home Folder is listed and there is no crash.

The error dialog is from tdebase/konqueror/sidebar/trees/dirtree_module/dirtree_module.cpp:422.

Here is what I see from kdDebug(7004):

tdeio (KDirListerCache): +KDirListerCache
tdeio (KDirListerCache): [bool KDirListerCache::listDir(KDirLister*, const KURL&, bool, bool)] 0x94c6bc8 url=file:///root keep=false reload=false
tdeio (KDirListerCache): [void KDirListerCache::stop(KDirLister*)] lister: 0x94c6bc8
tdeio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*)] 0x94c6bc8
tdeio (KDirListerCache): listDir: Entry not in cache or reloaded: file:///root
tdeio (KDirListerCache): [bool KDirListerCache::listDir(KDirLister*, const KURL&, bool, bool)] 0x958c4a8 url=file:/// keep=true reload=false
tdeio (KDirListerCache): listDir: Entry not in cache or reloaded: file:///
tdeio (KDirListerCache): [void KDirListerCache::slotEntries(TDEIO::Job*, const UDSEntryList&)] new entries for file:///
tdeio (KDirListerCache): [void KDirListerCache::slotEntries(TDEIO::Job*, const UDSEntryList&)] new entries for file:///root
tdeio (KDirListerCache): [void KDirListerCache::slotResult(TDEIO::Job*)] finished listing file:///
tdeio (KDirListerCache): [void KDirListerCache::slotResult(TDEIO::Job*)] finished listing file:///root
tdeio (KDirListerCache): [bool KDirListerCache::listDir(KDirLister*, const KURL&, bool, bool)] 0x9602100 url=system:/ keep=true reload=false
tdeio (KDirListerCache): listDir: Entry not in cache or reloaded: system:/
tdeio (KDirListerCache): [bool KDirListerCache::listDir(KDirLister*, const KURL&, bool, bool)] 0x9602100 url=system:/ keep=true reload=false
tdeio (KDirListerCache): [void KDirListerCache::stop(KDirLister*, const KURL&)] 0x9602100 url=system:/
tdeio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*, const KURL&, bool)] 0x9602100 _url: system:/
tdeio (KDirListerCache): listDir: Entry not in cache or reloaded: system:/
tdeio (KDirListerCache): [void KDirListerCache::slotEntries(TDEIO::Job*, const UDSEntryList&)] new entries for system:/
tdeio (KDirListerCache): [void KDirListerCache::slotResult(TDEIO::Job*)] finished listing system:/
tdeio (KDirListerCache): [void KDirListerCache::stop(KDirLister*)] lister: 0x958c4a8
tdeio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*)] 0x958c4a8
tdeio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*, const KURL&, bool)] 0x958c4a8 _url: file:///
tdeio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*, const KURL&, bool)] 0x958c4a8 item moved into cache: file:///
tdeio (KDirListerCache): Not adding a watch on file:/// because it contains a manually mounted subdir
tdeio (KDirListerCache): [void KDirListerCache::stop(KDirLister*)] lister: 0x9602100
tdeio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*)] 0x9602100
tdeio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*, const KURL&, bool)] 0x9602100 _url: system:/
tdeio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*, const KURL&, bool)] 0x9602100 item moved into cache: system:/
tdeio (KDirListerCache): [void KDirListerCache::stop(KDirLister*)] lister: 0x94c6bc8
tdeio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*)] 0x94c6bc8
tdeio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*, const KURL&, bool)] 0x94c6bc8 _url: file:///root
tdeio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*, const KURL&, bool)] 0x94c6bc8 item moved into cache: file:///root
Comment 4 Timothy Pearson 2013-12-17 23:50:35 CST
This *might* have been fixed when a problem noted in Bug 1708 was repaired (http://bugs.trinitydesktop.org/show_bug.cgi?id=1708#c40).  Do you still see the problem with the latest GIT sources?

Thanks!
Comment 5 Darrell 2013-12-18 00:02:28 CST
I still see the dialog. Commit 23006eea was pushed to git 2013-12-14, 16:47:32. My current package set was built after that time. I perform a source tree sync before compiling full package sets.
Comment 6 Timothy Pearson 2013-12-18 00:21:21 CST
(In reply to comment #5)
> I still see the dialog. Commit 23006eea was pushed to git 2013-12-14, 16:47:32.
> My current package set was built after that time. I perform a source tree sync
> before compiling full package sets.

OK, Ill look into it further.  Thanks for testing!
Comment 7 Timothy Pearson 2013-12-18 02:04:12 CST
What is the "system" button?  I am having a hard time anything matching that description in the Konqueror sidebar--can you attach a screenshot of Konqueror with the appropriate button circled?

BTW I am quite familiar with the system:/ tdeioslave, just not this particular sidebar button. ;-)
Comment 8 Darrell 2013-12-18 09:03:36 CST
Created attachment 1735 [details]
Image of system button in konqueror nav bar
Comment 9 Timothy Pearson 2013-12-18 18:03:45 CST
For some reason I don't have that button in my Konqueror setup.  I added it manually and was able to reproduce the problem.

This (and a few other sidebar dirlister problems) should be fixed in GIT hash ec12f48.

Thanks for reporting!
Comment 10 Darrell 2013-12-18 18:14:46 CST
>For some reason I don't have that button in my Konqueror setup.  I added it
>manually and was able to reproduce the problem.
Manually? How did you do that? On one of my systems I had to reset the bar to the defaults to restore the button, and then remove the other buttons I did not want.
Comment 11 Timothy Pearson 2013-12-18 18:32:19 CST
(In reply to comment #10)
> >For some reason I don't have that button in my Konqueror setup.  I added it
> >manually and was able to reproduce the problem.
> Manually? How did you do that? On one of my systems I had to reset the bar to
> the defaults to restore the button, and then remove the other buttons I did not
> want.

Right click on sidebar
Add new folder item
Rename folder item to System
Change folder item icon
Change folder item URL to system:/
Comment 12 Darrell 2013-12-18 19:04:39 CST
Huh.

I notice something odd. I removed the Amarok and Metabar buttons. When I view the context menu of Add New I see the options to restore the Amarok and Metabar buttons. After I remove the System button, there is no option in the Add New contents to restore the System button.
Comment 13 Timothy Pearson 2013-12-18 19:45:24 CST
(In reply to comment #12)
> Huh.
> 
> I notice something odd. I removed the Amarok and Metabar buttons. When I view
> the context menu of Add New I see the options to restore the Amarok and Metabar
> buttons. After I remove the System button, there is no option in the Add New
> contents to restore the System button.

Sounds like a new bug report to me...
Comment 14 Darrell 2013-12-18 19:55:36 CST
>Sounds like a new bug report to me...
Bug 1774.
Comment 15 Darrell 2013-12-18 20:00:44 CST
Oh-oh.

Select the System button.
Verify the nav bar populates.
Select a different button.
Select the System button.
Everything in the list now appears twice.

I am unable to replicate this on all of my systems, but the double appearance is repeatable on my main office rig.

I exited and deleted the tdesycoca files. Same double result after logging in.
Comment 16 Darrell 2013-12-18 20:09:21 CST
I found out how to trigger the double-double bug.

Modify the nav bar button bar. Remove a button or add a button. The next time the System button is selected everything in the list appears twice.
Comment 17 Timothy Pearson 2013-12-18 20:16:38 CST
(In reply to comment #16)
> I found out how to trigger the double-double bug.
> 
> Modify the nav bar button bar. Remove a button or add a button. The next time
> the System button is selected everything in the list appears twice.

Any button or specifically a dirtree button?
Comment 18 Darrell 2013-12-18 20:57:07 CST
Any button.
Comment 19 Timothy Pearson 2013-12-18 22:32:59 CST
I can't replicate this.  Any hints?
Comment 20 Timothy Pearson 2013-12-18 22:33:35 CST
*** Bug 1663 has been marked as a duplicate of this bug. ***
Comment 21 Darrell 2013-12-19 08:55:39 CST
Created attachment 1736 [details]
Image showing double listing

>I can't replicate this.  Any hints?
All I do:

* "Right-click" on the nav bar button bar, but not on a button.

* From the popup menu select Add New->Rollback to System Default.

* Toggle back and forth several times between the Root Folder and System buttons.

* Verify a single instance of each list item in the nav bar pane.

* "Right-click" on the metabar button.

* From the popup menu, select Remove.

* Select the System button.

* On my system the items in the nav bar pane are listed twice.

Screen grab attached.

Notice after I rolled back to the defaults, the list is still double. The only way I have discovered to restore the list to single occurrence is restart Trinity and then not modifying the nav bar buttons in any way.
Comment 22 Michele Calgaro 2014-01-08 07:44:36 CST
Created attachment 1843 [details]
snapshot

(In reply to comment #21)
> Created attachment 1736 [details]
> Image showing double listing

The problem with double entries is caused by the fact that the system:/ button was added as a folder.
Open the picture attached:
- on the right is the config of the nav bar before Add New -> Revert to system default
- on the left is the config of the nav bar after Add New -> Revert to system default

The file dirtree.desktop is the file containing the definition of the system:/ button that was added by Add New -> Folder.
Notice that on the left there is also a file called system.desktop which is the original definition of system:/ and which is reintroduce by Add New -> Revert to system default
When both files are present, the system.desktop's system:/ button has double entries, the dirtree.desktop's system:/ button has single entries.

Deleting the system:/'s dirtree.desktop file, exiting and relaunching konqueror, makes the double entries disappear.
Comment 23 Michele Calgaro 2014-01-08 08:01:34 CST
I suspected that when both files are present, what happen was this:
1) first the system.desktop nav bar entry is populated
2) then when the dirtree.desktop file is handled, whatever entry in the nav bar called "system:/" is populated, resulting in the system.desktop nav bar entry to have double entries

But it is not the case. I tried with additional dirtree0.desktop nad dirtree1.desktop files all pointing to system:/ but the original system.desktop system:/ button only have double entries and not triple or quadruple as I expected.

Also the problem seems to be localized to system:/ only. I tried other entries, but could get any doubles.
Comment 24 Darrell 2014-01-08 12:56:24 CST
I don't have a dirtree.desktop file.

ls /opt/trinity/share/apps/konqsidebartng/entries

amarok.desktop
bookmarks.desktop
history.desktop
home.desktop
metabar.desktop
remote.desktop
root.desktop
services.desktop
system.desktop

grepping the entire source tree reveals no files named dirtree.desktop. I presume the file is (supposed to be) created when tdebase/konqueror/sidebar/trees is compiled. That does not seem to be happening on my system. If the file is suppose to be compiled and installed, I don't see anything in the CMakeLists.txt files.

I do have a dirtree_module.desktop file:

/opt/trinity/share/apps/konqsidebartng/dirtree/dirtree_module.desktop

Why does the double listing occur only when modifying the nav bar buttons?
Comment 25 Michele Calgaro 2014-01-08 20:30:54 CST
> I don't have a dirtree.desktop file.
> ls /opt/trinity/share/apps/konqsidebartng/entries

The folder depends on the Konqueror profile being used. In my case it is 
~/trinity/share/apps/konqsidebartng/filemanagement/entries (or something very similar, I am not on TDE now)

The file dirtree.desktop (or other dirtreeX.desktop) are created when a folder button is added to the nav bar.
Make a copy of ~/trinity/share/apps/konqsidebartng, then add a button to the nav bar and compare ~/trinity/share/apps/konqsidebartng to the copy you made. Somewhere you will find a new file.

> Why does the double listing occur only when modifying the nav bar buttons?
Still don't know, I will look into the code today or tomorrow
Comment 26 Darrell 2014-01-08 21:21:39 CST
>The folder depends on the Konqueror profile being used. In my case it is 
>~/trinity/share/apps/konqsidebartng/filemanagement/entries
Doh! I was looking in the system directory, not my profile directory. :)

I do not have any dirtree.desktop files. Am I supposed to? I don't know.

I might have stumbled across a solution. I have no idea why the solution succeeds.

In the system.desktop file is a key named Open. The value is true. I noticed all other desktop files in this area are set to false. On a whim I set all profile system.desktop files to Open=false.

I rolled back the nav bar to the defaults. I exited Trinity and deleted the tdesycoca cache. (I always delete the cache when I perform this kind of testing.)

I started Trinity.

I removed the Amarok and Metabar buttons from the nav bar.

I selected the System button from the nav bar.

No double entries.

Can you replicate this possible fix? If yes, then please conjure up an explanation. :) I have no idea what purpose the Open key serves. I have no idea what _else_ might break when changing the value to false.
Comment 27 Darrell 2014-01-08 21:35:24 CST
I tried this same solution (Open=false) on three different user accounts as well as a new profile. Same results: no double list.

If this fix is to become permanent, we need to update system.desktop in the sources (tdebase/konqueror/sidebar/trees/init/system.desktop, which installs to /opt/trinity/share/apps/konqsidebartng/entries/system.desktop), as well as update the r14-xdg-update script.

But first we need to know why this solution succeeds. :)
Comment 28 Michele Calgaro 2014-01-09 07:22:50 CST
> I tried this same solution (Open=false)

On my system too, this seems to solve the double entries problem, even with multiple system buttons.
I will have a look in the code to see what that Open=true does.
Comment 29 Michele Calgaro 2014-01-09 08:02:43 CST
I did a (very) quick check in the code. In KonqSidebarTree::loadTopLevelItem(), if Open is true and the nav bar item is explandable, it sets the item to true. This does different things depending on the module type (history, bookmarks, folder). For folder type, it goes on to create a DirListener that at the end will populate the module through KonqSidebarDirTreeModule::slotNewItems().
My rough guess is that there is a bug here, since an existing entry should not be added twice. I need some time to test these if required, but I would loke to start focusing on the handbook review.

Setting Open to false in the system.desktop file doesn't seem to cause any harm in my system too though.