gpodder / gpodder-sailfish

gPodder 4 for Sailfish OS Packaging
https://openrepos.net/content/keeperofthekeys/gpodder
49 stars 29 forks source link

gPodder crashes on Sailfish OS 1.0.2.5 (Jolla) #1

Closed sjn closed 10 years ago

sjn commented 10 years ago

gPodder (org.gpodder.sailfish-4.0.0-1.6.1.noarch, installed as instructed on http://wiki.gpodder.org/wiki/Sailfish_OS) is rather unusable on Jolla devices at the moment, crashing from the slightest provocation.

Any chance for an update any time soon?

Please tell if I can help with anything.

thp commented 10 years ago

Yes, there will be an update, but right mostly limited to my free time ;) Feel free to debug these crashes by running gPodder in gdb (with debug libs for all dependencies installed) and trying to reproduce the crashes, then attaching the gdb backtraces here (or create a new issue).

sjn commented 10 years ago

I'll try to help with that, if you wouldn't mind helping me a little getting started. I'm not familiar with gdb.

Here's what I've done:

  # zypper install org.gpodder.sailfish-4.0.0-1.6.1.noarch \
    org.gpodder.sailfish-debugsource-4.0.0-1.6.1.noarch \
    libsailfishapp-launcher-debuginfo-0.0.10-10.1.1.jolla.armv7hl \
    pyotherside-qml-plugin-python3-qt5-debuginfo-1.0.0-1.17.1.armv7hl \
    python3-base-debuginfo-3.3.2-1.10.2.armv7hl \
    gdb-7.5.1-1.1.1.armv7hl
# uname -a
Linux localhost 3.4.0.20131212.3 #1 SMP PREEMPT Tue Dec 17 07:32:19 UTC 2013 armv7l armv7l armv7l GNU/Linux

I have no idea on how to go about doing this. Any pointers you'd like to share? :)

sjn commented 10 years ago

Right. Looked a little more into this, and found that I had to install quite a few more rpms than this. Almost 300 of them. :-P

Here's what I now get when I try starting gpodder under gdb:

