Comment 18 for bug 915037

Revision history for this message
Fabian Stanke (fmos) wrote : Re: [Bug 915037] Re: zim crashed with ValueError in select_page(): invalid tree path

Hi Jaap,

Thanks for the feedback!

I spent half a day to understand it (the continued reports and confirmations on Fedora's Bugzilla on the corresponding bug drove me mad :D ), so - despite the one-line diff, this was a bit complicated, especially me not having hacked in Python for quiet some time...

The test passes, because the exception that triggers Ubuntu's and Fedora's crash report tools unfortunately doesn't interrupt the test run. I played around with G_DEBUG=fatal_warnings in the environment and this may be necessary for the exception to be raised (otherwise Python is blind anyway). But even the exception being raised obviously doesn't crash the test hard enough, presumeably because it happens in an async event handler (the async tree view update). That's why I empty the GTK message queue in the test.

Maybe - for testing purposes - making the treeview update in the main thread would make the test fail, but I didn't have the time to check if this is (easily) possible. -> TODO ?!

btw.: to reproduce the reported problem "live", one has to move the last child of any sub-tree and that child must be displayed (and selected in the treeview) before being moved. Then the treepath (the tuple of ints) becomes invalid and crashes the treeview update when it tries to get an iter for the invalid tuple. When another child is used, the treepath remains valid (it just refers to the wrong page, which isn't noticed). When the moved page isn't displayed, the critical treeview line isn't touched in the problematic update.

Hope this explains a bit.

Cheers, Fabian

----------------ursprüngliche Nachricht-----------------
Von: "Jaap Karssenberg" <email address hidden>
An: <email address hidden>
Datum: Fri, 18 May 2012 08:08:36 -0000
-------------------------------------------------

> Branch merged. Definitely will not hurt. However if I disable the fix
> the test passes as well, so still not sure about the underlying root
> cause. But sure hope this fixes the issue.
>
> Thanks for looking into it!
>
> Jaap
>
> --
> You received this bug notification because you are a bug assignee.
> https://bugs.launchpad.net/bugs/915037
>
> Title:
> zim crashed with ValueError in select_page(): invalid tree path
>
> Status in Zim desktop wiki:
> In Progress
> Status in “zim” package in Ubuntu:
> In Progress
>
> Bug description:
> I recieved this crash error while deleting items in the index.
>
> ProblemType: Crash
> DistroRelease: Ubuntu 12.04
> Package: zim 0.54-1 [modified: usr/share/applications/zim.desktop]
> ProcVersionSignature: Ubuntu 3.2.0-8.14-generic 3.2.0
> Uname: Linux 3.2.0-8-generic x86_64
> NonfreeKernelModules: fglrx
> ApportVersion: 1.90-0ubuntu1
> Architecture: amd64
> CrashCounter: 1
> Date: Wed Jan 11 16:04:55 2012
> ExecutablePath: /usr/bin/zim
> InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Alpha amd64
> (20111129.1)
> InterpreterPath: /usr/bin/python2.7
> PackageArchitecture: all
> ProcCmdline: /usr/bin/python /usr/bin/zim --list
> ProcEnviron:
> LANGUAGE=en_CA:en
> PATH=(custom, user)
> LANG=en_CA.UTF-8
> SHELL=/bin/bash
> PythonArgs: ['/usr/bin/zim', '--list']
> SourcePackage: zim
> Title: zim crashed with ValueError in select_page(): invalid tree path
> UpgradeStatus: No upgrade log present (probably fresh install)
> UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/zim/+bug/915037/+subscriptions
>

--