rschroll / beru

The Basic Epub Reader for Ubuntu
http://rschroll.github.io/beru/
GNU General Public License v3.0
25 stars 12 forks source link

Crash on start #82

Closed rschroll closed 9 years ago

rschroll commented 9 years ago

Beru is crashing on start about half of the time now. It appears to be stochastic -- sometimes it's successful, sometimes it fails.

I can get rid of the crash, as best I can tell, by remove the sections from the head of LocalBooks. (You also have to disconnect sort from the selectedIndex, but just doing that alone isn't enough.) A git bisect leads back to the commit that put the sections in, so it seems that they really are the trigger.

When running Beru under gdb, you get an apparently corrupt stack trace.

rschroll commented 9 years ago

Here's the stack trace, for whatever it's worth.

(gdb) bt
#0  0x00000018 in ?? ()
#1  0xb626f6b8 in QMetaObject::cast(QObject*) const ()
   from /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5
#2  0xb05b6f7e in UCInverseMouse::eventFilter(QObject*, QEvent*) ()
   from /usr/lib/arm-linux-gnueabihf/qt5/qml/Ubuntu/Components/libUbuntuComponents.so
#3  0xb6269dc4 in QCoreApplicationPrivate::sendThroughApplicationEventFilters(QObject*, QEvent*) () from /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5
#4  0xb67ee70c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5
#5  0xb67f2520 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5
#6  0x00032df8 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
mardy commented 9 years ago

Valgrind usually helps.

rschroll commented 9 years ago

Is there a way to install it on a device short of making it writable and using apt?

mardy commented 9 years ago

I guess you could open the .deb package and unpack it somewhere in your home. Then it should be possible to set PATH and LD_LIBRARY_PATH so that it's able to load all the needed files. But I never tried. If you managed to reproduce the crash in your vivid desktop, that would make everything much easier, because then you could also install the debug packages and have the symbols all resolved.

rschroll commented 9 years ago

On Mon, Apr 13, 2015 at 3:40 PM, Alberto Mardegan notifications@github.com wrote:

If you managed to reproduce the crash in your vivid desktop, that would make everything much easier, because then you could also install the debug packages and have the symbols all resolved.

That would, however, require me to have a vivid desktop. (Or perhaps even just a utopic desktop.) I'll see what I can do.

Thanks for the pointers.

rschroll commented 9 years ago

I've managed to reduce the crasher down to 99 lines of QML (and a fake database): https://github.com/rschroll/beru/tree/section-crash