[nemo@localhost ~]$ DISPLAY=:0 gdb --args sailfish-qml org.gpodder.sailfish
GNU gdb (GDB) Mer (7.5.1)
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "armv7hl-meego-linux-gnueabi".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/sailfish-qml...Reading symbols from /usr/lib/debug/usr/bin/sailfish-qml.debug...done.
done.
(gdb) run
Starting program: /usr/bin/sailfish-qml org.gpodder.sailfish
Starting program: /usr/bin/sailfish-qml org.gpodder.sailfish
Missing separate debuginfo for /usr/lib/libGLESv2.so.2
Try: zypper install -C "debuginfo(build-id)=00a05ef91f6656c2c1af834a7c09ba4f4e34c740"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
Missing separate debuginfo for /usr/lib/libEGL.so.1
Try: zypper install -C "debuginfo(build-id)=8986f5e748f92c5b958ca27d88fa171d3e4804e2"
Missing separate debuginfo for /usr/lib/libhybris-common.so.1
Try: zypper install -C "debuginfo(build-id)=dabc98330b792a45a33a4106a6f2a44142c9fc89"
Missing separate debuginfo for /usr/lib/libandroid-properties.so.1
Try: zypper install -C "debuginfo(build-id)=8afb99fd62d8b352545d25e5770a98970119157a"
Missing separate debuginfo for /usr/lib/libhardware.so.2
Try: zypper install -C "debuginfo(build-id)=d3aef14b8c77d1d949f2df6a807387c43f0ae908"
Missing separate debuginfo for /usr/lib/libwayland-egl.so.1
Try: zypper install -C "debuginfo(build-id)=c518efab8bb6d817938f61d839d0cf9139ccc819"
[New Thread 0x432883f0 (LWP 13736)]
[D] QWaylandEglIntegration::QWaylandEglIntegration:58 - Using Wayland-EGL
Missing separate debuginfo for /usr/lib/libhybris/eglplatform_wayland.so
Try: zypper install -C "debuginfo(build-id)=f95547f4c7e7b8859397d5ffebe57cc93a9da7e9"
Missing separate debuginfo for /usr/lib/libhybris-eglplatformcommon.so.1
Try: zypper install -C "debuginfo(build-id)=40ed921c07c8d2beffd016e5081783a37e91ba5e"
[New Thread 0x43db23f0 (LWP 13737)]
[New Thread 0x43dc23f0 (LWP 13738)]
Missing separate debuginfo for /usr/lib/qt5/qml/Sailfish/Silica/libsailfishsilicaplugin.so
Try: zypper install -C "debuginfo(build-id)=48d5a71becd919a66bba623013551529a6d615bf"
Missing separate debuginfo for /usr/lib/libsailfishsilicabackground-qt5.so.0
Try: zypper install -C "debuginfo(build-id)=1081f14dcea5d39edc10a51e177e9a113c4445c4"
[W] QQmlImportDatabase::importPlugin:1697 - Module 'Sailfish.Silica' does not contain a module identifier directive - it cannot be protected from external registrations.
[D] MLocalThemeDaemonClient::MLocalThemeDaemonClient:81 - MLocalThemeDaemonClient::MLocalThemeDaemonClient(const QString&, QObject*) Theme:  "jolla-ambient"
[D] MLocalThemeDaemonClient::MLocalThemeDaemonClient:112 - LocalThemeDaemonClient: Looking for assets in ("/usr/share/themes/blanco/meegotouch", "/usr/share/themes/jolla-ambient/meegotouch")
[New Thread 0x454673f0 (LWP 13739)]
[W] ResourcePolicyImpl::isAvailable:113 - virtual bool ResourcePolicyImpl::isAvailable() const Stub
Warning: specifying an object instance for initialPage is sub-optimal - prefer to use a Component
DeclarativeCoverWindow: I have a default alpha buffer
[New Thread 0x483383f0 (LWP 13741)]
[New Thread 0x48f343f0 (LWP 13742)]
[New Thread 0x4b06d3f0 (LWP 13743)]
1388621429.263491 [gpodder.log] DEBUG: ==== gPodder starts up ====
gPodder version 4.0.0 starting up
Copyright: ? 2005-2013 Thomas Perl and the gPodder Team

Then I click on the "Now playing" button in the UI...

error:
[F] qt_assert:2014 - ASSERT: "list != NULL" in file qpython_priv.cpp, line 194

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x454673f0 (LWP 13739)]
0x40e35b88 in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:67
67      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb)

And that's where we are.

sjn commented 10 years ago

Updated gpodder to harbour-org.gpodder.sailfish-4.0.0-1.7.1.noarch and harbour-org.gpodder.sailfish-debugsource-4.0.0-1.7.1 .

I then recorded a script(1) session where I started running harbour-org.gpodder.sailfish under gdb:

  1. Start
  2. Enter Subscriptions screen
  3. Menu -> "Check for new episodes"
  4. Wait....
  5. Crash

I've marked these points in the gist as ----> [1], ----> [2], etc.

The full and complete output of this session is on https://gist.github.com/sjn/8267675

