Zim

Fwd: [abrt] Zim-0.58-1.fc17: pageindex.py:661:select_page:AssertionError: BUG: failed to touch placeholder

Bug #1096730 reported by Robin Lee
22
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Zim
Fix Released
Undecided
Unassigned

Bug Description

https://bugzilla.redhat.com/show_bug.cgi?id=892304

Version-Release number of selected component:
Zim-0.58-1.fc17

Additional info:
libreport version: 2.0.18
abrt_version: 2.0.18
cmdline: /usr/bin/python /usr/bin/zim --ipc-server-main /tmp/zim-robert/zim-server-socket 30
kernel: 3.6.11-1.fc17.x86_64

backtrace:
:pageindex.py:661:select_page:AssertionError: BUG: failed to touch placeholder
:
:Traceback (most recent call last):
: File "/usr/lib/python2.7/site-packages/zim/plugins/tags.py", line 849, in on_cloud_selection_changed
: self._reload_model(type, filter)
: File "/usr/lib/python2.7/site-packages/zim/plugins/tags.py", line 894, in _reload_model
: self.treeview.set_model(model, filter)
: File "/usr/lib/python2.7/site-packages/zim/plugins/tags.py", line 598, in set_model
: PageTreeView.set_model(self, filtermodel)
: File "/usr/lib/python2.7/site-packages/zim/gui/pageindex.py", line 533, in set_model
: self.select_page(self.ui.page, vivificate=True)
: File "/usr/lib/python2.7/site-packages/zim/gui/pageindex.py", line 661, in select_page
: assert treepath, 'BUG: failed to touch placeholder'
:AssertionError: BUG: failed to touch placeholder
:
:Local variables in innermost frame:
:vivificate: True
:path: <IndexPath: testpage>
:model: <gtk.TreeModelFilter object at 0x316bf00 (GtkTreeModelFilter at 0x319d000)>
:treepath: None
:self: <TagsPageTreeView object at 0x304a3c0 (zim+plugins+tags+TagsPageTreeView at 0x28f0490)>

Tags: index
tags: added: index
Revision history for this message
sojusnik (sojusnik) wrote :
Download full text (66.0 KiB)

Getting a similar crash report with latest Zim version from Jaaps' Snapshots PPA under Ubuntu Gnome 13.10. Gladly, Zim is working properly though:

ProblemType: Crash
CrashCounter: 1
Date: Wed Mar 12 12:50:25 2014
ExecutablePath: /usr/bin/zim
ExecutableTimestamp: 1394280642
InterpreterPath: /usr/bin/python2.7
ProcCmdline: /usr/bin/python /usr/bin/zim --ipc-server-main /tmp/zim-sojusnik/zim-server-socket 30
ProcCwd: /home/sojusnik/Sonstiges/Zim Notebooks/Allgemeines
ProcEnviron:
 LANGUAGE=de_AT:de
 LC_TIME=de_DE.UTF-8
 LC_MONETARY=de_DE.UTF-8
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LC_ADDRESS=de_DE.UTF-8
 LANG=de_AT.UTF-8
 LC_TELEPHONE=de_DE.UTF-8
 SHELL=/bin/bash
 LC_NAME=de_DE.UTF-8
 LC_MEASUREMENT=de_DE.UTF-8
 LC_IDENTIFICATION=de_DE.UTF-8
 LC_NUMERIC=de_DE.UTF-8
 LC_PAPER=de_DE.UTF-8