(oh, and a quick side-note... does your logging library support log message truncation/summaries? (e.g. "The last message "WARNING: Unknown namespace: http://api.npr.org/nprml" was skipped 200 times").

sjn commented 10 years ago

Seems the number of subscribed podcasts correlate with how quickly gpodder crashes when looking for new episodes.

thp commented 10 years ago

Have you updated to the latest pyotherside build? I have since removed some assertions and turned them into errors instead (should have done that from the beginning.. but anyway..).

sjn commented 10 years ago

@thp: I'm using this:

[root@localhost nemo]# zypper info pyotherside-qml-plugin-python3-qt5
Loading repository data...
Reading installed packages...

Information for package pyotherside-qml-plugin-python3-qt5:

Repository: @System
Name: pyotherside-qml-plugin-python3-qt5
Version: 1.0.0-1.17.1
Arch: armv7hl
Vendor: meego
Installed: Yes
Status: up-to-date
Installed Size: 106.3 KiB
Summary: Asynchronous Python 3 Bindings for Qt 5
Description:
A QML Plugin that provides access to a Python 3 interpreter from QML.

And here are the repos I have configured:

[root@localhost nemo]# zypper repos
#  | Alias            | Name             | Enabled | Refresh
---+------------------+------------------+---------+--------
 1 | adaptation0      | adaptation0      | Yes     | No
 2 | adaptation1      | adaptation1      | Yes     | No
 3 | aliendalvik      | aliendalvik      | Yes     | No
 4 | apps             | apps             | Yes     | No
 5 | eas              | eas              | Yes     | No
 6 | hotfixes         | hotfixes         | Yes     | No
 7 | jolla            | jolla            | Yes     | No
 8 | mer-tools        | mer-tools        | Yes     | No
 9 | openrepos-NielDK | openrepos-NielDK | Yes     | No
10 | openrepos-basil  | openrepos-basil  | Yes     | No
11 | openrepos-veskuh | openrepos-veskuh | Yes     | No
12 | store            | store            | Yes     | No

...and with this, gPodder is still crashing.

sjn commented 10 years ago

Thinking about it, I recall last time when we talked about pyotherside on IRC, you were kind to provide a download link for me (http://o.thp.io/tmp/pyotherside-qml-plugin-python3-qt5-1.0.0-8.armv7hl.rpm) since I wasn't able to set up a build environment for this on my phone.

I still don't have a proper build environment, and most likely won't in a few weeks (switching jobs, new computer). Would you mind building another RPM to test?

Also, have you considered publishing betas of your gpodder-related packages on openrepos in such a way that it's available with the Jolla warehouse app? (That would certainly make n00bs like myself very happy.. :)

http://www.jollatides.com/2014/01/08/tutorial-how-to-download-beta-apps-from-openrepos/

sjn commented 10 years ago

Here's the output from gdb's info threads from one of the crashes:

  Id   Target Id         Frame 
  10   Thread 0x4cfff3f0 (LWP 8354) "QThread" 0x40ed04bc in __GI___poll (
    fds=0x4cffb7e0, nfds=1, timeout=5000)
    at ../sysdeps/unix/sysv/linux/poll.c:87
  8    Thread 0x4c7ff3f0 (LWP 8072) "GL updater" 0x40ca78a0 in __pthread_cond_wait (cond=0x442520b8, mutex=0x442025e0) at pthread_cond_wait.c:153
  7    Thread 0x494713f0 (LWP 8071) "GL updater" 0x40ca78a0 in __pthread_cond_wait (cond=0x44202958, mutex=0x44202938) at pthread_cond_wait.c:153
  6    Thread 0x483533f0 (LWP 8070) "QSGRenderThread" 0x4275cbd0 in ?? ()
* 5    Thread 0x457983f0 (LWP 8066) "QThread" v8::V8::DisposeGlobal (
    obj=0x2a05f1c8) at ../3rdparty/v8/src/api.cc:706
  4    Thread 0x440f33f0 (LWP 8065) "SignalSender" 0x40ca9cd0 in do_futex_wait
    (isem=0x4420046c) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:49
  3    Thread 0x440e33f0 (LWP 8064) "QThread" 0xffff0520 in ?? ()
  2    Thread 0x435b93f0 (LWP 8063) "QThread" 0x40ed04bc in __GI___poll (
    fds=0x436063c0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
  1    Thread 0x42748cc0 (LWP 8056) "sailfish-qml" 0x40ed04bc in __GI___poll (
    fds=0x2a2ae228, nfds=6, timeout=2) at ../sysdeps/unix/sysv/linux/poll.c:87
thp commented 10 years ago

This should be fixed by https://github.com/thp/pyotherside/commit/c765bf3d031801ed075bcc2d91ad54330be774e4 (I hope ;)