ProcMaps:
 00400000-006ba000 r-xp 00000000 08:01 284 /usr/bin/python2.7
 008b9000-008ba000 r--p 002b9000 08:01 284 /usr/bin/python2.7
 008ba000-0092e000 rw-p 002ba000 08:01 284 /usr/bin/python2.7
 0092e000-00941000 rw-p 00000000 00:00 0
 01c25000-020c2000 rw-p 00000000 00:00 0 [heap]
 020c2000-0316f000 rw-p 00000000 00:00 0 [heap]
 7f7780000000-7f7780022000 rw-p 00000000 00:00 0
 7f7780022000-7f7784000000 ---p 00000000 00:00 0
 7f7788000000-7f7788022000 rw-p 00000000 00:00 0
 7f7788022000-7f778c000000 ---p 00000000 00:00 0
 7f778c000000-7f778c021000 rw-p 00000000 00:00 0
 7f778c021000-7f7790000000 ---p 00000000 00:00 0
 7f779204a000-7f779234b000 rw-p 00000000 00:00 0
 7f779234b000-7f779235a000 r-xp 00000000 08:01 135662 /lib/x86_64-linux-gnu/libbz2.so.1.0.4
 7f779235a000-7f7792559000 ---p 0000f000 08:01 135662 /lib/x86_64-linux-gnu/libbz2.so.1.0.4
 7f7792559000-7f779255a000 r--p 0000e000 08:01 135662 /lib/x86_64-linux-gnu/libbz2.so.1.0.4
 7f779255a000-7f779255b000 rw-p 0000f000 08:01 135662 /lib/x86_64-linux-gnu/libbz2.so.1.0.4
 7f779255b000-7f7792570000 r-xp 00000000 08:01 150512 /lib/x86_64-linux-gnu/libgcc_s.so.1
 7f7792570000-7f779276f000 ---p 00015000 08:01 150512 /lib/x86_64-linux-gnu/libgcc_s.so.1
 7f779276f000-7f7792770000 r--p 00014000 08:01 150512 /lib/x86_64-linux-gnu/libgcc_s.so.1
 7f7792770000-7f7792771000 rw-p 00015000 08:01 150512 /lib/x86_64-linux-gnu/libgcc_s.so.1
 7f7792771000-7f7792857000 r-xp 00000000 08:01 5936 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18
 7f7792857000-7f7792a56000 ---p 000e6000 08:01 5936 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18
 7f7792a56000-7f7792a5e000 r--p 000e5000 08:01 5936 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18
 7f7792a5e000-7f7792a60000 rw-p 000ed000 08:01 5936 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18
 7f7792a60000-7f7792a75000 rw-p 00000000 00:00 0
 7f7792a75000-7f7792baa000 r-xp 00000000 08:01 10758 /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12.0
 7f7792baa00...

Revision history for this message
sojusnik (sojusnik) wrote :

This crash report occurs when using the tag index. Most of the time a grey zero will appear in the index pane, note the tag pane, to the right of the opened note. When clicking on the note or the triangle to the left of the note in the index pane, the note gets expanded and the whole index after this note will be blank. Updating the index in the tools menu removes this bug temporarily.

Revision history for this message
sojusnik (sojusnik) wrote :

Actually, the grey zero in the index pane is only removed after renaming the note or after a Zim restart.

Revision history for this message
sojusnik (sojusnik) wrote :

Strangely, it's not always working, so the zero to the right of the note sometimes stays and corrupts the whole index pane, when it gets expanded :/

Revision history for this message
Pl (plprgt) wrote :

Zim 0.63, rev. 783.
Got the same.

How to reproduce: enable Tags plugin, select any tag in the cloud, then go back to the Index and select any page which has no children and doesn't contain selected tag. A plus appear near the page, clicking on it will get the pane corrupted.
As I understand the reason is that after clicking on any page in the Index Tags plugin tries to execute 'on_open_page' function with 'vivificate = True' which finally leads to '_touch' function in index.py.

Tags plugin also raises AssertionError because it tries to find treepath for the page which doesn't contain selected tag and is filtered. But even if the occurrence of this error is prevented (see attachment tags.diff) the pane remains broken all the same.

The reason may be in index.py '_touch' function. There is no check of path existence in this function which results in marking an already existing page as parent with emiting 'page-haschildren-toggled' signal, though it doesn't have children.
With modifications in attachements this situation appears to be resolved (tags.diff solves AssertionError, index.diff solves broken Index pane).

Revision history for this message
Pl (plprgt) wrote :
Revision history for this message
Jaap Karssenberg (jaap.karssenberg) wrote :

Rev 784

Changed in zim:
status: New → Fix Committed
Changed in zim:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.